As a course project at UNC, I created a real time Impulse Based Rigid Body Simulator. It could work with concavities, calculated the correct mass matrices, etc. Please see the following links for three examples:

Falling Balls 1 - A group of bumpy spheres drop and roll down an inclined plane. Bumpy spheres used to clearly show rotation.

Falling Balls 2 - Collision detection is between all objects in the scene and not just the static plane.

Falling Mushroom - Shows concavities and mass matrix results.

I began my research at UNC working on physically-based paint rendering in a real-time painter’s system. The system was called IMPaSTo and was published in an ACM sponsored conference (NPAR 2004). This work was principally the work of Bill Baxter. My contribution was the entire rendering pipeline (his was simulation). This work was completely performed using programmable Graphics Hardware (Cg).

IMPaSTo

In my own research, I spent the 2004-2005 year working on fluid simulation in arbitrary domains using Finite Volume Methods. The following videos were rendered in POVRay or OpenGL. The simulation code was nearly all my own implementation.

Fluid Simulator