| name | lunge-walk |
| description | Travels forward with deep alternating walking lunges via a sequence that translates the body and dips it down on each lunge. Use when a command mentions walking lunges, lunge walk, lunge forward, do lunges across the room, or step into deep lunges. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["walk","move-leg","bend-knees"] |
lunge-walk
Big alternating lunges that travel forward — front knee deeply bent, back leg long, body dipping with each step. Uses a translating sequence (the dip needs root.y).
How
- Use a
sequence with loop:false (ABSOLUTE root — increase z each lunge; compute forward from state.position+state.faceDeg, here origin facing +Z).
- Each lunge: front leg hip+knee flexed (
UpLeg:[50,0,0],Leg:[80,0,0]), back leg extended with a slightly bent knee (UpLeg:[0,0,180],Leg:[20,0,0]), and root.y dips ~-0.2. Alternate which leg leads, then stand tall at the end (root.y:0).
durationMs ~2800–3400.
Example
- "do walking lunges" (at x:0,z:0,faceDeg:0) ->
{"durationMs":3000,"say":"Lunge... and lunge.","sequence":{"loop":false,"frames":[{"t":0,"pose":{"LeftUpLeg":[50,0,0],"LeftLeg":[80,0,0],"RightUpLeg":[0,0,180],"RightLeg":[20,0,0]},"root":{"y":-0.2,"z":0.5}},{"t":0.5,"pose":{"RightUpLeg":[50,0,0],"RightLeg":[80,0,0],"LeftUpLeg":[0,0,180],"LeftLeg":[20,0,0]},"root":{"y":-0.2,"z":1.2}},{"t":1,"pose":{"LeftUpLeg":[0,0,180],"LeftLeg":[0,0,0],"RightUpLeg":[0,0,180],"RightLeg":[0,0,0]},"root":{"y":0,"z":1.8}}]}}