UniMate Checkpoints
Pretrained checkpoints for UniMate: One Unified Model to Animate Diverse Skeletons (SIGGRAPH Asia 2026), a single text-conditioned flow-matching model that generates motion for arbitrary skeletons: animals, humanoids and rigged objects.
Project Page · Paper · Video · Code · Datasets · Interactive Demo
Models
| Model | Training data | Architecture | Params | Steps | Status |
|---|---|---|---|---|---|
unimate_uniml3d_f60_preview |
UniML3D (Truebones ZOO, Mixamo, Objaverse-XL); 60-frame clips at 30 fps; skeletons with 5 to 60 joints | Graph attention with AdaLN text conditioning; 10 layers, width 512 | 74.1M | 120k | Preview |
unimate_uniml3d_f60_preview
A preview model, trained for about one day (23 hours on 6 NVIDIA H100 GPUs) with the released configuration configs/uniml3d_60frames_graph_adaln.json. It is intended as a reproducible reference point for the public code rather than as the final model.
Checkpoints are saved every 10k steps; checkpoint_step_120000.pt is the recommended one. Each checkpoint stores the model weights, their exponential moving average (EMA), and the optimizer and scheduler state, so training can be resumed from it. Inference uses the EMA weights.
Data version
The UniML3D dataset will continue to be updated. The models currently in this repository were trained on the current release of the data (September 2026); models trained on later data releases will be published here with their data version noted.
Roadmap
This repository will be updated as new models are released:
- a full UniMate model on UniML3D;
- a separate model for each dataset (Truebones ZOO, Mixamo, Objaverse-XL).
Repository layout
<model>/
config.json resolved training configuration, read by inference
dataset_stats.npy feature normalization statistics
checkpoints/
checkpoint_step_<N>.pt model, EMA, optimizer and scheduler state
logs/ TensorBoard training curves
samples/
step_<NNNNNN>/ motions generated at each checkpoint (step_000000: before training)
<object_type>-<i>_fk.mp4 joints from forward kinematics of the predicted rotations
<object_type>-<i>_ric.mp4 predicted joint positions
Usage
Set up the environment and the dataset features as described in the code repository. Sampling reads the target skeleton from dataset/features/<dataset>/, so the features the model was trained on must be present.
Download a model (here the recommended checkpoint only):
hf download Linzhan/UniMate \
--include "unimate_uniml3d_f60_preview/*.json" "unimate_uniml3d_f60_preview/*.npy" \
"unimate_uniml3d_f60_preview/checkpoints/checkpoint_step_120000.pt" \
--local-dir outputs
Generate motion from text (the latest checkpoint in the folder is used):
python -m unimate.inference.sample \
--exp_dir outputs/unimate_uniml3d_f60_preview \
--test_cases_json test_cases.json \
--num_repetitions 3
Resume training from a checkpoint:
bash scripts/run_train.sh configs/uniml3d_60frames_graph_adaln.json -- \
--resume outputs/unimate_uniml3d_f60_preview/checkpoints/checkpoint_step_120000.pt
Reproduce the preview model:
accelerate launch --num_processes 6 -m unimate.training.train \
--config configs/uniml3d_60frames_graph_adaln.json
License
The UniMate code is released under the MIT License. The training data remain governed by the licenses of their original sources: Adobe's Mixamo terms of use, the per-object licenses of Objaverse-XL, and the commercial license of the Truebones ZOO pack. Please review these terms before using the models.
Citation
@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}
}
