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.3.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.3-py3-none-any.whl (879.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mannequin_x-0.0.3.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.3.tar.gz
Algorithm Hash digest
SHA256 5778b580735ab5d844170e5085998b76c1d6c099df61165485d8eb7802eb7e49
MD5 0af7b01d6fbb6a721ecc88aebd5bac21
BLAKE2b-256 e846426734334f360d1cf4a9a246c84d3996ec2ec04d03a346d08c9968c34051

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mannequin_x-0.0.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5f69b7b22681007f076afcd444af54e6a1c75d54af402ec28ef8cdf4f4ec8307
MD5 bbd6943fe1e9ed32c8d8872eb6fa4fb6
BLAKE2b-256 e5fd33d4ca7189ba265de042f5915cbf891875e8039b232dbe4d1112277eebe9

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

This release

0.0.3 This release

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