Run (in place)
The run of the nine game cycles: a forward lean, a long stride fitted to a speed setting, the knees tucked high and both feet off the floor as the legs change over, looping for as long as a game is running the character.

Use it in a cartoonOpen it in the block editorThe pack file (JSON)
What it is for
Run (in place) is the run of the nine game cycles: the gait a game plays once a character is running rather than walking. Like Walk (in place) it steps on the spot rather than travelling under its own power, while a game moves the character's own box across the screen. What a run adds over a walk is a forward lean, a long stride, the knees tucked high, the arms bent and both feet off the floor as the legs change over — the moment of flight a sprint has and a walk never does.
The principle it shows: exaggeration
Nothing in the run's mechanism is new: it is the exact same leg-angle formula the walk uses, fitted to the same speed setting. What changes is how far every number is pushed — a stride that opens past 35 degrees instead of under 30, a knee bend of 70 to 100 degrees instead of 30 to 50, no stance give at all, and a 10-degree forward lean and 7-degree head tip the walk never has. None of it is a new idea, only the walk's own numbers pushed further, which is exaggeration: taking a true motion past life-size so it reads clearly at speed.
The program, line by line
settings: speed = 1.5, h = 540, leg = 0.24, every = (clamp(0.6 - 0.15*speed, 0.28, 0.5)), stride = (57.29578*((clamp(speed*every/(4*leg), 0, 0.7)) + pow(clamp(speed*every/(4*leg), 0, 0.7), 3)/6 + 3*pow(clamp(speed*every/(4*leg), 0, 0.7), 5)/40)), give = 0, bend = (clamp(70 + 10*speed, 70, 100)), feet = 0.6
when it starts
set left forearm 60, right forearm 60, head 7, torso -10
show the side view
left leg follows (((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3)))
right leg follows (((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))
left shin follows ((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1)))))
right shin follows ((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1)))))
left arm follows (-0.95*((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3)))
right arm follows (-0.95*((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))
sin wave on rot · every (every) s · amp 1.5
left foot follows (feet*((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1)))) - ((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3))))
right foot follows (feet*((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1)))) - ((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3))))
left leg lift follows (step(0.5, mod(local/every + 0, 1))*max(0, h*leg/2*((cos((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1))))))*pi/180)) - (cos((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1))))))*pi/180)))))
right leg lift follows (step(0.5, mod(local/every + 0.5, 1))*max(0, h*leg/2*((cos((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1))))))*pi/180)) - (cos((((1 - step(0.5, mod(local/every + 1, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1)), 5)/40) + step(0.5, mod(local/every + 1, 1))*stride*(4*mod(local/every + 1, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 1, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1)), 5)/40) + step(0.5, mod(local/every + 1, 1))*stride*(4*mod(local/every + 1, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 1, 1))) + bend*step(0.5, mod(local/every + 1, 1)))*sin(pi*(2*mod(local/every + 1, 1) - step(0.5, mod(local/every + 1, 1))))))*pi/180)))))
dy follows (h*leg/2*min((2 - (1 - step(0.5, mod(local/every, 1)))*(cos((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1))))))*pi/180)) - step(0.5, mod(local/every, 1))*(cos((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1))))))*pi/180))), (2 - (1 - step(0.5, mod(local/every, 1)))*(cos((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3)))*pi/180) + cos(((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1)))))*pi/180) - 0.55*sin(((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1)))))*pi/180)) - step(0.5, mod(local/every, 1))*(cos((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))*pi/180) + cos(((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1)))))*pi/180) - 0.55*sin(((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1)))))*pi/180)))) - 0.005*h - 0.009*h*abs(sin(2*pi*mod(local/every, 1))) - 0.035*h*pow(cos(2*pi*mod(local/every, 1)), 2))
sin wave on tail · every (every) s · amp 12 · phase 1.6set left forearm 60, right forearm 60, head 7, torso -10— the arms bend up and the body leans forward 10 degrees and the head tips up, the running posture.show the side view— the move is drawn in profile.left leg follows (…),right leg follows (…)— each thigh swings through a wide stride, eased back during its own stance half and swung straight forward during its swing half, the two legs offset by half the loop.left shin follows (…),right shin follows (…)— each knee tucks up to 70-100 degrees as its leg swings through, far more than the walk's, so the foot clears high above the ground.left arm follows (…),right arm follows (…)— both arms counter-swing their matching legs, at nineteen-twentieths the angle, a hard pump.sin wave on rot · every (every) s · amp 1.5— the body rolls 1.5 degrees, once a stride.left foot follows (…),right foot follows (…)— each stance foot turns six-tenths of the way toward flat.left leg lift follows (…),right leg lift follows (…)— the swinging leg's foot is lifted clear of the ground by the same geometry that plants the stance foot.dy follows (…)— the body follows whichever leg is lower, with an extra dip worked in at the point the legs cross: the moment both feet leave the ground together.sin wave on tail · every (every) s · amp 12— the tail swings once a stride, more than the walk's.
Written out in full, exactly as the engine prints them:
clamp(0.6 - 0.15*speed, 0.28, 0.5)
57.29578*((clamp(speed*every/(4*leg), 0, 0.7)) + pow(clamp(speed*every/(4*leg), 0, 0.7), 3)/6 + 3*pow(clamp(speed*every/(4*leg), 0, 0.7), 5)/40)
clamp(70 + 10*speed, 70, 100)
((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3))
((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3))
(give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1))))
(give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1))))
-0.95*((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3))
-0.95*((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3))
feet*((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1)))) - ((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3)))
feet*((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1)))) - ((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))
step(0.5, mod(local/every + 0, 1))*max(0, h*leg/2*((cos((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1))))))*pi/180)) - (cos((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1))))))*pi/180))))
step(0.5, mod(local/every + 0.5, 1))*max(0, h*leg/2*((cos((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1))))))*pi/180)) - (cos((((1 - step(0.5, mod(local/every + 1, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1)), 5)/40) + step(0.5, mod(local/every + 1, 1))*stride*(4*mod(local/every + 1, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 1, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 1, 1)), 5)/40) + step(0.5, mod(local/every + 1, 1))*stride*(4*mod(local/every + 1, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 1, 1))) + bend*step(0.5, mod(local/every + 1, 1)))*sin(pi*(2*mod(local/every + 1, 1) - step(0.5, mod(local/every + 1, 1))))))*pi/180))))
h*leg/2*min((2 - (1 - step(0.5, mod(local/every, 1)))*(cos((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1))))))*pi/180)) - step(0.5, mod(local/every, 1))*(cos((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))*pi/180) + cos(((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3))) - ((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1))))))*pi/180))), (2 - (1 - step(0.5, mod(local/every, 1)))*(cos((((1 - step(0.5, mod(local/every + 0, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0, 1)), 5)/40) + step(0.5, mod(local/every + 0, 1))*stride*(4*mod(local/every + 0, 1) - 3)))*pi/180) + cos(((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1)))))*pi/180) - 0.55*sin(((give*(1 - step(0.5, mod(local/every + 0, 1))) + bend*step(0.5, mod(local/every + 0, 1)))*sin(pi*(2*mod(local/every + 0, 1) - step(0.5, mod(local/every + 0, 1)))))*pi/180)) - step(0.5, mod(local/every, 1))*(cos((((1 - step(0.5, mod(local/every + 0.5, 1)))*57.29578*((sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1))) + pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 3)/6 + 3*pow(sin(stride*pi/180)*(1 - 4*mod(local/every + 0.5, 1)), 5)/40) + step(0.5, mod(local/every + 0.5, 1))*stride*(4*mod(local/every + 0.5, 1) - 3)))*pi/180) + cos(((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1)))))*pi/180) - 0.55*sin(((give*(1 - step(0.5, mod(local/every + 0.5, 1))) + bend*step(0.5, mod(local/every + 0.5, 1)))*sin(pi*(2*mod(local/every + 0.5, 1) - step(0.5, mod(local/every + 0.5, 1)))))*pi/180)))) - 0.005*h - 0.009*h*abs(sin(2*pi*mod(local/every, 1))) - 0.035*h*pow(cos(2*pi*mod(local/every, 1)), 2)Try this
Raise the running speed from 1.5 to 2.4 body heights a second. Both the stride and the loop quicken together, the fastest this run is fitted to go before the formula that keeps the foot from sliding is pushed past its working range.
In the program:
params.speed1.5→2.4Turn the stance foot only a fifth of the way flat instead of six-tenths. Less of the shin's own angle is straightened out, so the stance foot stays tipped up on its toe rather than planting flush, a lighter, more sprinting-on-the-toes look.
In the program:
params.feet0.6→0.2
How it differs from Walk (in place) and Run in
Walk (in place) is the same mechanism with a shorter stride, a gentler knee bend and a stance give the run drops entirely. Run in is a one-shot entrance that hops a character across the scene from off to one side and never stops bouncing; Run (in place) steps on the spot and loops for as long as a game runs it.
Works on
| Body | Moves? | What moves |
|---|---|---|
| 2 legs (a person) | yes | whole body, turns, body, 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 |