| name | zigzag-run |
| description | Runs a fast evasive zigzag forward, cutting sharply left and right, via a translating sequence. Use when a command mentions zigzag run, evasive run, juking run, serpentine to avoid, or run a zig-zag. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["walk","turn-and-face","move-torso"] |
zigzag-run
A quick evasive run that cuts hard left then right while advancing, leaning into each cut.
Composes: walk + turn-and-face + move-torso
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.
- Alternate sharp
x cuts with z advancing and faceDeg tipping; lean the torso (Spine Z) into each cut.
durationMs ~2400.
Example
- "zigzag run" ->
{"durationMs":2400,"say":"Zigzag—can't catch me!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"Spine":[12,0,14]},"root":{"x":-0.6,"z":1,"faceDeg":-25}},{"t":0.5,"pose":{"Spine":[12,0,-14]},"root":{"x":0.6,"z":2,"faceDeg":25}},{"t":1,"pose":{"Spine":[0,0,0]},"root":{"x":0,"z":3,"faceDeg":0}}]}}
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.