| name | cartwheel |
| description | Performs a stylized sideways cartwheel via a sequence that throws the arms up, splits the legs, arcs root.y, sweeps root.faceDeg, and translates sideways. Use when a command mentions cartwheel, do a cartwheel, sideways flip, or wheel over sideways with your hands. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["move-arm","move-leg","move-torso"] |
cartwheel
A sideways hand-over-hand wheel. Stylized: arms thrown overhead, legs split wide, a root.y arc with a sideways root.x translation and a quarter/half root.faceDeg sweep.
How
- Use a
sequence with loop:false (frame root is ABSOLUTE — x grows sideways; the side is faceDeg+90 for a rightward wheel, here +X).
- Beats: arms up and lean to the side (
LeftUpperArm:[0,0,-90],RightUpperArm:[0,0,90], Spine:[0,0,-20]), airborne with legs split (LeftUpLeg:[0,0,150],RightUpLeg:[0,0,-150], root.y:0.4, x advancing, faceDeg:90), land with everything back to rest (root.y:0, faceDeg:180).
durationMs ~1400–1700.
Example
- "do a cartwheel" (at x:0,z:0,faceDeg:0) ->
{"durationMs":1500,"say":"Cartwheel!","sequence":{"loop":false,"frames":[{"t":0,"pose":{"LeftUpperArm":[0,0,-90],"RightUpperArm":[0,0,90],"Spine":[0,0,-20]},"root":{"y":0,"x":0,"faceDeg":0}},{"t":0.5,"pose":{"LeftUpLeg":[0,0,150],"RightUpLeg":[0,0,-150]},"root":{"y":0.4,"x":0.8,"faceDeg":90}},{"t":1,"pose":{"LeftUpperArm":[0,0,90],"RightUpperArm":[0,0,-90],"LeftUpLeg":[0,0,180],"RightUpLeg":[0,0,180],"Spine":[0,0,0]},"root":{"y":0,"x":1.6,"faceDeg":180}}]}}