| name | circle-strafe |
| description | Strafes in a circle around a point while continuously turning to keep facing it, via a sequence that blends sideways travel with a faceDeg sweep. Use when a command mentions circle strafe, orbit around facing it, sidestep in a circle, or keep facing while circling. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["walk","turn-and-face","balance-and-posture"] |
circle-strafe
Travel sideways along an arc while slowly turning faceDeg so the body keeps facing the center.
Composes: walk + turn-and-face + 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.
- Blend lateral
x + forward z along an arc while faceDeg increases to stay pointed at the center.
durationMs ~2600.
Example
- "circle strafe around it" ->
{"durationMs":2600,"say":"Circling.","sequence":{"loop":false,"frames":[{"t":0,"pose":{"Spine":[6,0,0]},"root":{"x":0.6,"z":0.2,"faceDeg":20}},{"t":0.5,"pose":{"Spine":[6,0,0]},"root":{"x":1,"z":0.8,"faceDeg":45}},{"t":1,"pose":{"Spine":[0,0,0]},"root":{"x":1.2,"z":1.6,"faceDeg":70}}]}}
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.