Computer Graphics
Research Scientist | Software Engineer

Past projects:

CSE190 Spring 2003

I wrote a renderer for CSE190 in the Spring of 2003 (though it has since been superseded by a better one). It involved implementing a variety of things, including photon mapping, irradiance caching/gradients, subsurface scattering (translucency), participating media/volumetric scattering (fog-like effects), Phillips spectrum FFT waves (water), Perlin and Worley-based noise functions, and more.

Hardware Accelerated Global Illumination

We started out with some basic photon mapping/ray tracing on graphics hardware (see paper below), and it looks like we'll be continuing to improve the algorithm, as well as apply the GPU to some other problems.

Parallel Photon Mapping

Parallel implementation of photon mapping on a Linux cluster. Class project for CSE 260 (Parallel Computation).

Tiled Movie Player

TMP is a collection of tools for distributed movie playing, including a movie maker and player. The movie maker generates YUV encoded frames that are read off of disk by the player, and then blitted to the video hardware with frame-level synchronization across the cluster.

timv (Tiled IMage Viewer)

TImV is an image viewer for clusters running a tiled display. It will take just about any image and paste it on a tiled display with various options for loading and viewing. It uses a java interface for loading files, and a GTK+ window to select from loaded images, or for a preview of the image currently displayed.

Smoke and Mirrors

I was the primary programmer for Sheldon Brown's Smoke and Mirrors piece, currently on display at the Ruben H. Fleet Science Center in Balboa Park. We used a commercial game engine to create a (rather odd) world that takes people through a symbolic experience of smoking.

HDD (High Density Display)

John Moreland created the HDD at SDSC, and I wrote some software for it. It's quite an interesting read.