Glossary · Physics simulation
Mass matrix
Also called inertia matrix, factorisation, factorization, Cholesky, LDL
A table that says how hard each joint is to accelerate, given everything attached to it; the physics has to factorise it every step.
For a single object, Newton’s second law is force = mass × acceleration. For a body made of linked parts, pushing one joint moves everything attached to it, so the “mass” becomes a table, the mass matrix , with one row and one column for each degree of freedom:
Here is the joint angles, their accelerations and the joint torques. Entry says how much a push on joint resists or drives joint . It changes with the pose: an arm held out is harder to turn at the shoulder than one held in.
To get the accelerations, the simulator has to solve this equation every physics step. It does it by factorising into simpler triangular tables (), which are quick to solve. For a body shaped like a tree, most entries are zero and the factorisation can work from the tips of the tree towards the root, level by level.
In this project
The muscular body has 89 degrees of freedom in one tree: pelvis, spine, neck, arms, legs and every finger joint. On a GPU, MuJoCo Warp has a fast factorisation for blocks of up to 64; the muscular body fell to a slower general one that took 53 % of the GPU’s time. Training on a rented GPU replaced it with one launch per copy of the world (38.6 to 8.9 ms per step at 8,192 copies, +28 % physics). The simple body has 43 degrees of freedom and fits the fast path.