Neural motion blending & retargeting — straight from Blender's NLA Editor.
Luca Cazzola1 ·
Giulia Martinelli1,2 ·
Nicola Conci1,2
1 University of Trento · 2 CNIT · MMLab
Project site · Usage · API · Architecture · Skeletons
Blender's NLA Editor becomes the front-end for a motion-processing server. Select one reference strip and one or more target strips; the add-on ships them to a local or remote server for neural blending or retargeting — even across different skeletons — and imports the result back into your scene as a ready-to-use NLA strip.
| 🧩 Cross-topology | Blend or retarget between mismatched skeletons (Truebones, Mixamo, or custom) |
| 🎚️ Per-strip weights | Linked crossfades or independent strength envelopes on native influence curves |
| ⚡ Non-blocking | Progress-aware jobs polled once/sec — Blender never freezes |
| 🔌 Swappable models | Load any checkpoint from the server's catalog at runtime |
- 19/07/2026 — Paper is out!
- 12/06/2026 — First code release!
- Model jointly trained on Humans & Animals (for crazy motion transfer!)
- Better models (for better blending 😉)
⚠️ Are you here for the technical deails ??? Check out neural_motion_blending to have the full picture 👀 Or reach out to us! (we're friendly 😉)
Clone BlendAnything recursively so the Neural Motion Blending submodule is downloaded at the same time:
git clone --recursive https://github.com/mmlab-cv/BlendAnything.git
cd BlendAnythingDownload
blendany_model_weights.zip
and extract its model folders into:
BlendAnything/
└── neural_motion_blending/
└── save/
└── truebones_attnpool/
├── args.json
└── model*.pt
The server discovers model folders under
neural_motion_blending/save/. Each model folder must contain exactly one model*.pt checkpoint.
conda env create --file neural_motion_blending/environment.yml
conda activate neural_motion_blending
pip install -r blendanything_server/requirements.txt
pip install --no-build-isolation git+https://github.com/inbar-2344/Motion.gitThen start the server
uvicorn blendanything_server.app:app --reloadStarts by default at
localhost:8000
- Install — zip the
blendanything_client/directory and install that zip in Blender. requests— if missing from Blender's Python:<blender-python> -m pip install requests- Configure — set the Server URL in the Neural Blend panel
(default
http://localhost:8000); click the globe to verify. - Go — open the NLA Editor → N-panel → Neural Blend → Import BVH, arrange strips, then Run Neural Blend.
💡 A few ready-to-use BVH clips ship in
samples/(e.g. Truebones Elephant, Skunk, Coyote, Crab) so you can try a blend right away.
Full walkthrough in docs/usage.md.
| Doc | Contents |
|---|---|
| Usage & UI | Workflow, modes, panels, strength profiles, DDIM policy |
| Skeletons | Skeleton selection, face joints, custom / OOD skeletons, conditioning |
| API | Endpoints, request payload, progress phases, result delivery |
| Architecture | Project layout, data flow, extending |
Each package also has its own README: client · server · devtools · data
The Blender client and neural server may run on different computers.
| Component | Requirement |
|---|---|
| Blender client | Blender 4.5.4 LTS. The add-on otherwise follows Blender's supported desktop operating systems. |
| Server OS | Linux x86-64 recommended and used by the provided environment. Native Windows and macOS server setups are not currently validated. |
| Server Python | Python 3.8.15, matching neural_motion_blending/environment.yaml. |
| GPU | An NVIDIA CUDA-capable GPU is required by the current inference path. The reference environment uses CUDA 12.1 and PyTorch 2.4.1. |
| Storage | Space for the repository, model checkpoints, T5 assets, temporary BVH files, and generated motions. |
| Network | The Blender client must be able to reach the server URL. Internet access is needed for the initial repository, dependency, model, and T5 downloads. |
GPU memory use depends on the selected checkpoint and motion length. CPU-only inference and Apple Silicon/MPS are not currently supported release configurations.
- Neural Motion Blending —
the cross-topology neural model powering BlendAnything, vendored as the
neural_motion_blendinggit submodule. - AnyTop — the any-skeleton motion-generation work the model builds upon.
- Truebones — source of the Truebones animal-skeleton motion data used for training and conditioning.
- Mixamo (Adobe) — source of the Mixamo humanoid skeletons and motions used for training and conditioning.
- Blender — the host application; the add-on lives in its Non-Linear Animation editor.
- Motion — BVH read/write/edit library used by the server.
Datasets, model checkpoints, and any derived metadata remain subject to the licenses and distribution terms of their original sources.
If you use this work, please cite the SIGGRAPH Posters 2026 paper.
@inproceedings{10.1145/3799825.3818769,
author = {Cazzola, Luca and Martinelli, Giulia and Conci, Nicola},
title = {BlendAnything: A Blender Plugin for Cross-Topology Motion Blending},
year = {2026},
isbn = {9798400725487},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3799825.3818769},
doi = {10.1145/3799825.3818769},
booktitle = {Proceedings of the Special Interest Group on Computer Graphics and Interactive Techniques Conference Posters},
articleno = {18},
numpages = {3},
keywords = {Character Animation, Motion Blending, Motion Retargeting},
series = {SIGGRAPH Posters '26}
}
