Impulse-based dynamic simulation 

IBDS is a free library for dynamic simulation of multi-body systems in C++. It simulates rigid bodies, particles, many different joint types and collisions with friction.