π¬ActionMesh: A fast video to animated mesh model with unprecedented quality. Generate animated mesh seamlessly importable into any 3D software in less than a minute.
421
stars
19
commits
Python
primary language
May 28, 2026
updated
ActionMesh is a fast model for generating animated 3D meshes from videos. It supports two modes:
2026-02-20: π We release π€ facebook/ActionBench, a benchmark dataset of 128 paired videos β animated point-clouds for evaluating animated 3D mesh generation. See actionbench/README.md for evaluation instructions.
2026-02-11: {3D+video}β4D - Optionally pass a 3D mesh as input (texture preserved)
2026-01-31: Low RAM mode (--low_ram) β Runs on Google Colab T4 GPUs! Try it on Colab
2025-01-21: Demo is live! Try it here: π€ facebook/ActionMesh
2025-01-21: Code released!
--low_ram mode (e.g., Google Colab T4)git clone git@github.com:facebookresearch/actionmesh.git
cd actionmesh
git submodule update --init --recursive
pip install -r requirements.txt
pip install -e .
| Dependency | Purpose | Installation |
|---|---|---|
| PyTorch3D | Video rendering of animated meshes; required for {video+3D}β4D inference and ActionBench evaluation (see ActionBench README) | Installation guide |
| Blender 3.5.1 | Export animated mesh as a single .glb file | Download |
Generate an animated mesh from an input video:
Note: To export a single animated mesh file (importable in Blender), specify the path to your Blender executable via --blender_path.
python inference/video_to_animated_mesh.py \
--input assets/examples/davis_camel \
--blender_path "path/to/blender/executable" # optional: export animated mesh for Blender
Pass an existing mesh (.GLB) to animate it w.r.t. the video, preserving its topology and texture:
python inference/video_and_3d_to_animated_mesh.py \
--input assets/examples/panda \
--mesh_input assets/examples/panda/panda.glb \
--blender_path "path/to/blender/executable"
Fast & Low RAM Modes
Add --fast for faster inference (as used in the HuggingFace demo), and --low_ram for GPUs with limited VRAM (e.g., Google Colab T4). Both flags can be combined.
Performance comparison on H100 GPU:
| Mode | Time | Quality |
|---|---|---|
| Default | ~75s | Higher quality |
Fast (--fast) | ~45s | Slightly reduced quality |
Model Downloads
On the first launch, ActionMesh weights and external models are automatically downloaded from HuggingFace:
| Model | Source | Local Path |
|---|---|---|
| ActionMesh | facebook/ActionMesh | pretrained_weights/ActionMesh |
| TripoSG (image-to-3D) | VAST-AI/TripoSG | pretrained_weights/TripoSG |
| DinoV2 | facebook/dinov2-large | pretrained_weights/dinov2 |
| RMBG | briaai/RMBG-1.4 | pretrained_weights/RMBG |
We provide example sequences in assets/examples/ with expected outputs for testing and debugging your installation:
The --input argument accepts:
.mp4 video fileThe number of input frames should be between 16 and 31 (default is 16). Any additional frames will be ignored.
Input frames can be provided with or without alpha masks. If no mask is provided, RMBG background removal model is automatically applied to each frame before processing.
Tip: For custom videos, we strongly recommend using the SAM2 demo to isolate the animated subject on a white background, as RMBG may have limited performance on complex scenes. See our SAM2 extraction guide for detailed instructions.
The model exports a folder containing:
| Output | Description | Requirements |
|---|---|---|
| Per-frame meshes | One .glb mesh file per timestep (mesh_000.glb, mesh_001.glb, ...) | None (default) |
| Animated mesh | Single animated_mesh.glb with embedded animation, importable in Blender | Blender 3.5.1 |
| Video | Rendered .mp4 video of the animated mesh | PyTorch3D |
See the LICENSE file for details about the license under which this code is made available.
ActionMesh builds upon the following open-source projects. We thank the authors for making their work available:
| Project | Description |
|---|---|
| TripoSG | Image-to-3D mesh generation |
| DINOv2 | Self-supervised vision features |
| Diffusers | Diffusion model framework |
| Transformers | Transformer model library |
| RMBG-1.4 | Background removal model |
@inproceedings{ActionMesh2026,
author = {Remy Sabathier, David Novotny, Niloy Mitra, Tom Monnier},
title = {ActionMesh: Animated 3D Mesh Generation with Temporal 3D Diffusion},
year = {2026},
}
19 commits
Python
95.9%
Jupyter Notebook
4.1%
π¬ActionMesh: A fast video to animated mesh model with unprecedented quality. Generate animated mesh seamlessly importable into any 3D software in less than a minute.
421
stars
19
commits
Python
primary language
May 28, 2026
updated
ActionMesh is a fast model for generating animated 3D meshes from videos. It supports two modes:
2026-02-20: π We release π€ facebook/ActionBench, a benchmark dataset of 128 paired videos β animated point-clouds for evaluating animated 3D mesh generation. See actionbench/README.md for evaluation instructions.
2026-02-11: {3D+video}β4D - Optionally pass a 3D mesh as input (texture preserved)
2026-01-31: Low RAM mode (--low_ram) β Runs on Google Colab T4 GPUs! Try it on Colab
2025-01-21: Demo is live! Try it here: π€ facebook/ActionMesh
2025-01-21: Code released!
--low_ram mode (e.g., Google Colab T4)git clone git@github.com:facebookresearch/actionmesh.git
cd actionmesh
git submodule update --init --recursive
pip install -r requirements.txt
pip install -e .
| Dependency | Purpose | Installation |
|---|---|---|
| PyTorch3D | Video rendering of animated meshes; required for {video+3D}β4D inference and ActionBench evaluation (see ActionBench README) | Installation guide |
| Blender 3.5.1 | Export animated mesh as a single .glb file | Download |
Generate an animated mesh from an input video:
Note: To export a single animated mesh file (importable in Blender), specify the path to your Blender executable via --blender_path.
python inference/video_to_animated_mesh.py \
--input assets/examples/davis_camel \
--blender_path "path/to/blender/executable" # optional: export animated mesh for Blender
Pass an existing mesh (.GLB) to animate it w.r.t. the video, preserving its topology and texture:
python inference/video_and_3d_to_animated_mesh.py \
--input assets/examples/panda \
--mesh_input assets/examples/panda/panda.glb \
--blender_path "path/to/blender/executable"
Fast & Low RAM Modes
Add --fast for faster inference (as used in the HuggingFace demo), and --low_ram for GPUs with limited VRAM (e.g., Google Colab T4). Both flags can be combined.
Performance comparison on H100 GPU:
| Mode | Time | Quality |
|---|---|---|
| Default | ~75s | Higher quality |
Fast (--fast) | ~45s | Slightly reduced quality |
Model Downloads
On the first launch, ActionMesh weights and external models are automatically downloaded from HuggingFace:
| Model | Source | Local Path |
|---|---|---|
| ActionMesh | facebook/ActionMesh | pretrained_weights/ActionMesh |
| TripoSG (image-to-3D) | VAST-AI/TripoSG | pretrained_weights/TripoSG |
| DinoV2 | facebook/dinov2-large | pretrained_weights/dinov2 |
| RMBG | briaai/RMBG-1.4 | pretrained_weights/RMBG |
We provide example sequences in assets/examples/ with expected outputs for testing and debugging your installation:
The --input argument accepts:
.mp4 video fileThe number of input frames should be between 16 and 31 (default is 16). Any additional frames will be ignored.
Input frames can be provided with or without alpha masks. If no mask is provided, RMBG background removal model is automatically applied to each frame before processing.
Tip: For custom videos, we strongly recommend using the SAM2 demo to isolate the animated subject on a white background, as RMBG may have limited performance on complex scenes. See our SAM2 extraction guide for detailed instructions.
The model exports a folder containing:
| Output | Description | Requirements |
|---|---|---|
| Per-frame meshes | One .glb mesh file per timestep (mesh_000.glb, mesh_001.glb, ...) | None (default) |
| Animated mesh | Single animated_mesh.glb with embedded animation, importable in Blender | Blender 3.5.1 |
| Video | Rendered .mp4 video of the animated mesh | PyTorch3D |
See the LICENSE file for details about the license under which this code is made available.
ActionMesh builds upon the following open-source projects. We thank the authors for making their work available:
| Project | Description |
|---|---|
| TripoSG | Image-to-3D mesh generation |
| DINOv2 | Self-supervised vision features |
| Diffusers | Diffusion model framework |
| Transformers | Transformer model library |
| RMBG-1.4 | Background removal model |
@inproceedings{ActionMesh2026,
author = {Remy Sabathier, David Novotny, Niloy Mitra, Tom Monnier},
title = {ActionMesh: Animated 3D Mesh Generation with Temporal 3D Diffusion},
year = {2026},
}
19 commits
Python
95.9%
Jupyter Notebook
4.1%