A bare inverse-kinematics solver answers one narrow question: what joint angles put this one hand on that one point? — and it will happily bend a knee backwards, snap an elbow inside-out, or let the whole character topple over to get there. Real animation never asks IK just one question. When a character reaches for a high shelf, everything participates at once: the reaching hand must land on the shelf, the other hand and both feet must stay planted, the knees and elbows must fold the way real ones do, the spine has to arch, and — above all — the character must not fall over.
This page turns a toy solver into a production one. We add joint limits so poses stay
anatomical, pole vectors to steer the redundant elbow, look-at aim
constraints for heads and eyes, multiple end-effectors solved together with a stacked,
prioritised Jacobian, and finally full-body IK that keeps the centre of mass balanced
over the feet. We close with the subtle art of blending between IK and FK without the
pose popping. (The single-chain machinery this builds on —
A shoulder can swing far; a knee is a hinge that bends one way and stops near straight. If nothing tells
the solver this, it treats every degree of freedom as unbounded and finds mathematically valid but
physically grotesque poses. The fix is a joint limit: a permitted range
Clamping-per-iteration is the workhorse: it is one line, and because the solver re-linearises next iteration it simply routes the remaining error through the joints that can still move. That is exactly why a knee at its limit forces the reach to be taken up by the hip and spine instead — the constraint doesn't fail, it redistributes.
Fix a shoulder and a wrist and the arm still has a whole circle of solutions: the elbow can swing anywhere around the shoulder-to-wrist axis, tracing a cone. This leftover freedom is redundancy — the two-bone chain has more configurations than the target pins down. Leaving it to the solver's arbitrary preference makes elbows drift or flip between frames.
A pole vector (or swivel angle) resolves it by naming a point the elbow should aim toward. The solver places the elbow in the plane through the shoulder, the wrist, and the pole target, on the side the pole indicates. Animators keyframe the pole (or the swivel angle around the axis) to keep an elbow pointing sensibly down-and-out, or to hit a specific silhouette. The same idea steers a knee. Without it, a redundant IK chain is a coin toss.
That pop is the swivel solution jumping to the other branch. As the wrist crosses a configuration where the arm is nearly straight (or the pole target passes through the shoulder-wrist axis), the "which side of the axis" decision flips sign and the elbow snaps to the mirror pose. Cures: keyframe the pole vector so it never grazes the axis, keep the arm from fully straightening (a joint limit just short of straight preserves a defined bend plane), or interpolate the swivel angle continuously rather than re-deriving the elbow side from scratch each frame.
A look-at or aim constraint is orientation-only IK: it rotates a
joint so that one of its local axes points at a target. Point the head's forward axis at a moving
prop, aim each eyeball at a focus point, keep a gun barrel on a mark. Given a joint at
and an up reference fixes the remaining roll so the head doesn't spin about its own gaze. Aim constraints usually run with their own limits (an eye can only rotate so far in its socket) and are often chained: the eyes aim fully, the neck takes a fraction, the chest a smaller fraction, so a character turning to look uses the whole upper body — a mini full-body solve in its own right.
Two hands on a steering wheel and both feet planted is four end-effector goals competing for
one set of joint angles. The Jacobian method extends cleanly: stack each effector's task error
and solve the (generally over- or under-determined) system for one joint update
with big weights on the goals that must not be sacrificed (feet stay planted) and smaller weights on the negotiable ones (the hand gets as close as it can). Weighting says "these matter more"; it does not guarantee the important goal — a strong enough pull elsewhere can still nudge it.
Weights blur priorities into a soft trade-off; strict task-priority makes them a hard ladder — balance and foot contacts on the top rungs, the reaching hand below, gaze below that.
Full-body IK (FBIK) drops the idea of a single privileged root. Instead of solving one arm chain from a fixed shoulder, it solves the entire skeleton at once against a set of goals, so that when a hand reaches, the shoulder rises, the spine arches, and the hips shift — the reach is shared across the body the way a real one is. Two goal types make it look alive rather than mechanical:
Drag the shelf height below and watch the whole figure cooperate: the feet stay pinned (their goals win), the hips lift and the spine bends to lend the arm reach, the elbow folds within its limits, and the plumb line from the COM stays inside the shaded support strip between the feet — the character reaches and stays standing.
Trace what a full-body solver does with the pose above, goal by goal, and see how priorities settle the conflicts.
The conflict is real: pure hand-reach wants to throw the mass forward, while balance wants it back. Because balance sits above the hand goal, the solver satisfies balance and reaches as far as it can in the remaining freedom — which is precisely why a character reaching a just-too-high shelf rises onto the balls of its feet and stretches, rather than face-planting toward the target.
A limb is rarely IK-driven for a whole shot. A hand might be hand-keyed in FK as it
swings freely, switch to IK to lock onto a doorknob, then return to FK as it lets go.
The clean way to switch is not a hard cut but a blend weight
blended per joint (as orientations, so rotations are interpolated as
The single most common FBIK bug in a shot is the blend pop: flipping a limb from FK
to IK by switching
Playback runs a baked walk cycle in FK, but the ground under the feet is uneven, so the animation's flat-ground feet float or sink. A runtime FBIK pass fixes it: foot-contact IK goals ray-cast down to find the real ground height and normal under each foot, pin the foot there, and let the solver push the correction up through the ankle, knee and hip — while a balance goal keeps the pelvis sensible. The animator authored the performance once; IK adapts it to terrain the animator never saw. It is the same stacked-goal machinery as the shelf reach, just running sixty times a second at the player's feet.