Looking at some old code I wrote for a game. It has objects that collide, and rebound from each other. Where two collide, or one collided with a boundary, I knew how to work out the new trajectories and speeds. In the case of multiple body collisions I had no clue. I broke them down randomly into pairs of 2 and just kept resolving until everything was moving again [EDIT: and nothing interpenetrated] :-) How you actually do it for multi-body systems?