COURSE WORK
Computer Vision
In Spring 2004, I took Computer Vision at Princeton University





Advanced Computer Graphics
In Fall 2003, I took Advanced Computer Graphics at Princeton University.
 Monte Carlo Path Tracer
 To simulate the wide range of lighting conditions that are seen in nature, we implement a system that simulates light transport by tracing light paths through a scene. Rather than considering all possible paths of light, we use the Monte Carlo technique to randomly sample important paths, and use the results of sampling these paths as an approximation.
 Lightfield Viewer
 Rather than represent a scene by modeling object geometry, we can instead sample the lightfield, a function that measures the transport of light for various views of a scene independent of the underlying scene geometry, and interpolate to reconstruct arbitrary views. Sample data for the program can be found here.
 Volume Viewer
 In many scientific fields, especially medical imagery, volume datasets are very common. In this project, a friend and I implemented a simple, interactive volume rendering system.
Realtime Graphics Solutions
In Spring 2003, I was the Teaching Assistant for a class entitled RealTime Interactive Computer Graphics. Essentially, it was a video game class where the students worked on some simple 2D games. I wrote several assignments for the class, which were quite detailed, and which I have listed here.
 Homework 2  Image Slideshow (Writeup) (Solution)
 Homework 3  Raquetpong (Writeup) (Solution)
 Homework 4  Raquetpong 2.0 (Writeup)
Motion Capture Assignments
Here are the writeups for some simple assignments in a Motion Capture class that I took at NYU in Spring 2003.
 Color Tracking
 Given an image of a person, we would like to know which pixels correspond to the person's skin, and which are background or clothes. This can be useful in tracking the position of a person's head or hands. We select a training sample of skin, to which we fit a Gaussian distribution, and use this distribution to predict if other pixels correspond to skin.
 Optical Flow
 In another tracking problem, we would like to determine (or at least approximate) the movement of some feature across the image, represented as the horizontal and vertical translation of some point. We use the wellknown LucasKanade opticalflow algorithm, which represents the problem as a minimization of a quadratic error function. We use the linear first derivative to approximate the minima, and use repeated searches until the error converges. This can be thought of as a form of Newton's method.
Fall 2002 Graphics Assignments
These are applets that I worked on for a Computer Graphics class at NYU in the Fall of 2002.













