| name | cat-leap |
| description | Performs a parkour cat leap, jumping up to a wall/ledge with the arms reaching to grab and the knees tucking against the wall, via a sequence with a root.y arc. Use when a command mentions cat leap, cat jump, jump to a ledge and grab, or wall catch. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["move-arm","move-leg","bend-knees"] |
cat-leap
Spring up toward a ledge, arms reaching overhead to catch, knees tucking to plant on the wall.
Composes: move-arm + move-leg + bend-knees
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.
- Beats: load, apex reaching up (arms overhead, knees tucked high,
root.y~0.5), settle back down.
durationMs ~1200.
Example
- "do a cat leap" ->
{"durationMs":1200,"say":"Cat leap!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"LeftUpLeg":[45,0,0],"LeftLeg":[70,0,0],"RightUpLeg":[45,0,0],"RightLeg":[70,0,0]},"root":{"y":-0.2,"z":0.2}},{"t":0.5,"pose":{"LeftUpperArm":[0,0,-90],"RightUpperArm":[0,0,90],"LeftUpLeg":[80,0,0],"LeftLeg":[90,0,0],"RightUpLeg":[80,0,0],"RightLeg":[90,0,0]},"root":{"y":0.5,"z":0.7}},{"t":1,"pose":{"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,"z":0.9}}]}}
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.