Secondary and Soft-Body Motion

Watch a heavy character skid to a stop. The body halts — but the belly, the cheeks, the ponytail and the loose coat keep going for a moment, bulge forward, then wobble back and settle. Nobody keyframed that jiggle by hand; it is derived from the main action. This lagging, overshooting, settling motion is what tells your eye that the character has mass and is made of soft, real stuff. Kill it and even a beautifully animated run looks like a stiff mannequin on rails.

This page separates the two layers of motion — the primary action the animator authors, and the secondary motion that passively follows — and shows the standard cheap tool that manufactures the second from the first: a damped spring attached to a bone or vertex, so it lags and overshoots. We connect it back to the twelve principles (follow-through and overlapping action), and end with a jiggle you can tune yourself.

Primary vs secondary motion

The crucial practical point: secondary motion is tedious and unnatural to hand-key. There may be dozens of jiggling elements, each reacting to every twitch of the body, frame after frame. So we almost never key it directly. Instead we simulate it or procedurally derive it — we describe the physics of the soft part once and let the computer read the primary motion and compute the wobble automatically. Author the run; let the belly follow for free.

The workhorse: a jiggle / spring deformer

The cheapest, most-used tool for secondary motion is the jiggle (or spring) deformer. The idea is beautifully simple. Take the soft point — say the tip of the belly — and imagine it is not rigidly welded to the body. Instead it hangs off the body's rig point by a spring, with a bit of damping (friction). As the body moves, the anchor drags the spring; the soft point, having mass, lags behind, then overshoots when the body stops, then oscillates back to rest.

Let x(t) be the soft point's position and a(t) the anchor's (the primary motion, the "driver"). The spring pulls the soft point toward the anchor with a force proportional to how far apart they are, and damping resists the soft point's velocity:

m\,\ddot{x} \;=\; \underbrace{k\,\big(a(t) - x\big)}_{\text{spring: pull toward anchor}} \;-\; \underbrace{c\,\dot{x}}_{\text{damping: resist motion}}.

Divide by the mass and write it in the standard form animators actually tune, with stiffness \omega_0 = \sqrt{k/m} (how tightly the point tracks the body) and a damping ratio \zeta = c/(2\sqrt{km}) (how quickly the wobble dies):

\ddot{x} + 2\zeta\omega_0\,\dot{x} + \omega_0^{2}\,x \;=\; \omega_0^{2}\,a(t).

High stiffness \omega_0 means the point snaps to the body almost rigidly — taut muscle. Low stiffness lets it swing loose and lazily — a hanging jowl. The damping ratio \zeta sets how many wobbles you get before it settles: this one spring, driven by the primary motion, is follow-through and overlapping action made mechanical.

Worked example: the belly that keeps going

A character running at speed v stops instantly at t = 0. The body's anchor jumps to rest, but the belly (a damped spring) still has the body's momentum, so it carries on forward and overshoots. Set the anchor to rest at the origin, a(t) = 0 for t \ge 0, and give the belly the initial conditions it inherited: displacement x(0) = 0 but velocity \dot{x}(0) = v. For a typical soft, under-damped belly (\zeta < 1) the driven spring above has the closed-form response

x(t) \;=\; \frac{v}{\omega_d}\,e^{-\zeta\omega_0 t}\,\sin(\omega_d t), \qquad \omega_d = \omega_0\sqrt{1 - \zeta^{2}}.

Read the story straight off the formula. The \sin(\omega_d t) swings the belly forward first — the overshoot — then back past zero and forward again: the follow-through. The e^{-\zeta\omega_0 t} envelope shrinks each swing, so the wobble settles to rest. The stiffness \omega_0 sets how fast it oscillates and how tightly the jiggle tracks the body; the damping \zeta sets how quickly those swings die out. A stiff, well-damped belly gives one crisp overshoot and settles; a loose, lightly-damped one wobbles like jelly for a second or more.

The peak overshoot happens at the first quarter-swing, t^\star = \tfrac{1}{\omega_d}\arctan\!\big(\sqrt{1-\zeta^2}/\zeta\big), and its size scales with the incoming speed v — the faster the character was moving when it stopped, the bigger the belly lurches. That single fact, that the overshoot is proportional to the speed you took away, is what makes the stop read as heavy.

Tune the jiggle yourself

Here is the belly's displacement after the sudden stop, x(t) = \tfrac{v}{\omega_d}\,e^{-\zeta\omega_0 t}\sin(\omega_d t) with v = 1. Drag the two sliders. Raise the stiffness and the wobble gets faster and tighter — the flesh reads as firmer, more like muscle. Raise the damping and the overshoots shrink and vanish sooner — the flesh settles quickly. Push damping toward zero and the belly wobbles almost forever (rubbery jello); push stiffness very high with good damping and you get a single snappy overshoot.

Everything you feel as a material — taut, doughy, jiggly, rigid — is just a point in this two-number (\omega_0, \zeta) space. That is the whole appeal of the spring deformer: two dials, and the physics does the acting.

Beyond springs: real soft bodies

A single spring per point is cheap but crude — it wobbles each point independently and does not conserve the character's volume. For genuinely squashy, jelly-like characters (think a gummy blob or a fat cartoon monster) studios reach for real soft-body deformation:

Two extra effects matter over joints. Volume preservation keeps a bending elbow or a squashing belly from losing (or gaining) apparent mass — squash in one axis must bulge in another, just like real flesh. And skin sliding lets the skin glide over the bone and muscle beneath rather than being rigidly bound to it, so a shoulder or knuckle creases and slides believably instead of collapsing or pinching. Both are, at heart, the same instinct as the jiggle spring: don't rigidly weld the soft stuff to the skeleton — let it respond.

Because a passive appendage is a free readout of the body's motion. A springy antenna, a tail, a ponytail or a hat feather has no acting to do — it just obeys the spring equation — yet by lagging and overshooting the head's every move it reports that motion to the viewer, doubling the sense of weight and snap. Classic character design leans on this hard: give a creature one loose, jiggly bit and it instantly feels alive, because that bit is a little physics-driven puppet broadcasting the primary action. It is the cheapest life-per-vertex in animation.

Secondary motion lives or dies on tuning, and there are two opposite ways to get it wrong. Too little damping and the flesh wobbles forever — the belly oscillates long after the body has settled, and a human character reads as made of rubber or jello. Too much stiffness (or too much damping) and the effect disappears — the soft part tracks the body almost rigidly, killing the follow-through and making the character stiff and lifeless again, exactly what you added the spring to avoid.

The fix is to match the spring parameters to the material. Taut muscle wants high stiffness and firm damping: one quick, tight overshoot. Loose fat or a heavy jowl wants lower stiffness and lighter damping: a bigger, slower, longer wobble. Loose cloth wants lower still. There is no single "good" setting — the setting is the material. Tune each jiggling element to what it is supposed to be made of, and never leave damping so low that a body part rings on past the moment.