A stick figure with 11 joints, posed every frame by a gait function of a phase from 0 to 1. The same joints, with a shirt and trousers drawn over them in Oto's colours from the lab cast, show what the kit's look would sit on. The strokes are plain SVG lines with round caps; the "rough strokes" box redraws the bones with Rough.js (seed 7) so you can see why that is not the default.
phase 0.25
What this taught us
- A rig gives you every in-between for free: the four gaits here are four small functions of a phase, and speed, stride and direction are numbers, where the kit's seven drawn poses are seven fixed pictures with nothing between them. The cost is that a rig only knows what its functions know: a pose that is not on a cycle (think, shrug, sit) still has to be authored.
- A walk reads as a walk from two positions, not from the whole cycle: the contact (both legs straight and apart, the body at its lowest, phase 0.25 and 0.75 here) and the passing (the swinging leg bent under a body at its highest, phase 0 and 0.5). Get those two right and the in-betweens can be plain sine waves. Scrub the phase slider to the four marks and compare.
- Three things break it: the feet slide if the distance travelled per cycle does not match the stride (fixed here by deriving the distance from the thigh swing, so each gait has its own ground speed); a run with the same bob as a walk looks like a fast walk (a run needs a flight phase, a forward lean and bent arms); and Rough.js redrawn every frame boils, even with a fixed seed, because the wobble is proportional to a geometry that changes each frame. The kit's wobble suits stills and arrivals, not cycles.
- The costume over the bones is thick strokes in the shirt and trousers colours plus a skin circle and the beanie, with flat fills rather than the kit's hachure; it reads as the same character at a glance. Lifting this into the kit would mean drawing a character from a joint list instead of from fixed offsets, which is a new release of drawCharacter, not a patch. Status: exploring.