Agent body language

Choreographer

One gesture is a beat. A routine is a performance: wave, then think, then present the thing you just made. Build one on the timeline, watch the whole thing on a live avatar, then save it to your agent and play it by name from any embed.

Start from a routine

Five performances built from the shipped slot vocabulary. Load one, then change anything: they are starting points, not templates you have to keep.

Your routine

Each row is one beat. Drag to reorder, set how long it holds, and point any step at a different clip. The stage follows every edit.

0 steps · 0.0s · id routine

    No steps yet

    Pick a gesture below to add the first beat, or load one of the routines above.

    Add a gesture

    The fixed slot vocabulary. A step names a slot, so a routine shared with another agent still plays that agent's own take on each gesture.

    Ship it

    Save the routine to an agent you own and it travels with that agent: the public manifest carries it, and any embed can play it by name.

    Play it from your own site

    The routine below is live: paste it into any page that already renders an <agent-3d> embed.

    Read the reference
    Show the JSON

    Exactly what gets stored at meta.choreographies, and exactly what PUT /api/agents/:id/animations accepts.

    A routine is a list of slots and holds, not a list of animation files: the same routine looks different on an agent that has remapped its own gestures on the vocabulary page, which is the point. The wire format, the storage shape and the playback API are documented in docs/choreography.