| name | circle-around-object |
| description | Walks a full circle around a target object while facing it the whole time, via a sequence of root waypoints with an inward facing. Use when a command mentions circle around it, walk around the object, orbit it, or circle the thing facing it. |
| category | locomotion |
| disable-model-invocation | true |
| subskills | ["walk","turn-and-face"] |
circle-around-object
Orbit a central object, keeping faceDeg pointed inward toward it the whole lap.
Composes: walk + turn-and-face
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.
- Place
root waypoints around the object; set each faceDeg to point toward the center.
durationMs ~5000.
Example
- "circle around it" ->
{"durationMs":5000,"say":"Circling around it.","sequence":{"loop":false,"frames":[{"t":0,"root":{"x":1.5,"z":0,"faceDeg":-90}},{"t":0.25,"root":{"x":0,"z":1.5,"faceDeg":180}},{"t":0.5,"root":{"x":-1.5,"z":0,"faceDeg":90}},{"t":0.75,"root":{"x":0,"z":-1.5,"faceDeg":0}},{"t":1,"root":{"x":1.5,"z":0,"faceDeg":-90}}]}}
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.