Skip to main content

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

mannequin_x-0.0.4.tar.gz (876.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mannequin_x-0.0.4-py3-none-any.whl (879.2 kB view details)

Uploaded Python 3

File details

Details for the file mannequin_x-0.0.4.tar.gz.

File metadata

  • Download URL: mannequin_x-0.0.4.tar.gz
  • Upload date:
  • Size: 876.7 kB
  • 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

Hashes for mannequin_x-0.0.4.tar.gz
Algorithm Hash digest
SHA256 96246701c57cf60f6b55de7fb252005e7de332e91a0c999095bf81509f7f1f82
MD5 11844b5c1b819ee485e08c1b5bb992e9
BLAKE2b-256 32c6a94f549dfbfc6a1fc3f9c4f475cf45e4ee0bc80d81e2c91a45f6cf676972

See more details on using hashes here.

File details

Details for the file mannequin_x-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: mannequin_x-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 879.2 kB
  • 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

Hashes for mannequin_x-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2c301d2d42007625f5751b5eb03bbdf952e08654e82863c2f20e411a693b3ab0
MD5 74348d7ef15d26624fc0785a55f791cf
BLAKE2b-256 5f263ae14d054adf3c54b6bf0ca7f21d1502d5eea4bdabf60d14663eaaba7878

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

This release

0.0.4 This release

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page