UniMate
Given a rigged 3D asset and a text prompt, UniMate generates animations for characters with diverse skeletal topologies within a single unified model.
Interactive Examples.
Drag to orbit Scroll to zoom
Open full screenAbstract.
Experiments.
Diverse skeletons, diverse prompts. A single unified model generates prompt-faithful, temporally coherent motion across heterogeneous rigs, adapting to each skeleton's structure.
One prompt, diverse skeletons. A source behavior is abstracted into a text prompt; the same prompt then animates rigs of differing topology, conditioned directly on each target skeleton.
One skeleton, diverse prompts. Given a single skeleton, UniMate synthesizes distinct, prompt-faithful motions for different input text prompts, reflecting the controllability of the model.
One skeleton, one prompt, diverse motions. Given the same skeleton and text prompt, UniMate generates diverse yet prompt-consistent motion samples, reflecting its generative diversity.
Applications.
Motion editing. Given a source motion (left), a subset of joints stays fixed while the rest are resampled under a new prompt (right): here the head keeps its turn while the body walks forward.
Motion in-betweening. Given the start and end poses and a text prompt, UniMate synthesizes smooth, plausible in-betweens, holding the boundary poses fixed while the prompt sets the transition's style.
Motion expansion. Given sequential text prompts, UniMate extends a motion segment by segment, each new segment continuing from the boundary frames of the last with a smooth transition.
Dataset.
Samples from UniML3D, spanning bipedal, quadrupedal, avian, marine, insectoid, serpentine, and articulated rigid objects, with detailed skeleton annotations and coherent text prompts paired with motion sequences.
| filter(raw clip) → kept clip | ||
|---|---|---|
| 1 | prune to a single tree | − every tree but the primary one, by cumulative skinning weight |
| 2 | realign the root by forward kinematics | → a spurious root carried onto the semantic root |
| 3 | remove phantom joints | − IK controllers and helper bones with zero skinning weight |
| 4 | drop static clips | − sequences with negligible bone-length-normalized displacement |
| 5 | reject implausible clips | − outlier root velocity, or jitter past an anatomical threshold |
| annotate(kept clip) → captioned clip | ||
| 6 | standardize joint names | → one anatomical vocabulary, mapped by an LLM |
| 7 | select the lateral joint pair | + a symmetric pair for facing (thighs, front shoulders), by an LLM |
| 8 | resample and render | → 30 FPS, four synchronized views, the rest pose rendered alongside |
| 9 | caption with a multimodal LLM | + one text prompt per clip; “in place” marks a stationary root |
| 10 | review every pair by hand | − captions that misidentify the dominant action or the moving part |
| canonicalize(captioned clip) → training sample | ||
| 11 | serialize the tree breadth-first | → one joint ordering per skeleton |
| 12 | scale by topology diameter | → comparable extent across rigs |
| 13 | place in a canonical frame | → y-axis up, the initial root at the origin |
| 14 | align the initial facing direction | → +z, from the left-to-right axis of that symmetric pair |
| 15 | express rotations against the rest pose | → one kinematic basis across topologies |
| 16 | normalize by feature statistics | → global on the root, local on the rest |
Poster.
The SIGGRAPH Asia 2026 poster. Click to open it full size, or as a PDF.
@article{mou2026unimate,
title = {UniMate: One Unified Model to Animate Diverse Skeletons},
author = {Mou, Linzhan and Lei, Jiahui and Dou, Zhiyang and Cai, Chenyue and
Song, Chaoyue and Finkelstein, Adam and Rusinkiewicz, Szymon},
journal = {arXiv preprint arXiv:2609.05415},
year = {2026}
}