Home · Lab · Motion Basics

M4 Overshoot and settle

A spring that overshoots once, then settles

Motion Basics · ~7 min · Free

1 The idea

Things with weight don’t stop exactly on target: they go a little past and come back. Motion and UI work often uses a spring with two settings: stiffness (stiffer = faster) and damping (more = less swinging). The ratio ζ sets its character: below 1 it swings, at 1 it reaches the target fastest without overshooting, above 1 it is sluggish.

The graph uses the spring’s exact solution, not a step-by-step simulation, so it can’t blow up at extreme settings. Watch the green ±2% band: it counts as “settled” once the curve enters the band and never leaves it.

x″ = k (1 − x) − c x′ · ζ = c ÷ (2√k)

2 Hands-on

Task: overshoot once by 5–20%, swing back less than 2%, and settle by frame 16

A ζ of about 0.55–0.65 gives a single overshoot; then raise stiffness until it is quick enough (raising damping with it to keep ζ)

SkyVFX Lab · M4interactive · 1001

3 Deep dive

Two settings, three characters

A mass-1 spring has stiffness k and damping c. Its natural frequency is √k (radians per second) and the damping ratio ζ = c ÷ (2√k) sets its character. To make it faster with the same character, raise k and raise c with it to keep ζ.

ζOvershootSwing backFeel
0.1366%44%rubbery, keeps wobbling
0.69.5%0.9%weighty, one overshoot
10%0%precise, no overshoot
20%0%sluggish, slow to arrive

Overshoot is predictable

For ζ < 1 the first overshoot is e^(−ζπ/√(1−ζ²)), and every swing back shrinks by the same ratio. ζ = 0.6 overshoots about 9.5% and swings back about 0.9%, too small to notice, which reads as “one overshoot, then still”.

For example, k = 200, c = 17 (ζ ≈ 0.60) settles inside the ±2% band from frame 11.

For “one bounce”, start at ζ ≈ 0.6 and only tune the speed.

Why the exact solution instead of stepping

The simplest frame-by-frame simulation (explicit Euler) keeps adding energy; a very stiff spring stepped 24 times a second can swing harder and harder until it explodes. The exact solution can’t. If you must simulate, use several sub-steps per frame and a more stable method such as semi-implicit Euler.

4 In real work

In Nuke

  1. Transform: key an overshoot by hand: a key past the target, a small one back, then the resting key.
  2. Check in the Curve Editor that each swing is smaller than the last by a steady ratio, while the time between swings stays the same (a damped spring keeps a constant period, unlike a bouncing ball, whose bounces get closer together).
  3. For a formula, put an expression on the Transform’s translate using exp() and cos() of frame, the same spring formula as this lesson.
  4. Turn on the Transform’s motionblur so the fast part of the move blurs naturally.

Common mistakes → the fix

  • ✗ Raising only stiffness to make it faster✓ ζ drops and it swings more; raise damping with it.
  • ✗ Adding overshoot to everything✓ Heavy or rigid things (a tripod camera, machinery) usually shouldn’t bounce; use ζ near 1.
  • ✗ Keying overshoots of equal size✓ Each swing must shrink by a steady ratio, or it looks mechanical.

Before you send the shot

  • The number of swings suits the material (rigid = fewer)
  • Each swing shrinks evenly
  • Fully settled before the cut or the next action
  • The fastest part has motion blur

5 Check yourself

One question to check yourself

Raise damping until ζ = 1. What does the move look like?

What you learned

🔒 Answer the question above and this card opens

More questions

1. The spring swings nicely but is twice too slow. How do you speed it up and keep the same character?

2. What does ζ = 0 give?

Where the numbers come from: A mass-1 spring released at rest from 0 towards 1, using the exact closed-form solution for all three cases (underdamped, critical, overdamped), checked numerically. The ±2% band and the 5–20% range are our choices for this task, not a standard.