Contact, Collisions, and Restitution
Collisions happen in milliseconds, so simulators need a model of what happens during contact. One option is an instant rule that flips the velocity and keeps a fraction of it. Another is a stiff spring and damper that push the objects apart. Each has trade-offs.
Two contact models
The restitution rule reverses the speed at impact and keeps a fraction \(e\) of it, so each bounce reaches \(e^2\) of the previous height:
The spring-damper model, also called penalty contact, lets objects overlap by a depth \(\delta\) and pushes back with
Choosing the damping this way gives the same bounciness as the rule.
What to notice
With the same \(e\), both balls bounce to almost the same heights. But lower the stiffness and the spring ball visibly sinks into the floor before bouncing, which looks wrong, and its contact lasts longer. Raise the stiffness and the sinking disappears, but the simulator needs much smaller time steps to stay stable, as the next concept shows. Robot simulators like Gazebo, MuJoCo, and Isaac Sim each make their own choices here, which is one reason the same robot can behave differently in each.