Figure
shows the flow control in a typical animation
simulator with collision detection.
Figure: Simulator control flow (Source: Kamat [Kam93])
The simulation proceeds in steps. The objects are moved and positioned
according to the dynamics equations, or particular rules employed by the
simulation, and then interpenetration between any bodies is checked for. If
there is no interpenetration, the simulator continues on and tries the next
time step. If there is interpenetration between objects, then the object
database state is backed up to the state where the objects are just in contact
and there is no interpenetration between any objects. If we denote the initial
state of the database (when there is not interpenetration) as
and the end
of the time step as
, then the time
(when the database of objects is
in the state where the objects are just in contact) is in the range
. Determining the time
is a root finding problem and can be
solved using various methods such as bisection or regula falsa [Bar90].