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
View largerAbstract.
Experiments.
Diverse skeletons, diverse prompts. One model, no per-skeleton retraining: animals, plants, humanoids, robots, and everyday rigged objects, each animated from the prompt shown above its panel. The three studies below hold one factor fixed at a time.
One prompt, diverse skeletons. Given a single text prompt, UniMate generates plausible motions across heterogeneous skeletons.
One skeleton, diverse prompts. Given a single skeleton, UniMate synthesizes diverse motions that follow different input text prompts.
One skeleton, one prompt, diverse motions. Given the same skeleton and text prompt, UniMate generates diverse plausible motion samples.
Applications.
Motion editing. Given a standing quadruped that shakes its head, we preserve the head motion and regenerate its body and legs to follow the prompt “walks forward.”
Motion in-betweening. Given the start and end poses and a text prompt, UniMate synthesizes smooth and plausible intermediate motions.
Motion expansion. UniMate chains a sequence of text prompts to extend a motion into a longer, temporally coherent sequence.
Dataset.
Samples from UniML3D, spanning bipedal, quadrupedal, avian, marine, insectoid, serpentine, and articulated rigid objects — each with detailed skeleton annotations and a coherent text prompt paired to its motion.
| 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 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 | resample and render | → 30 FPS, four synchronized views |
| 8 | caption with multimodal LLMs | + one text prompt per clip |
| 9 | review every pair by hand | − captions that misidentify the dominant action |
| canonicalize(captioned clip) → training sample | ||
| 10 | serialize the tree breadth-first | → one joint ordering per skeleton |
| 11 | scale by topology diameter | → comparable extent across rigs |
| 12 | place in a canonical frame | → y-axis up, root at the origin |
| 13 | align the initial facing direction | → +z, from the symmetric hip pair |
| 14 | express rotations against the rest pose | → one kinematic basis across topologies |
| 15 | normalize by feature statistics | → global on the root, local on the rest |
@inproceedings{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},
booktitle = {SIGGRAPH Asia 2026},
year = {2026}
}