| name | move-leg |
| description | Poses one or both legs by flexing/extending the hip, knee, and ankle and abducting the leg sideways — for kicking, lifting a knee, kneeling, squatting/crouching, stepping, stomping, pointing or spreading a leg. Use whenever a command mentions legs, knee(s), thigh, hip (as a joint), kick, squat, crouch, kneel, lunge, stomp, step, or balancing on one leg. (For going to a place use `walk`; for sitting on a seat use `sit-and-stand`.) |
| category | lower-body |
| disable-model-invocation | true |
move-leg
Atomic primitive for the leg chain per side: {Side}UpLeg (hip),
{Side}Leg (knee), {Side}Foot (ankle), {Side}Toe. Side ∈ Left, Right.
Angles are ABSOLUTE local euler [x,y,z] deg, XYZ. A leg joint's local +Y
points down the bone toward the foot, so leg axes are NOT world-aligned — use
the calibrated numbers below.
Rest (standing, legs straight down)
*UpLeg:[0,0,180], *Leg:[0,0,0], *Foot:[90,0,0], *Toe:[0,0,0].
Ground truth: sit (hip & knee both flexed ~90°)
LeftUpLeg:[90,0,0], LeftLeg:[90,0,0], RightUpLeg:[90,0,0], RightLeg:[90,0,0]
→ thigh swings FORWARD to horizontal (UpLeg:[90,0,0]), shin hangs DOWN
(Leg:[90,0,0]). This pose is the reference for any flexed hip+knee. Use it with
a root drop to actually sit on a seat (see sit-and-stand).
Joint roles
- Hip flexion (swing thigh forward / lift knee):
UpLeg X toward 90
(thigh forward, horizontal). Smaller = thigh still angled down; larger (~120)
= thigh above horizontal (high knee). Combine with knee bend.
- Knee:
Leg X. 0 = straight; ~90 = bent (paired with a forward thigh as
in sit). Knees flex one way only — keep Leg X in 0..150, never negative.
- Ankle:
Foot rest [90,0,0] (sole flat, foot forward). Toes DOWN / point /
tiptoe: X below 90 (e.g. [60,0,0]). Toes UP / dorsiflex: X above 90
(e.g. [120,0,0]).
- Abduction (spread leg out to the side):
UpLeg Z away from rest. LEFT leg:
Z from 180 toward 90 (e.g. [0,0,135] = 45° out to the left). RIGHT leg:
Z from -180/180 toward -90 (e.g. [0,0,-135] = 45° out to the right).
Recipes (substitute the Side)
- Lift / raise one knee (stand on the other leg): that side
UpLeg:[90,0,0], Leg:[90,0,0] (thigh horizontal, shin down). Keep the support
leg at rest; see balance-and-posture for the weight shift.
- Kick forward: quick
sequence — wind up (knee bent, UpLeg:[45,0,0], Leg:[90,0,0]) then snap out (UpLeg:[90,0,0], Leg:[0,0,0]).
- Squat / crouch / bend your knees: BOTH legs partially flexed +
drop the body. e.g.
pose:{LeftUpLeg:[55,0,0],LeftLeg:[70,0,0],RightUpLeg:[55,0,0],RightLeg:[70,0,0]},
root:{y:-0.30}. Deeper crouch → larger angles and root.y ~ -0.45.
- Kneel: one leg deeply flexed under, the other knee forward; drop
root.y
~ -0.35.
- Stomp: short
sequence lifting one foot (knee raise) then planting it
(back to rest) — keep loop small (1–2).
Worked Actions
- "lift your right knee" →
{"durationMs":700,"pose":{"RightUpLeg":[90,0,0],"RightLeg":[90,0,0]},"say":"Knee up."}
- "do a squat" →
{"durationMs":900,"pose":{"LeftUpLeg":[55,0,0],"LeftLeg":[70,0,0],"RightUpLeg":[55,0,0],"RightLeg":[70,0,0]},"root":{"y":-0.3},"say":"Squatting."}
- "point your left foot" →
{"durationMs":600,"pose":{"LeftFoot":[60,0,0]}}
Limits & posture
Keep at least one foot grounded unless explicitly jumping. Hips ~-30..120
flexion, knees 0..150 (no hyperextension), ankles ~60..120. For two-leg moves
(squat/crouch) stay symmetric and lower root.y so the feet appear planted (see
balance-and-posture). Emit only the joints you change.