Limit Theory (Summer 2012 - Ongoing)

In December of 2012, my game project Limit Theory was successfully funded on Kickstarter. Since then, I've been working full-time to bring my dream of a totally-procedural, infinite, and open-ended sandbox space game to life. The game is written from scratch in C++, using OpenGL for 3D, SFML for windowing and threading, and irrKlang for audio. The target release date is early 2014!

CUDA Path Tracer / Procedural Modeling Language (Spring 2012)

For our CS348B final project, I built a GPU-accelerated path tracer to render a procedural space scene comprising a ship, asteroids, and a nebula. To build the scene, I designed and implemented a compiler for a new procedural modeling language, intended to make rapid prototyping of procedural algorithms a breeze. The entire final scene was generated procedurally, including the ship. To render the volumetric nebula as realistically as possible, I used Monte-Carlo path tracing augmented with the Metropolis Light Transport algorithm. I wrote the tracer in CUDA and C++, using OpenGL for pre-vis. Without using GPU acceleration, there simply would have been no way to render this volume (which included nonhomogeneous media and wavelength-dependent scattering) in a reasonable amount of time.

The full technical details can be found here. I also kept a detailed blog of my day-by-day progress. The project went on to claim the Grand Prize at the 2012 Stanford Rendering Competition!

DirectX Graphics Engine (Summer 2010 - Fall 2011)

In the summer of 2010, when I first touched graphics programming, I started writing a graphics engine in DirectX (D3D) as my way of learning about computer graphics. For over a year I produced a large variety of small demo applications, showing off various concepts or techniques that I was trying to learn at the time.

Various Procedural Experiments (Always and Forever)

Over the years, my obsession with procedural content generation has taken me through a lot of territory. I try not to let a month go by without at least spending a few days playing around with something procedural!