What is it?
Software that advances a world of bodies in small time steps: accumulate forces, integrate velocities and positions (semi-implicit Euler or Verlet), detect collisions, resolve contacts. A numerical ODE solver tuned for speed and stability rather than accuracy.
Why does it exist?
Games and films need plausible motion in real time for thousands of objects. Exact solutions do not exist, and accuracy matters less than never exploding: a ragdoll that jitters is a bug, one that is 1% off is not.
Formulas
- semi-implicit (symplectic) Euler
- Verlet integration (second order, symplectic)
How is it computed?
every frame (h = 1/60 s, often split into substeps):
for each body: F = gravity + springs + user forces
for each body: v += h · F/m ; x += h · v # semi-implicit Euler
detect collisions; apply impulses to fix contacts
Why does it matter?
Unity, Unreal, Godot, robotics simulators (MuJoCo, Isaac) and VFX tools all have one at their core; differentiable versions let robots learn by gradient descent through physics.
The mathematics behind it
Positions, velocities and forces are 3D vectors updated every frame.
Engines store positions and their derivatives (velocities) and advance them frame by frame.
Explicit integrators with too large a time step blow up; engines pick stable schemes and sub-step.
A physics engine integrates , for every body, every frame.
Semi-implicit Euler is the default integrator of Box2D, Bullet and most game engines.
Positions are integrals of velocities, velocities integrals of accelerations.
Integrating velocity gives position: every simulation step is a tiny application of the FTC.
Integrators (Euler, Verlet) are truncated Taylor expansions of the motion in the time step.
Springs and dampers drive cloth, ragdolls, camera smoothing and vehicle suspensions.
Cloth and soft bodies use implicit integration (Baraff–Witkin) so stiff springs do not explode.
Simulation assumes motion is continuous between frames; collisions break that and are handled separately.
Implicit integrators for stiff systems (cloth, soft bodies) solve a nonlinear system with Newton each step.
Wind, gravity wells and particle effects are applied as force fields.
Non-Lipschitz forces (contacts, friction switches) break uniqueness, which is why engines treat them specially.
Where is it used?
Computing topics reachable from here, through the chain of ideas that leads to them: