Quick answer: Set ArticulationBody.solverIterations to 20+ on each body. Lower fixedDeltaTime to 0.01 if needed. Articulation drift is a solver iteration count problem.
A robotic arm built with ArticulationBody has its end effector slowly drift away from the intended pose over a minute of simulation. Small per-tick errors compound. The arm is built correctly; the solver isn’t converging tight enough.
Articulation Solver
ArticulationBody uses PhysX’s articulated joint solver, which is a reduced-coordinate formulation tighter than ConfigurableJoint but still iterative. Each tick, the solver runs N iterations refining positions; with too few iterations, residual constraint error remains and accumulates as drift.
The Fix
// On each body in the chain
articulationBody.solverIterations = 24;
articulationBody.solverVelocityIterations = 8;
Default solverIterations is 6, velocity is 1. Bumping to 24/8 dramatically reduces drift for typical robotic chains. Cost: roughly 3× articulation CPU per body.
Project-Level Defaults
Edit → Project Settings → Physics → Default Solver Iterations. Setting these higher applies to all new ArticulationBodies. Per-body overrides as above for specific tight chains.
Fixed Timestep
Lower fixedDeltaTime from 0.02 to 0.01:
Time.fixedDeltaTime = 0.01f;
Doubles simulation steps per second; halves per-step error. Cost: double physics CPU. Combine with iteration tuning for stable robotic motion.
Joint Drives
For positional drives, the Force Limit and Damping play a role. Lower damping = bouncier; higher = slower but stable. For robotics, start with Damping = Force/10.
Verifying
Set a target pose. Let the simulation run for 60 seconds. Drift should be sub-millimeter. With default settings, drift is often visible (centimeters). Compare runs with and without tuning to confirm.
“Articulation solver iterations are the main lever for drift. Default 6 is too few for tight chains; 20+ is normal for robotics.”
For VR hands or precise IK setups, even higher iteration counts (32–48) are common — players notice millimeter drift on their own hands.