| name | lunge-with-twist |
| description | Performs walking lunges with a torso twist over the front leg each rep, via a translating sequence. Use when a command mentions lunge with a twist, walking lunge twist, rotational lunge, or lunge and rotate. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["move-leg","move-torso","balance-and-posture"] |
lunge-with-twist
Forward walking lunges, each one adding a torso rotation over the leading thigh. Travels forward.
Composes: move-leg + move-torso + balance-and-posture
How
- Use a
sequence with loop:false. Frame root is ABSOLUTE; compute the travel axis from state.position+state.faceDeg (0=+Z, 90=+X). The example assumes origin facing +Z.
- Front leg lunges (
UpLeg~55,Leg80), rear leg back on the toe; twist Spine Y toward the front leg; sink root.y-0.25.
durationMs ~2800.
Example
- "lunge with a twist" ->
{"durationMs":2800,"say":"Lunge and twist.","sequence":{"loop":false,"frames":[{"t":0,"pose":{"RightUpLeg":[55,0,0],"RightLeg":[80,0,0],"LeftUpLeg":[-25,0,0],"LeftLeg":[60,0,0],"LeftFoot":[60,0,0],"Spine":[5,30,0]},"root":{"z":0.6,"y":-0.25}},{"t":0.5,"pose":{"RightUpLeg":[0,0,180],"RightLeg":[0,0,0],"LeftUpLeg":[0,0,180],"LeftLeg":[0,0,0],"LeftFoot":[90,0,0],"Spine":[0,0,0]},"root":{"z":1,"y":0}},{"t":1,"pose":{"LeftUpLeg":[55,0,0],"LeftLeg":[80,0,0],"RightUpLeg":[-25,0,0],"RightLeg":[60,0,0],"RightFoot":[60,0,0],"Spine":[5,-30,0]},"root":{"z":1.6,"y":-0.25}}]}}
Limits & posture
Keep ≥1 foot grounded except at a jump's airborne apex; stay inside human joint ranges and keep weight over the support — see balance-and-posture.