body-models
body-models provides a shared interface for parametric human body, head, hand,
anatomical, and measurement models across NumPy, PyTorch, and JAX.
Documentation: https://abcamiletto.github.io/body-models/
Features
- Shared API across human, anatomical, hand, head, and measurement models
- NumPy, PyTorch, and JAX runtimes
- Separate mesh and skeleton forwards with
forward_vertices()andforward_skeleton() - Prepared identities for repeated poses with fixed shape/expression parameters
- Mesh simplification and vertex-subset forwards for supported mesh models
- Multiple rotation representations for supported pose models
- Optional Warp-accelerated skinning for Torch models
Install
uv add body-models
Install optional extras when needed:
uv add "body-models[torch]"
uv add "body-models[jax]"
uv add "body-models[torch,warp]"
uv add "body-models[simplify]"
Public model assets download automatically on first use. Licensed assets use
body-models download MODEL, which prompts for credentials.
Quick Start
from body_models.smpl.torch import SMPL
model = SMPL(gender="neutral")
params = model.get_rest_pose(batch_dims=(1,))
vertices = model.forward_vertices(**params)
skeleton = model.forward_skeleton(**params)
The equivalent NumPy and JAX classes live in body_models.smpl.numpy and
body_models.smpl.jax. Torch models are torch.nn.Module instances, so
.to(), .cuda(), and state_dict() work directly.
When shape-dependent identity parameters stay fixed across many poses, prepare
them once and pass the returned dictionary back through identity. This avoids
recomputing rest joints, local offsets, and rest vertices on every forward pass.
shape = params.pop("shape")
identity = model.prepare_identity(shape)
vertices = model.forward_vertices(**params, identity=identity)
skeleton = model.forward_skeleton(**params, identity=identity)
For models with expression-dependent rest state, such as SMPL-X and FLAME, pass
both identity controls to prepare_identity(shape, expression).
Supported Models
- Full bodies: SMPL, SMPL-H, SMPL-X, ANNY, MHR, SOMA, GarmentMeasurements
- Anatomicals: SKEL
- Heads: FLAME
- Hands: MANO
See the model docs for setup, supported runtimes, inputs, and model-specific behavior.
Development
uv run ruff format .
uv run ruff check .
uv run ty check
License
The code is licensed under the Apache License 2.0 (see LICENSE). Model assets
are licensed separately by their upstream projects — see the documentation and
upstream model pages for model-specific terms.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file body_models-0.24.0.tar.gz.
File metadata
- Download URL: body_models-0.24.0.tar.gz
- Upload date:
- Size: 123.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.4 {"installer":{"name":"uv","version":"0.12.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
853ad4d3dcc96552ed472e53894f5559e063e45a964b4113634541de198dd6fb
|
|
| MD5 |
4ef9462627acb3d7bb1de7d12d5dd0ce
|
|
| BLAKE2b-256 |
0e2da1bd2d514a3dcc9b4e43d0cce11317eec64c7d33cc1e7d563cd50335480b
|
File details
Details for the file body_models-0.24.0-py3-none-any.whl.
File metadata
- Download URL: body_models-0.24.0-py3-none-any.whl
- Upload date:
- Size: 176.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.4 {"installer":{"name":"uv","version":"0.12.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55f38a895300cc21d81394108f96a399264f8497ee4b7797359c851119f2da89
|
|
| MD5 |
f03ca0b759ec1d26de59ceb5646bfef9
|
|
| BLAKE2b-256 |
d1729337260eb215c78e6150675e067d07fc0ae48c885bdac1344dd0350d60ce
|