A rigged fox, not a sprite
The note on the last cut was exact: he jumped around like a PowerPoint icon. He did. Every version until now moved one flat drawing of a fox from place to place, which is not animation, it is transport. This one takes the fox apart into six pieces with their own pivots and animates the pieces. He walks on four legs, his head lags his body, his tail carries through after he stops, and he blinks. Twenty seconds, rendered in thirteen.
You cannot animate a character you cannot take apart
This is the whole lesson, and it cost three attempts to learn properly. Our fox existed as flat cutouts: one image per pose, fourteen of them. A flat image can be moved, scaled and rotated. It cannot walk, because walking is parts moving against each other.
Two ways to get parts failed before the third worked.
First, drawing a rig by hand in SVG. The machinery worked on the first try, the drawing did not: four passes and it still read as a generic cartoon fox rather than ours. Second, cutting the existing artwork along its own ink outline. That fails for a structural reason worth knowing: in this character the head flows into the chest with no dividing line, so a region split returns one shape of 243,000 pixels. There is nothing to cut along.
The parts came out of the same image pipeline that produced the character in the first place. Then a connected component pass cut them apart, and each piece became a layer with its own pivot: the hips, the shoulders, the base of the tail, the base of the neck.
The walkSix frames of one stride
| What is rigged | What it does, and why it matters |
|---|---|
| Four legs | Each on a hip pivot. Diagonal pairs swing in antiphase, which is how four legged animals actually walk. The far pair carries a slight tint so the near pair reads in front. |
| Body bob | Rises twice per stride, at the middle of each swing. Without it the fox slides along a rail. |
| Head lag | The head bobs on the same rhythm but 60 milliseconds late. That offset is the single clearest signal that a thing is alive rather than rigid. |
| Tail follow through | Swings at half the leg rate while walking, then overshoots and settles on a spring when he stops. The tail arrives after the body does, always. |
| Head as a performance | He looks up at the headline, tracks the typing across the search bar, snaps up when the answer lands, and counts the three results with three small turns. |
| Blink | Down in 60 milliseconds, up in 100. A symmetrical blink looks mechanical; real ones close faster than they open. |
| Breathing | Two percent of vertical scale on the torso under every held beat. |
| Plant and settle | When he stops walking the body keeps rotating for a beat and comes back on a spring, and the tail whips a moment later still. |
Before animating any character, ask what it is made of. If the answer is one flat image, the honest next step is not a cleverer animation, it is a rig. Everything downstream, the walk, the lag, the follow through, the blink, is cheap once the parts exist and impossible before.
What this actually took
The rig parts cost a few cents of image generation. Everything else, the cutting, the rigging, the animation and the render, is the same free local toolchain as the first two cuts: headless Chrome and FFmpeg, no API key, nothing uploaded. The render is now the fastest part of the process by a wide margin: thirteen seconds for six hundred frames.
The rig is reusable, which is the real return.
A rendered film is finished the moment it exists. A rig is an asset: the next film, the next social cut, an app onboarding animation and a loading state all draw on the same six parts and the same joint code. The expensive part was deciding the character had to come apart. Doing it again costs almost nothing.
NextWhat is still missing
- Sound. Three cuts in and it is still silent. Footsteps on the walk cycle would do more for this film than any further animation.
- More parts. The ears are painted into the head, so they cannot flick independently. A sheet with separated ears and a jaw would buy a lot of expression for one more generation.
- A sit and a turn. He can only walk and stand facing right. A second sheet in three quarter view would let him turn to camera.
Run on 22 August 2026 on an Apple M4 desktop. HyperFrames 0.8.8, headless Chrome and FFmpeg. Rig parts generated as a single cutout sheet with gpt-image-2 at medium quality, after a low quality probe, then separated by a connected component pass at an alpha threshold of 128. 600 frames rendered in 12.9 seconds. The checker passed with zero errors; it caught one real bug during the build, a CSS transform on the blink lid that the animation would have silently overwritten.
Press Notes at the bottom right to mark up any block, or click any line to edit it directly.
Back to the topic · v2, the pose library · v1, the pipeline proved · All explorations