The log · 30 September 2026 · design
How people walk in the hall
The people in OmaCRT's arcade hall took sixteen rounds to walk properly. The first ones copied old adventure games; the ones that worked came from a gait laboratory's tables. This entry follows the rounds in five working figures, and the sprites, the joint table and the study plates are free to reuse.
subject
the people who walk through the launcher's home screen
sprite
68 pixels tall, drawn by the launcher at startup
data
Winter's normative joint angles, every 5% of the stride
tools
Claude Code with Opus 5.5, Python prototypes, Rust
release
OmaCRT 0.11.1
2.3%how far the hip rises and falls in a step, from the legs alone
The 0.11.0 hall had people in it: a man walking in, players at the cabinets, a janitor with a mop. They were built from capsules and moved like them. The knees barely bent, the body floated at one height and the arms hung. I told the agent the movement did not convince me, and that started two days of rounds.
This is where they ended. Press play, drag along the curves, or step one pose at a time; every figure in this entry runs on the launcher's own sprites and joint table.

ContactInitial contact
The heel strikes with the toe up and the knee all but straight.
Hip
-20° to 40°
Knee
0° to 80°
Ankle
-20° to 20°
01Copying the classics
The first fix was the animator's one: eight key poses, the knee bent, the pelvis bobbing, the arms in counterphase, each pose held for four frames the way a sprite of the period would be.
I still did not like it, and asked for the LucasArts games as the model. The agent read the SCUMM engine's rules (the ground moves with the pose, the head is large, a walker stops in profile before turning) and then measured Guybrush from The Secret of Monkey Island's sprite sheet: six poses, knees never straight, the head a quarter of the height.
I called it clumsy and slow. It was slow by measurement too: 0.42 heights a second, about half an ordinary walk, which suits a cartoon pirate in a small room. A man crossing a hall walks twice as fast. Indy in Fate of Atlantis was closer, with realistic proportions, a long stride and an upright torso. Copied onto our man, it still did not work, and I said the character itself probably needed redrawing.
02A figure drawn again
The agent stopped posing capsules and drew the man as shapes four times larger than the sprite, lit from the upper left, then reduced each 4x4 block to its commonest colour. Studying Indy at eight times his size gave the rest. He has no black outline: the dark of each material sits on its shadow side only. Every material has four tones, and the shadows drift cool. The cloth breaks into small clusters of two tones, and the whole sprite uses a few dozen colours.
Faces did not survive the reduction. At nine pixels across a reduced face is noise, so the heads are drawn by hand, pixel by pixel, in grids of 12 by 13. The launcher still makes every sprite this way when it starts, and the figure below stops it at each step.
An empty pixel right of or below the figure takes a dark of what it borders. The lit side stays open, and there is no black outline.
Then I looked at the legs and said they walked like two logs.
03The laboratory's numbers
Animation books teach a walk as a handful of poses. A gait laboratory records the angle of each joint through the stride, and David Winter published the normal curves for hip, knee and ankle. The agent sampled them every 5% and posed the legs from them with a spline.

The laboratory's curve: 18 degrees as the heel takes the weight, nearly straight at mid stance, 63 in swing.
Knee bend
0° to 80°
Winter's curves show what our straight legs lacked. The knee gives 15 to 20 degrees as the heel lands and takes the weight. It bends to about 63 in swing while the hip carries the thigh forward, which the crouching version got wrong by bending it everywhere and the kicking version by bending it too early. The foot stays on the ground for 60% of the stride, and the ankle pushes off before it leaves.
The arms came from published studies of arm swing. An arm is furthest back as the heel on its own side strikes, swings 18 degrees each way and runs 5% of the stride behind the leg, while the elbow opens and closes between 14 and 40 degrees.
With the curves in, the legs alone lift and lower the hip by 2.3% of the height, inside the 1.5 to 2.7% measured in people. The bounce added in the first round doubled that, so we took it out.
of the height, low to highinside the 1.5 to 2.7% measured in walkers
04Into the launcher
people.rs does in Rust what the prototype did in Python, and draws each person and pose once and keeps it. The pelvis turns a little with the swinging leg and the chest against it, and the front and back views use the same curves end on, with a pixel of sway over the loaded leg. The new people shipped in OmaCRT 0.11.1.
The sprites were first drawn at 50 pixels and enlarged by a third, so one pixel in three came out doubled. Drawn at 68, the height the hall stands them, they scale by less than a tenth.
The janitor was the last one. He first appeared with the mop already in his hands, turned to face the camera, and mopped in slow motion. Now he carries the mop in, rests it, and mops standing, with a half step every second and a half and a sweep that moves his shoulders.
05The cast and the plates
Everybody in the hall is on one sheet, and so is the joint table. Both are yours to use, as are the two plates below them, drawn from the same sprites and numbers in the launcher's 8x8 font. A link back is welcome.
The sheet: people.png, every sprite at 62 by 76 with the feet at 31, 72. The joint table: gait.csv, hip, knee and ankle every 5% of the stride.


Sources: David A. Winter, The Biomechanics and Motor Control of Human Gait (1991); Richard Williams, The Animator's Survival Kit; Pixelblog 50, human walk cycle by SLYNYRD; the sprite sheets of The Secret of Monkey Island and Fate of Atlantis on The Spriters Resource, which the agent measured; no frame of them appears here.