Hop-walk (in place)
The walk of the game cycles for the short-legged upright animal: each step is a small hop, the tail swinging to balance, the stride 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
Hop-walk (in place) is the walk of the nine game cycles, written for the hop set: an upright body whose legs are too short to stride, such as the game's own Pip. Rather than a smooth stride like Walk (in place), each step is a small hop, with the tail swinging out behind to keep balance. The hop set has no idle, jump, fall, hurt, win, climb or swim of its own; only the walk and the run, and sit, are written specially for short legs, since those are the only cycles where leg length changes the motion enough to need it.
The principle it shows: arcs
The same cosine geometry that keeps a long-legged walk's foot from sliding keeps this one planted too, worked out from the exact same formula with a much shorter leg value. Because a short leg's own arc is tighter, the body bobs more per step relative to its height than the long-legged walk does, which is exactly what makes a hop-walk read as hopping rather than striding, without the program needing a single different idea.
The program, line by line
settings: speed = 1, h = 540, leg = 0.09, every = (clamp(0.62 - 0.12*speed, 0.36, 0.56)), stride = (clamp(24 + 12*speed, 26, 46)), give = 4, bend = 50, feet = 0.6
when it starts
set left forearm 30, right forearm 30, torso -3
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.6*((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.6*((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 2.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.04*h*pow(cos(2*pi*mod(local/every, 1)), 2))
sin wave on tail · every (every) s · amp 14 · phase 3.141592653589793
sin wave on head · every (every/2) s · amp 2 · phase 0.6
sin wave on ears · every (every/2) s · amp 6 · phase 1.2set left forearm 30, right forearm 30, torso -3— a starting bend to the forearms and a small forward lean.show the side view— the move is drawn in profile.left leg follows (…),right leg follows (…)— each thigh swings through the stride, eased back during its own stance half and swung forward during its swing half, the two legs offset by half the loop.left shin follows (…),right shin follows (…)— each knee gives a little while its leg carries the weight, then bends further while that leg swings through, enough to lift the foot clear.left arm follows (…),right arm follows (…)— both arms counter-swing their matching legs, at six-tenths the angle.sin wave on rot · every (every) s · amp 2.5— the body rolls 2.5 degrees, once a step, more than the long-legged walk's single degree.left foot follows (…),right foot follows (…)— each foot turns toward flat while its leg is in stance.left leg lift follows (…),right leg lift follows (…)— the swinging foot is lifted by the same geometry that keeps the stance foot down.dy follows (…)— the body sits at whichever leg's height is lower, dipping more at the middle of each step: the hop itself.sin wave on tail · every (every) s · amp 14 · phase 3.14— the tail swings hard, once a step, to balance the hop.sin wave on head · every (every/2) s · amp 2 · phase 0.6— the head bobs twice a step.sin wave on ears · every (every/2) s · amp 6 · phase 1.2— the ears flop twice a step too.
Written out in full, exactly as the engine prints them:
clamp(0.62 - 0.12*speed, 0.36, 0.56)
clamp(24 + 12*speed, 26, 46)
((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.6*((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.6*((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.04*h*pow(cos(2*pi*mod(local/every, 1)), 2)Try this
Raise the hop-walking speed from 1 to 2 body heights a second, the top of the range this move is fitted for. The hops quicken and widen together without the planted foot sliding.
In the program:
params.speed1→2Turn the stance foot all the way flat instead of six-tenths of the way. The foot plants flush with the ground through the whole stance instead of staying tipped up.
In the program:
params.feet0.6→1
How it differs from Walk (in place) and Hop-run (in place)
Walk (in place) is the same mechanism for ordinary-length legs, a stride rather than a hop. Hop-run (in place) is this same short-legged mechanism pushed to a faster, wider hop.
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 |