Run (bird, in place)
The run of the game cycles for birds: a forward lean with the head thrust out and the wings half open and flapping hard, fitted to a speed setting so the planted foot never slides.

Use it in a cartoonOpen it in the block editorThe pack file (JSON)
What it is for
Run (bird, in place) is the run of the nine game cycles, written for the bird set: a forward lean, the head thrust out and the wings flapping hard rather than held settled, a bird's own sprint. Like Waddle (bird, in place) it is built on the shared walk cycle block, since a bird's one-bone leg needs no separate shin formula the way a two-bone leg does.
The principle it shows: exaggeration
Most of the walk's numbers are simply pushed further here: a wider stride and a wing-flap nearly five times the walk's own swing, 28 degrees instead of 6. Not every number grows, though — the body's side-to-side roll actually settles down, 3 degrees instead of 5, as if the bird is holding itself steadier while it concentrates on speed. That true detail, not just bigger numbers everywhere, is what keeps the exaggeration from feeling arbitrary.
The program, line by line
settings: speed = 1.5, h = 540, leg = 0.05, every = (clamp(0.34 - 0.04*speed, 0.2, 0.3)), stride = (clamp(12 + 6*speed, 16, 26)), feet = 1
when it starts
set left arm -55, right arm 55, torso -6, head -4
walk cycle every (every) s · arm swing 0 · no bob · roll 3 · stride (stride) · give 0 · bend 0 · seen from the side
left foot follows (-feet*(stride*((1 - 4*mod(local/every + 0, 1))*(1 - step(0.5, mod(local/every + 0, 1))) + (4*mod(local/every + 0, 1) - 3)*step(0.5, mod(local/every + 0, 1)))))
right foot follows (-feet*(stride*((1 - 4*mod(local/every + 0.5, 1))*(1 - step(0.5, mod(local/every + 0.5, 1))) + (4*mod(local/every + 0.5, 1) - 3)*step(0.5, mod(local/every + 0.5, 1)))))
left leg lift follows (0.025*h*max(0, -sin(2*pi*(local/every + 0))))
right leg lift follows (0.025*h*max(0, -sin(2*pi*(local/every + 0.5))))
dy follows (h*leg*(1 - (1 - step(0.5, mod(local/every, 1)))*cos((stride*((1 - 4*mod(local/every + 0, 1))*(1 - step(0.5, mod(local/every + 0, 1))) + (4*mod(local/every + 0, 1) - 3)*step(0.5, mod(local/every + 0, 1))))*pi/180) - step(0.5, mod(local/every, 1))*cos((stride*((1 - 4*mod(local/every + 0.5, 1))*(1 - step(0.5, mod(local/every + 0.5, 1))) + (4*mod(local/every + 0.5, 1) - 3)*step(0.5, mod(local/every + 0.5, 1))))*pi/180)) - 0.012*h - 0.03*h*abs(sin(2*pi*mod(local/every, 1))))
sin wave on left arm · every (every/2) s · amp -28
sin wave on right arm · every (every/2) s · amp 28
sin wave on tail · every (every) s · amp 10set left arm -55, right arm 55, torso -6, head -4— the running posture: the wings swept back, the body leaning forward and the head thrust down and out.walk cycle every (every) s · arm swing 0 · no bob · roll 3 · stride (stride) · give 0 · bend 0 · seen from the side— the base run: a smaller side-to-side roll than the walk's, timed to the stride.left foot follows (…),right foot follows (…)— each foot drags back through its own stance.left leg lift follows (…),right leg lift follows (…)— each swinging foot lifts clear of the ground.dy follows (…)— the body bobs with whichever leg is down.sin wave on left arm · every (every/2) s · amp -28,sin wave on right arm · every (every/2) s · amp 28— both wings flap hard, twice a stride, far wider than the walk's own wing sway.sin wave on tail · every (every) s · amp 10— the tail swings once a stride.
Written out in full, exactly as the engine prints them:
clamp(0.34 - 0.04*speed, 0.2, 0.3)
clamp(12 + 6*speed, 16, 26)
-feet*(stride*((1 - 4*mod(local/every + 0, 1))*(1 - step(0.5, mod(local/every + 0, 1))) + (4*mod(local/every + 0, 1) - 3)*step(0.5, mod(local/every + 0, 1))))
-feet*(stride*((1 - 4*mod(local/every + 0.5, 1))*(1 - step(0.5, mod(local/every + 0.5, 1))) + (4*mod(local/every + 0.5, 1) - 3)*step(0.5, mod(local/every + 0.5, 1))))
0.025*h*max(0, -sin(2*pi*(local/every + 0)))
0.025*h*max(0, -sin(2*pi*(local/every + 0.5)))
h*leg*(1 - (1 - step(0.5, mod(local/every, 1)))*cos((stride*((1 - 4*mod(local/every + 0, 1))*(1 - step(0.5, mod(local/every + 0, 1))) + (4*mod(local/every + 0, 1) - 3)*step(0.5, mod(local/every + 0, 1))))*pi/180) - step(0.5, mod(local/every, 1))*cos((stride*((1 - 4*mod(local/every + 0.5, 1))*(1 - step(0.5, mod(local/every + 0.5, 1))) + (4*mod(local/every + 0.5, 1) - 3)*step(0.5, mod(local/every + 0.5, 1))))*pi/180)) - 0.012*h - 0.03*h*abs(sin(2*pi*mod(local/every, 1)))Try this
Raise the running speed from 1.5 to 2 body heights a second, the top of this move's fitted range. The stride and the loop quicken together, without the planted foot sliding.
In the program:
params.speed1.5→2Drag the stance foot back only three-tenths as far instead of the whole way. The run looks lighter on its feet, each stride leaving less of a trailing foot behind it.
In the program:
params.feet1→0.3
How it differs from Waddle (bird, in place) and Run (in place)
Waddle (bird, in place) is the same mechanism at a gentler pace, with a sharp head-bob this run trades for a forward thrust instead. Run (in place) is the two-bone-leg version of a sprint, built from a thigh and a shin rather than one leg bone and a foot.
Works on
| Body | Moves? | What moves |
|---|---|---|
| 2 legs (a person) | yes | whole body, turns, body, head, arms, legs |
| 4 legs (a dog) | yes | whole body, body, head, front legs, back legs, tail, ears |
| no legs (the monster with no legs) | yes | whole body, turns, body, arms, tail, ears |