facebookresearch/actionmesh
🎬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.
ActionMesh – Turning Videos into Animated 3D Meshes
What it does
ActionMesh is a research‑grade model that creates a full 3‑D animated mesh from a short video (16‑31 frames). It can work in two ways:
- Video → 4D – give only a video and the system builds a new mesh that moves exactly as the subject does.
- {Video + 3D} → 4D – supply an existing static mesh (e.g., a GLB file) and the model animates it to follow the motion in the video while keeping the original topology and texture.
The output can be a series of per‑frame .glb files, a single animated .glb that Blender can import, or a rendered video of the animation.
Why it matters
- Bridges vision and graphics – combines video understanding (via DINOv2, SAM2, background‑removal) with 3‑D diffusion to synthesize geometry and motion.
- Fast enough for interactive demo – on an H100 GPU the default run takes ~75 s, and a “fast” flag drops it to ~45 s.
- Low‑RAM option – can run on a Colab T4 (12 GB) with
--low_ram, making the tech accessible to researchers without huge GPUs. - Open‑source benchmark – the accompanying ActionBench dataset (128 video ↔ animated point‑cloud pairs) lets the community evaluate and compare future methods.
How to get started (quick‑start)
# clone and install
git clone git@github.com:facebookresearch/actionmesh.git && cd actionmesh
git submodule update --init --recursive
pip install -r requirements.txt -e .
# simple video‑to‑mesh run (replace paths as needed)
python inference/video_to_animated_mesh.py \
--input assets/examples/davis_camel \
--blender_path /path/to/blender # optional, for .glb export
Add --fast for the quicker inference mode, and --low_ram if you are on a modest GPU (e.g., Colab).
Key components & dependencies
| Component | Role | Install / Source |
|---|---|---|
| PyTorch 2.4 / CUDA 12.1 | Core deep‑learning framework | |
| PyTorch3D | Rendering animated meshes (needed for {video+3D} mode and benchmark evaluation) | |
| Blender 3.5.1 | Converts per‑frame meshes into a single animated GLB | |
| TripoSG | Image‑to‑3‑D generator used as a backbone for shape priors | |
| DINOv2‑large | Vision encoder providing robust frame features | |
| RMBG‑1.4 | Automatic background removal when masks are absent | |
| Diffusers / Transformers | Underlying diffusion and transformer implementations |
Input requirements
- Video:
.mp4or a folder of PNG frames. - Length: 16‑31 frames (extra frames are ignored).
- Masks are optional – if missing, the pipeline runs RMBG to cut out the foreground. For best results the README recommends using the SAM2 demo to produce clean masks.
Output formats
| Output | What you get | How to use |
|---|---|---|
mesh_000.glb, mesh_001.glb, … |
One mesh per timestep – useful for custom rendering pipelines | |
animated_mesh.glb |
Single file with embedded animation – drag‑and‑drop into Blender 3.5.1 | |
rendered.mp4 |
Video rendered with PyTorch3D – quick visual check |
Benchmarks & performance
| Hardware | Mode | Time | Quality note |
|---|---|---|---|
| H100 GPU | Default | ~75 s | Highest quality |
| H100 GPU | --fast |
~45 s | Slight quality drop |
| Colab T4 (12 GB) | --low_ram + --fast |
~1 min 30 s | Acceptable for prototyping |
Community resources
- Hugging Face demo – interactive web UI at
facebook/ActionMesh. - Colab notebook – ready‑to‑run notebook (
ActionMesh.ipynb). - ActionBench dataset – hosted on Hugging Face (
facebook/actionbench) for evaluation.
License & citation
The code is released under the license in the repository’s LICENSE file. If you use the method in research, cite the CVPR 2026 paper (full bibtex provided in the README).
All information above is taken directly from the repository’s README; no external speculation added.
Related
- Project
- Project
- Project
- Project