invisible fΦrce Knowledge hub
Foundations

What is a
physics engine?

A physics engine is the part of a simulator that computes movement. Given where everything is right now and which forces act on it, it predicts where everything will be a fraction of a second later. Then it repeats, hundreds of times per simulated second.

One step at a time

A physics engine never computes a whole movement at once. It computes one tiny slice of time, typically a thousandth to a few thousandths of a second, then the next. The MuJoCo documentation lists what happens in each slice: work out where every part is, add up the forces such as gravity and motor torque, compute how the parts push on each other, then move everything forward by one slice.[2]

Why touching is hard

An object flying through the air is simple to predict. The difficulty starts when things touch: a foot on the ground, a gripper on a steel plate. The engine must find forces that stop the parts from passing through each other, while respecting how much friction the surfaces can provide. There is no exact formula for this, so the engine uses a repeated-guessing procedure called a solver, and different engines make different trade-offs between accuracy and speed.[2][4] More in What is a solver?

This is one of the main reasons simulated robots behave differently from real ones. Real friction, real squashiness and real slipping rarely match the idealised model. See What is the sim-to-real gap?

The time step

A bigger time slice runs faster but can go unstable, with parts jittering or exploding apart, especially when hard objects touch. A smaller slice is safer but costs more computing.[2] Engines often take several small physics steps for every decision the robot's controller makes.

The engines used in robotics

EngineWho maintains itRuns many robots on a GPUIn one line
PhysX 5NVIDIAYesThe default engine inside Isaac Sim.[4]
MuJoCo 3Google DeepMindYes, through MuJoCo WarpKnown for careful contact modelling; the favourite of control researchers.[2][3]
NewtonLinux FoundationYesNew open-source engine built on NVIDIA Warp; uses MuJoCo Warp as its main solver and adds cloth and soft-body solvers.[1]
BulletOpen source volunteersNoA long-standing engine; widely used through PyBullet, now mostly in maintenance.[5]

The physics engine is one of the four parts of a simulator described in What is robotic simulation?

Origin: MuJoCo's way of treating contact as an optimisation problem comes from Todorov, Erez and Tassa, 2012.[6]

References

  1. Newton project, Linux Foundation. Newton physics engine (repository). 2026.
  2. Google DeepMind. MuJoCo documentation: Computation. 2026.
  3. Google DeepMind and NVIDIA. MuJoCo Warp (repository). 2026.
  4. NVIDIA. PhysX 5.6 documentation: Rigid Body Dynamics. 2025.
  5. Erwin Coumans and contributors. Bullet Physics SDK (repository). 2026.
  6. Todorov, Erez and Tassa, IEEE/RSJ IROS. MuJoCo: A physics engine for model-based control (origin). October 2012.

Every link was opened and checked in September 2026. Links open in a new tab.