Quick answer: Set Drive Damping = 2 * sqrt(Stiffness * mass) for critical damping. Bump Position Solver Iterations to 16. Use Acceleration mode for mass-independent tuning.
Robotic arm articulated with ArticulationBody joints. Spring drives oscillate visibly when reaching for a target. Underdamped springs.
The Symptom
Articulated joints overshoot and oscillate before settling. Worsens at higher Stiffness. Solver never quite converges.
The Fix
ArticulationBody Inspector → X Drive (per axis):
Stiffness: 1000
Damping: 63 // 2 * sqrt(1000 * mass=1) = ~63
Force Limit: inf
Drive Type: Force
Mode: Acceleration
Damping at critical or slightly over (overdamped) eliminates oscillation. Acceleration mode normalizes against mass.
Solver Iterations
Root ArticulationBody:
Solver Position Iterations: 16
Solver Velocity Iterations: 8
Chains of articulated bodies need higher iterations to converge. 16 position iterations is a reasonable starting point.
Substepping
Project Settings → Physics → Substepping. Enable for chains under fast motion. 4 substeps per FixedUpdate doubles physics solve time but smooths spring response.
Verifying
Drive a joint to a fixed target. Observe convergence. Critical damping settles in <0.5s with no overshoot. Underdamped: visible bounce.
“Critical damping. Higher iterations. Acceleration mode. Joints settle.”
Related Issues
For Rigidbody sleep, see sleep waking. For Fixed Timestep, see timestep.
Damping. Iterations. Substep. Joints calm.