SMPL-X Mannequin
A rigid mannequin driven directly by SMPL-X parameters — no skinning, no
blend shapes. Every part, down to the fingers, is a rigid mesh owned by one
SMPL-X joint; shape coefficients change bone lengths without changing part
thickness. Numpy-only and fully standalone: the SMPL-X shape response is
baked into a small bundled table, so neither body-models nor the SMPL-X
model files are needed.
pip install mannequin-x
Usage
from mannequin import SmplxMannequin
model = SmplxMannequin(lod=1)
params = model.get_rest_pose()
vertices = model.forward_vertices(**params)
forward_vertices, forward_skeleton, forward_links, and forward_meshes
take SMPL-X parameters (axis-angle, optionally batched) and use the native
SMPL-X origin: identical parameters place the pelvis and neutral foot surface
in the same coordinates as SMPL-X. For repeated calls with the same betas,
prepare the identity once with prepare_identity and pass it as identity=.
Viser
Each link mesh is uploaded to the viser scene once, parented to its joint's frame; pose and shape updates only send the per-joint frame transforms (~10 KB per full pose).
import viser
from mannequin import SmplxMannequin, add_mannequin
server = viser.ViserServer()
model = SmplxMannequin(lod=1)
handle = add_mannequin(server.scene, "/mannequin", model)
handle.set_shape(betas)
handle.set_pose(**model.get_apose())
set_pose accepts any subset of the SMPL-X pose parameters, and full
per-frame parameter dicts work directly (shape is routed to set_shape,
expression is ignored). Unchanged values are skipped.
add_mannequin takes a palette — one of the built-in armor/joint pairs in
PALETTES (sand, ivory, charcoal, sage, clay, slate; see
renders/palettes.jpg) or a custom
(armor, joint) RGB pair.
three.js
authoring/export_glb.py exports a rigged GLB (one per LOD, attached to
GitHub releases): joint nodes nested in the skeleton hierarchy with meshes
parented underneath, so posing is plain local quaternions on named nodes —
no skinning. The SMPL-X parameter-to-joint mapping ships in the root node's
glTF extras (userData.smplx_order after loading). See
examples/threejs.html for a complete animated
example.
Assets
Three exactly mirrored levels of detail are bundled: lod=0 (~40k vertices),
lod=1 (~15k), and lod=2 (<5k). Lower-leg length is calibrated against the
SMPL-X sole vertices, so shaped identities keep the same ground plane. The
editable source is authoring/mannequin.blend;
the installed package ships only the compact numpy assets.
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 mannequin_x-0.0.2.tar.gz.
File metadata
- Download URL: mannequin_x-0.0.2.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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 |
8f79a3f816ab2bd1917f12e3f5402d73d3ae736c18cb8d20a8f4a7592b962c2b
|
|
| MD5 |
96a0d962bcb5bda434eaf572a528caa7
|
|
| BLAKE2b-256 |
4f16f176ce874d5ea57ab5b93138a812b41693297187172e76efd5cba9cbc150
|
File details
Details for the file mannequin_x-0.0.2-py3-none-any.whl.
File metadata
- Download URL: mannequin_x-0.0.2-py3-none-any.whl
- Upload date:
- Size: 1.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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 |
eefa069c195ada4d025978b93577f4d8962b4c1d61fbc0e481215f30622b8b5f
|
|
| MD5 |
17c33d1400a7defe4b417bcfd6ee3dd9
|
|
| BLAKE2b-256 |
cf404368c777a9b71efc1a766bcb21196525bf47c05160f8efe3c287475611da
|