Computer Graphics

Smoke Simulation

Smoke (fluid) simulation implemented based on the Semi-Lagrangian approach defined in the course from SIGGRAPH 2007: Fluid Simulation by Bridson, Fedkiw, and Muller-Fischer. The simulation is driven by velocity, temperature, and density parameters. Buoyancy and vorticity add additional realistic forces to the simulation on top of basic advection of the parameter quantities. C++ and OpenGL.

Cloth Simulation

Cloth simulation using the position-based dynamics approach detailed in the 2006 SIGGRAPH paper Position-Based Dynamics by Muller, Heidelberger, Hennix, and Ratcliff. The position of each vertex of the cloth is kept within certain constraints to ensure realistic appearance. Developed in C++ and OpenGL with plans to port to Maya for rendering.

Jello Simulation

Jello cube physics simulation driven by a mass-spring system. Mass-spring systems are a common setup for many physics simulations, especially for interactive ones. Developed in C++ and ported over to Maya for rendering.


A miniature version of Autodesk Maya implemented in C++ using OpenGL for graphics and QT for the GUI. Team project. Built the .obj file loader and writer that converts meshes into a half-edge data structure, the free form deformation and global transformation functionality, and the QT interface.

3D Robot

Scratching Robot     Jammin Robot
A robot with different animations modeled through OpenGL with a backbone 3D scene graph.