Constrained Rigid Body Dynamics

Rigid body physics simulator with velocity impulse physics constraints.

Description: Recently I have been exploring rigid body physics simulation. I have read several great articles and explored source code regarding important topics like: fixed integration time step, time accumulators, interpolating body states and the mathematics for representing rigid bodies, including moment of inertia, conservation of angular momentum and the inertia tensor matrix.

I have also been exploring methods for enforcing physics constraints including springs, velocity impulses and analytical methods using linear complementarity problem solvers. Along with the contact constraints comes collision detection and contact manifold construction.

Here are some links to reference material used:

Rigid body dynamics - Chris Hecker's Website

Gaffer on Games | Game Physics

JigLib - rigid body physics engine

Algorithmic and Architectural Gaming Design: Implementation and Development

EPA (Expanding Polytope Algorithm) | dyn4j

Tools: Visual C++ Pro, OpenGL.

Topics: Physics simulation, rigid body dynamics, constraints, velocity impulses, linear complementarity problem solvers, numerical methods, collision detection.

Available for Download!

Here is a screen shot.

Rigid Body Image 1

Another screen shot.

Rigid Body Image 2

Here is a video showing some of the action.

Obligatory code screen shot.

Rigid Body Image 3

I have also been messing around with a 2D block matrix LCP simulator, enforcing jacobian velocity constraints with baumgarte stabilization and GJK/EPA convex polyhedron collision detection. A work in progress for sure but a potentially very elegant method.

Here is a video.

Please contact me if you are interested in acquiring a copy of the program, seeing the source code, or have any comments.

Back to the projects page.