| name | moon-hop |
| description | Bounds forward in big, slow, floaty low-gravity moon hops with long hang time, via a translating sequence with high root.y arcs. Use when a command mentions moon hop, low gravity hops, astronaut bounce, floaty jumps, moon bounce, or bound like on the moon. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["bend-knees","move-leg","balance-and-posture"] |
moon-hop
Big, slow, floaty two-foot bounds with lots of hang time and arms drifting out — like low gravity.
Composes: bend-knees + move-leg + 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.
- Each hop: gentle push, long high float (
root.y~0.5, toes pointed, arms out), soft land; advance z a lot per hop.
- Slow
durationMs (~2600) for the floaty feel.
Example
- "do moon hops" ->
{"durationMs":2600,"say":"Boing... so floaty!","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.12,"z":0}},{"t":0.4,"pose":{"LeftUpLeg":[20,0,0],"RightUpLeg":[20,0,0],"LeftFoot":[55,0,0],"RightFoot":[55,0,0],"LeftUpperArm":[0,0,40],"RightUpperArm":[0,0,-40]},"root":{"y":0.5,"z":1.2}},{"t":0.6,"pose":{"LeftUpLeg":[0,0,180],"RightUpLeg":[0,0,180],"LeftLeg":[0,0,0],"RightLeg":[0,0,0],"LeftFoot":[90,0,0],"RightFoot":[90,0,0]},"root":{"y":0,"z":1.6}},{"t":0.8,"pose":{"LeftUpLeg":[20,0,0],"RightUpLeg":[20,0,0],"LeftFoot":[55,0,0],"RightFoot":[55,0,0]},"root":{"y":0.5,"z":2.8}},{"t":1,"pose":{"LeftUpLeg":[0,0,180],"RightUpLeg":[0,0,180],"LeftFoot":[90,0,0],"RightFoot":[90,0,0],"LeftUpperArm":[0,0,90],"RightUpperArm":[0,0,-90]},"root":{"y":0,"z":3.2}}]}}
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.