
Swing Choreo is our new model for generating human motion. You describe a performance the way you would describe it to an actor, one beat after another, and Choreo performs all of it: each action in order, the hands and the face, every person in the scene, moving where you asked them to go.
It is the most capable model we have ever produced. In blind comparisons, professional animators preferred its output to our previous generation 88% of the time.
What it does
Whole sequences from one prompt
Most text-to-motion models learn from short clips paired with short captions. Ask for three things and you tend to get one of them, or an average of all three. Choreo reads the prompt as a sequence and performs it in order, with transitions that carry weight and timing from one action into the next.

Hands and faces
The body is only part of a performance. Choreo generates finger articulation and facial motion alongside the body, so a prompt can ask for a hand shape, a gesture, or a laugh and get it.

More than one person
Choreo generates several characters at once, each with their own action, aware of each other. They face each other when they talk, react when someone moves, and stay in time when they dance together.

Direction in space
You can tell characters where to go, in the world or relative to the camera. Left means camera left.

How it compares
We evaluate models the way they are used. Professional animators see two clips generated from the same prompt, without knowing which model made which, and pick the one they would rather use. Against Swing Sketch, our previous generation, Choreo wins 88% of those comparisons.
- Overall88%
- Multi-action sequences92%
- Hands and fingers94%
- Multiple people100%
- Spatial direction86%
- Single-action prompts71%
The gap is largest where the prompt asks for the most: several actions, several people, or detailed hands. On simple, single-action prompts the two models are closer, which is what you would expect. Sketch was built for exactly that case and still performs better for fantastical motions.
Here is what that looks like across the capabilities that matter most in production.
| Capability | Swing Choreo | Swing Sketch | Open research models | Commercial tools |
|---|---|---|---|---|
| Multi-action sequencesSeveral actions, performed in order, from one prompt | Supported | Limited | Limited | Limited |
| Finger articulationHand shapes and gestures from the prompt | Supported | Limited | Not supported | Limited |
| Facial motionExpression generated with the body | Supported | Not supported | Not supported | Not supported |
| Multiple interacting peopleSeparate actions, aware of each other | Supported | Not supported | Not supported | Not supported |
| World and camera direction“Walk toward camera”, “run to the left” | Supported | Limited | Not supported | Limited |
| Adherence on long promptsFollows compound, multi-clause descriptions | Supported | Supported | Not supported | Limited |
| Motion varietyDistinct, usable takes for the same prompt | Supported | Supported | Limited | Limited |
| Results in secondsFor fast blocking and iteration | Not supported | Supported | Supported | Supported |
More compute, better motion
Choreo is slower than Sketch. A generation takes a few minutes instead of a few seconds, and that time is spent on quality. The same model can be run at higher or lower quality, which traces out a curve: more compute buys better motion, with diminishing returns past the default setting.
Most of Choreo's gains came from data selection and post-training. Two things usually trade off in motion generation: following the prompt closely, and producing motion that looks physically right. Push a model toward one and the other tends to slip. Each stage of post-training moved Choreo up on both at once.
The model factory
Choreo and all our motion systems are not a single research bet. They come out of a system we have spent the last year building: a loop that runs from capturing motion, through training and evaluation, back to capturing more. Each pass through the loop produces a better model and tells us exactly what to capture next.
Data
Every capability in Choreo starts as data. Hands need finger-level capture. Faces need facial capture recorded in sync with the body. Multi-person scenes need several performers captured together, in the same space, reacting to each other. None of that exists in public datasets at useful scale, so we built (and are building!) the pipeline to produce it.
Raw capture is only half the work. Each recording is segmented into individual actions and described in time-aligned language, so the model can learn what “then” means. Positions are annotated relative to the world and to the camera, which is where spatial direction comes from. The result is the largest structured human motion dataset we know of: tens of thousands of hours from hundreds upon hundreds of performers.
Training
In August we published scaling laws for human motion. That work is now how we plan our big runs and allocate resources. Before committing to a large run, we fit small runs, predict where the large one will land, and size the model and data to match. These predictions helped inform Choreo.
The same infrastructure lets us run many experiments in parallel and reproduce any of them later. Over Choreo's development we ran thousands of training experiments. Most were small. A few mattered a great deal, we had a few YOLO runs in there too.
Post-training
Post-training is where Choreo became Choreo. We worked to build it around the people who will use it.
The pairwise comparisons we use for evaluation double as training signal. Animators judge pairs of generations, those judgments become preference data, and the model is tuned toward what they choose. Then we evaluate again. Over the course of Choreo's post-training, animators made many of these comparisons (and our physics models helped too).
Evaluation also tells us where the model fails, and those failures go back to the capture stage. If the model struggles with two people passing an object between them, we fix Comic (our capture model) by augmenting training data and identifying long-tail weaknesses and then we can improve the training data for our generation systems. The loop closes when we put eyes on data and really infuse physics into the kinematics of Choreo, this is something you can't really do by scraping more data.
Evaluation
Every candidate model runs through the same rigorous (but hopefully fast) evaluation process. We have automatic checks for physical errors like foot sliding, ground penetration, and broken contact, then blind review by animators. We have faithfulness, embedding, and many other proxy rewards that help improve overall motion fidelity.
Measuring motion
Human motion generation does not yet have a good public benchmark. The standard ones measure short, single-action clips, mostly through statistics that correlate poorly with what an animator would accept. They cannot tell you whether a model followed a four-part prompt, got the fingers right, or kept two people from walking through each other.
We have been building one that can (paper and open source release coming soon!). It covers sequences, hands, faces, multiple people, and spatial direction, and it scores physical plausibility alongside adherence. We will publish it, with the data and evaluation code, in the coming weeks.
Early results are lopsided. On the preliminary version, Choreo scores 61 out of 100. The best system we have tested from anyone else scores 38.
- Swing Choreo61
- System A38
- System B22.5
- System C3.2
- System D2.4
Choreo and Sketch
Choreo is the model to use when the performance matters: final animation, complex scenes, hands and faces, several characters at once. When you need blocking in seconds, Swing Sketch is still there and still fast. Most people will use both.
Swing Choreo is available today in Performance Generator.