naver/anny
Anny, A Free and Interpretable Human Body Model for all ages, written in PyTorch.
Anny – a differentiable human‑body mesh model (PyTorch)
What it is
- Anny is an open‑source, PyTorch‑based parametric 3D human body model that can represent a wide range of body shapes—from infants to elders—using a single topology and parameter space. It builds on the MakeHuman assets and adds its own rig, topology options, and facial‑action blendshapes.
Key features
- Full‑body and part‑specific models – you can load the whole body, just hands, or just the face.
- Multiple rigs & topologies – a compact 104‑bone "anny" rig (default) for most use‑cases, a full 163‑bone MakeHuman rig for exact compatibility, and support for SMPL‑X, SMPL and SOMA‑X topologies.
- Shape, phenotype, and local‑change parameters – high‑level shape knobs (e.g., height, weight) plus fine‑grained local edits (e.g., pregnant stomach) and facial action units.
- Differentiable – all operations are pure PyTorch, so gradients flow through pose, shape, and expression parameters, enabling learning‑based pipelines.
- Free & extensible – released under Apache‑2.0; the underlying MakeHuman assets are CC0, and the package can be extended with custom blendshapes.
Installation
# Full install (includes optional non‑free dependencies like SMPL‑X support)
pip install "anny[smpl,examples]"
# Free‑only install (no non‑commercial assets)
pip install "anny[examples]"
# Minimal core install
pip install anny
You can also install the latest source directly from GitHub with the @git+https:// syntax.
Quick‑start code
import torch, anny, trimesh
# Create the model (default compact rig, full mesh topology)
model = anny.Anny(local_changes="default", facial_actions="all").to(torch.float32)
# Pose: identity matrix for every bone (batch‑size 1)
pose = torch.eye(4)[None, None].repeat(1, model.bone_count, 1, 1)
# Shape: set every phenotype to a mid‑value (0.5)
phenotype = {k: 0.5 for k in model.phenotype_labels}
# Local edits (e.g., pregnant stomach)
local = {"stomach-pregnant-incr": 1.0}
# Facial actions (jaw open, smile, …)
facial = {"jawOpen": 0.8, "mouthSmileLeft": 0.4}
# Forward pass – returns a dict with vertices, etc.
out = model(pose_parameters=pose,
phenotype_kwargs=phenotype,
local_changes_kwargs=local,
facial_actions=facial)
# Save as a .ply file
trimesh.Trimesh(vertices=out["vertices"].squeeze(0).numpy(),
faces=model.faces).export("anny_output.ply")
The model accepts both dictionary‑style and stacked‑tensor inputs, making it easy to integrate into existing pipelines.
Documentation & demos
- Tutorials – a set of HTML tutorials (shape, pose, pose transfer, texture, alternative models) are shipped in the
tutorialsfolder and hosted athttps://naver.github.io/anny/build/…. - Interactive demo – run
python -m anny.examples.interactive_demoto launch a Gradio UI for real‑time manipulation of pose, shape, and facial actions. - Demo website – a live demo is available at
http://anny-demo.europe.naverlabs.com/.
Technical notes
- The default
rig="anny"uses 104 bones and a triangulated mesh (topology="anny"). For full MakeHuman compatibility userig="makehuman"andtopology="makehuman". - Pose parameterizations have changed in v0.6 (
"local-ref"is now default). Legacy data can be converted withanny.utils.pose.transfer_pose_parameters. - First model instantiation may take a few minutes while pre‑computed blend‑shape data are cached under
~/.cache/anny/(customizable viaANNY_CACHE_DIR).
Use cases
- Learning‑based human pose estimation – because the model is differentiable, you can back‑propagate from image‑based losses to recover pose and shape.
- Animation & virtual try‑on – generate realistic body meshes with controllable shape, pose, and facial expressions.
- Research on age‑spanning body modeling – the same topology works for infants, children, adults, and elders, simplifying cross‑age studies.
- Interoperability – export to SMPL‑X, SMPL, or SOMA topologies for use with existing pipelines that expect those formats.
License
- Core code: Apache‑2.0.
- Asset packs (MakeHuman MPFB2, Face Units, SOMA‑X) are CC0 or Apache‑2.0. The optional SMPL‑X topology is provided for non‑commercial use only.
Citation If you use Anny in a publication, cite the ECCV 2026 paper:
@inproceedings{anny,
title={Human Mesh Modeling for Anny Body},
author={Romain Brégier and Guénolé Fiche and Laura Bravo‑Sánchez and Thomas Lucas and Matthieu Armando and Philippe Weinzaepfel and Grégory Rogez and Fabien Baradel},
booktitle={Computer Vision -- ECCV 2026},
year={2026},
publisher={Springer Nature Switzerland},
pages={170--188}
}
Bottom line: Anny is a modern, fully differentiable human‑body mesh library that lets researchers and developers generate, edit, and learn from 3‑D human shapes across the entire lifespan, with flexible rig/topology options and a clean PyTorch API.
Related
- Project
- Project
- Project
- Project
- Project