This rigid bodies simulation is written in C++ and OpenGL. Keyboard interaction allows the user to shoot spheres into the scene. Collisions are detected for planes, spheres, cubes and rectangles. Impulse force for collision and contact resolution follows the method presented in the paper “Nonconvex Rigid Bodies with Stacking.” The simulation uses a Sweep and Prune algorithm for broadphase collision detection. Friction and gravity are added for realism.