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.