Autonomous animation that ships as data.
Two characters moving concurrently in one shared frame, frame-accurate, dropped straight into Unreal or Unity. Every other AI tool gives you a video you can only watch.
- FBX, GLB, BVH
- Two fighters, one file
- Contacts annotated
double-leg.12624 fps · scripted previewOne file lands in the tools animators already use.
- Blender
- Unreal Engine
- Unity
- Maya
- Mixamo
- ComfyUI
Both fighters move at once
The slip happens while the jab travels. Two coupled tracks on one clock, in one shared world frame, not two clips played back to back.
Contacts are first-class data
The glove meets the chin on the frames the choreography says it does, and an IK pass re-solves it after retargeting.
Retarget without losing the hit
Mixamo, Unreal Manny, Unity Humanoid. Both fighters ship in one file on a shared origin, so the takedown still connects.
Choreography as code
Strikes by number, defenses with side, footwork, level changes. An arrow hands the beat to the other fighter; a plus makes them act together.
Write the interaction. Get the animation.
Any two-body exchange is a script: actions, reactions, and who moves when. Build one below and watch both characters resolve it. Scripted poses for illustration, not model output.
{{ parseNote }}
{{ g.label }}
- ->
- reaction, plays in the same beat as the action
- +
- both fighters act together
- ,
- next beat
Factorized reactive diffusion
David Nash (2026). 12-6: Factorized Reactive Diffusion for Notation-Conditioned Dyadic Motion Generation. Technical report, in preparation.
Task
Given a compiled notation sequence c, sample a pair of motions, N frames of a D-dimensional pose vector per fighter.
Two motion tracks, one script.
Core factorization
The two fighters are generated as a coupled pair, not as two independent motions.
Diffusion engine
The model learns to recover the clean choreography from noise. Predicting the motion itself lets us add geometric losses: joint positions via forward kinematics, velocities, and a foot-contact term that pins planted feet.
{{ denoise }}Guided sampling
A guidance dial s trades diversity for strict adherence to the notation.
{{ trails }}{{ sNote }} Synthetic curves for illustration: ten sampled lead-hand paths against the notated jab, dashed.
Contact semantics
Contacts are first-class data. The glove meets the chin on the frames the choreography says it does, and an inverse-kinematics pass re-solves those contacts after retargeting to any rig.
{{ contactViz }}Representation
Each fighter, each frame: a compact per-frame feature of root motion, joint positions and velocities, 6D rotations, and foot contacts, with both fighters in one shared, non-canonicalized world frame.
The interaction lives in the relative geometry. Canonicalize each body separately and the fight disappears, so we don't.
Data
Trained exclusively on our own multi-camera sparring corpus, captured with consenting fighters under signed releases and labeled in 12-6 notation. No non-commercial research datasets (InterHuman, Inter-X, AMASS) touch our pipeline.
Frequently asked questions
{{ q.a }}
Ready to generate the whole fight?
Early access when v0.1 lands, the notation spec when it publishes, and nothing else.