Demo of my rigid body system, built on the particle system, that implements the following features:

  • Rigid body state update: position and orientation (using quaternions)
  • Broad phase collision detection with axis aligned bounding boxes using the sweep and prune technique described in I-COLLIDE – An Interactive and Exact Collision Detection System for Large-Scale Enviroments.
  • Narrow phase collision detection with GJK and some optimizations like transformation of one of the bodies to the space of the other or hill climbing of geometry to find supporting vertices
  • Impulse–based collision response using backtracking with the half-step method to find the collision time

The system was implemented with C++, GLUT/OpenGL and the CML math library.