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.2.tar.gz (1.0 MB 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.2-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

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

Hashes for mannequin_x-0.0.2.tar.gz
Algorithm Hash digest
SHA256 8f79a3f816ab2bd1917f12e3f5402d73d3ae736c18cb8d20a8f4a7592b962c2b
MD5 96a0d962bcb5bda434eaf572a528caa7
BLAKE2b-256 4f16f176ce874d5ea57ab5b93138a812b41693297187172e76efd5cba9cbc150

See more details on using hashes here.

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

Hashes for mannequin_x-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eefa069c195ada4d025978b93577f4d8962b4c1d61fbc0e481215f30622b8b5f
MD5 17c33d1400a7defe4b417bcfd6ee3dd9
BLAKE2b-256 cf404368c777a9b71efc1a766bcb21196525bf47c05160f8efe3c287475611da

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

0.0.4

2 files

0.0.3

2 files

This release

0.0.2 This release

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