Repolode
Friedrich-M

Friedrich-M/UniMate

A unified text-to-motion model that generates animations for arbitrary rigged skeletons, from humanoids to quadrupeds, birds, fish and insect-like rigs.

Stars
2,006
Forks
217
Open issues
6
Last commit
13 days ago

What is it?

UniMate generates articulated 3D motion from a text prompt and a rigged asset, and it works across skeletons with different topologies without per-skeleton retraining or test-time optimization. It is built on flow matching and is trained on UniML3D, a dataset of 13,769 text-paired motion clips across 7,430 skeletons spanning bipedal, quadrupedal, avian, marine, insectoid, serpentine and rigid-object rigs.

The repository includes the dataset data-processing pipeline, training code driven by JSON configs and Accelerate, and inference scripts that animate dataset skeletons or your own rigged GLB, glTF or FBX assets. A rig_preprocess tool labels joints with an LLM and lets you review them before building an asset. Released checkpoints are available on Hugging Face.

The same model also supports motion in-betweening between keyframes, text-guided editing that keeps selected joints and regenerates the rest, and motion expansion that chains several prompts into one longer clip.

Key features

  • 01Generates motion for arbitrary skeletons from a text prompt without per-skeleton retraining
  • 02Supports humanoid, quadruped, avian, marine, insectoid and rigid-object rigs
  • 03Provides training and inference code with released checkpoints and the UniML3D dataset
  • 04Imports your own rigged GLB, glTF or FBX assets via a joint-labeling preprocessing tool
  • 05Supports keyframe in-betweening, motion editing and motion expansion without extra training

Use cases

  • Animating custom 3D characters or creatures from text prompts in games or film previsualization
  • Generating motion for non-humanoid assets such as quadrupeds, birds or fish
  • Research on text-conditioned motion generation across diverse skeleton topologies
  • Filling in motion between keyframes or editing parts of an existing animation

Quick start

  1. 1

    Create the conda environment with Python 3.10

    conda create -n unimate python=3.10 -y
  2. 2

    Activate the environment

    conda activate unimate
  3. 3

    Pin setuptools below version 81

    pip install "setuptools<81"
  4. 4

    Install the project requirements

    pip install -r requirements.txt --no-build-isolation

Things to know

  • Full reproduction needs the Truebones ZOO motion pack, a commercial asset that must be purchased and cannot be redistributed.
  • Training is set up for GPU use with Accelerate, including multi-GPU runs, so it is not a CPU-friendly workflow.
  • Preview checkpoints are released and new checkpoints will replace them, so results may change.

Topics

FAQ

What is UniMate?
A unified text-to-motion model that generates animations for arbitrary rigged skeletons, from humanoids to quadrupeds, birds, fish and insect-like rigs. UniMate generates articulated 3D motion from a text prompt and a rigged asset, and it works across skeletons with different topologies without per-skeleton retraining or test-time optimization. It is built on flow matching and is trained on UniML3D, a dataset of 13,769 text-paired motion clips across 7,430 skeletons spanning bipedal, quadrupedal, avian, marine, insectoid, serpentine and rigid-object rigs.
Is UniMate free to use? What license does it have?
UniMate is open source under the MIT license. Check the license terms before using it in commercial products.
Is UniMate still maintained?
Actively maintained. The last commit to UniMate was on Oct 8, 2026.
What can I use UniMate for?
Animating custom 3D characters or creatures from text prompts in games or film previsualization Generating motion for non-humanoid assets such as quadrupeds, birds or fish Research on text-conditioned motion generation across diverse skeleton topologies Filling in motion between keyframes or editing parts of an existing animation
How do I install UniMate?
Create the conda environment with Python 3.10: conda create -n unimate python=3.10 -y Activate the environment: conda activate unimate Pin setuptools below version 81: pip install "setuptools<81" Install the project requirements: pip install -r requirements.txt --no-build-isolation
Where can I get UniMate?
The source code and installation instructions are on GitHub: https://github.com/Friedrich-M/UniMate

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects