| name | speed-skate |
| description | Glides forward like a speed-skater with long low side-to-side leg pushes via a translating sequence. Use when a command mentions speed skate, skating stride, glide like a skater, or push and glide forward. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["move-leg","move-torso","balance-and-posture"] |
speed-skate
A deep low crouch with long alternating lateral leg pushes that carry the body forward, arms swinging across.
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.
- Stay low (
Spine+X~22); each push extends one leg out to the side (UpLeg abduct) while the other bends; arms swing across.
durationMs ~2600.
Example
- "speed skate forward" ->
{"durationMs":2600,"say":"Long, smooth strides.","sequence":{"loop":false,"frames":[{"t":0,"pose":{"Spine":[22,0,0],"LeftUpLeg":[40,0,150],"RightLeg":[40,0,0],"LeftUpperArm":[0,0,40]},"root":{"z":0.7}},{"t":0.5,"pose":{"Spine":[22,0,0],"RightUpLeg":[40,0,-150],"LeftLeg":[40,0,0],"RightUpperArm":[0,0,-40]},"root":{"z":1.5}},{"t":1,"pose":{"LeftUpLeg":[0,0,180],"RightUpLeg":[0,0,180],"LeftLeg":[0,0,0],"RightLeg":[0,0,0],"Spine":[0,0,0]},"root":{"z":2.3}}]}}
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.