| name | crawl-up-stairs |
| description | Climbs the stairs on hands and knees, via a low sequence that raises root.y. Use when a command mentions crawl up the stairs, climb the steps on hands and knees, scramble up the staircase, or go up the stairs on all fours. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["move-arm","move-leg","move-torso"] |
crawl-up-stairs
A hands-and-knees stair climb: reach a hand up to the next step as the opposite knee drives up, body rising.
Composes: move-arm + move-leg + 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.
- Torso forward (
Spine+X~55); alternate reaching a hand up and driving the opposite knee onto the next step; raise root.y each beat.
durationMs ~2800.
Example
- "crawl up the stairs" ->
{"durationMs":2800,"say":"Crawling up the steps.","sequence":{"loop":false,"frames":[{"t":0,"pose":{"Spine":[55,0,0],"LeftUpperArm":[130,0,90],"RightUpLeg":[80,0,0],"RightLeg":[90,0,0]},"root":{"y":0,"z":0}},{"t":0.5,"pose":{"RightUpperArm":[130,0,-90],"LeftUpLeg":[80,0,0],"LeftLeg":[90,0,0]},"root":{"y":0.2,"z":0.3}},{"t":1,"pose":{"Spine":[0,0,0],"LeftUpperArm":[0,0,90],"RightUpperArm":[0,0,-90],"LeftUpLeg":[0,0,180],"RightUpLeg":[0,0,180],"LeftLeg":[0,0,0],"RightLeg":[0,0,0]},"root":{"y":0.4,"z":0.6}}]}}
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.