My blog, where I post my original research, and any interesting techniques I come across. My aim is to help others learn these interesting and useful things as well by providing them with explanations based on first principles (minimal pre-required knowledge) and working, simple source code. I also find that by writing up and teaching these ideas and techniques, that I learn them more thoroughly in the process.

A PBR implementation in webgl that has tweakable parameters and debug views to help understand what PBR is all about and how it works.

Mandelbrot Explorer
Explore the mandelbrot set, specify colors, and share your discoveries with your friends. Click on the link above to enter, or click on any of the images below to follow their "Mandelinks". Created with HTML5, uses web workers javascript multithreading.

Realtime Raytracer
I have a real time ray tracing game engine that I've been working on that I've used to release a game on google Native Client with. The engine is all software rendered (CPUs only), it's multithreaded, and takes advantage of some high speed raytracing techniques I came up with to help achieve real time rendering without GPU acceleration. Click the link below to check it out (requires google chrome browser version 16 or higher).

Play MoriRT Snake

Curves, Surfaces, Interpolation, etc.
Integral Versions
2d Quadratic
2d Cubic
2d Trigonometric
1d Quadratic
1d Cubic
1d Trigonometric

Rational Versions
2d Quadratic Rational
2d Cubic Rational
2d Trigonometric Rational
1d Quadratic Rational
1d Cubic Rational
1d Trigonometric Rational

1d Lagrange Interpolation
2d Lagrange Interpolation
1d Cubic Hermite Interpolation
2d Cubic Hermite Interpolation

Surfaces and Volumes
Analytical Surfaces Evaluated by the GPU Texture Sampler
Analytical Volumes Evaluated by the GPU Texture Sampler
Bezier Triangles

Curve Fitting
Least Squares Curve Fitting
Least Squares Surface Fitting

Bias and Gain
Bias and Gain

Generate Blue Noise Random Numbers

Point Sets
1D Point Set Frequencies
2D Point Set Frequencies
1D Point Set Frequencies (Cosine Transform)
2D Point Set Frequencies (Cosine Transform)

Neural Networks
Neural Network Visualization
2d Visualization
3d Visualization

Interactive Neural Nets
Recognize handwritten digits with 95% accuracy

Finite Impulse Response Filtering
Infinite Impulse Response Filtering
Gaussian Kernel Calculator

Sound Sorcerer
A versatile music and sound effect generation / manipulation tool.

Music I've created and/or played - using real instruments, professional software, and software I wrote.