Skip to content
AI360Xpert
Beta

SMPL and SMPL-X Body Models

SMPL turns ten shape numbers plus joint angles into a posed 3D body mesh with 6,890 vertices.

Why Does This Exist?

Regressing 6,890×36{,}890 \times 3 vertex coordinates freely invites impossible bodies. SMPL (2015) compresses humans into shape β∈R10\beta \in \mathbb{R}^{10} and pose θ∈R72\theta \in \mathbb{R}^{72} for 2424 joints in axis-angle form. SMPL-X adds hand articulation and face expression on the same skeleton. Every human mesh recovery method outputs these numbers, not raw meshes.

Think of It Like This

A puppet with ten body sliders and joint strings

A puppet workshop keeps one template doll. Ten sliders widen hips or lengthen torsos, and strings set each of 2424 joints. Pulling strings bends the mesh by skinning without tearing. SMPL-X adds finger strings and face strings to the same doll.

Sliders are β\beta and strings are θ\theta. The analogy stops at soft tissue: puppets do not jiggle while SMPL adds pose-dependent dents.

How It Actually Works

Template Tˉ\bar{T} plus shape blend BS(β)B_S(\beta) plus pose blend BP(θ)B_P(\theta) gives unposed mesh TT. Linear blend skinning poses it: vi′=∑kwk,iGk(θ)viv_i' = \sum_k w_{k,i} G_k(\theta) v_i with skinning weights ww and joint transforms GkG_k. Joints come from linear regressor J=JTJ = \mathcal{J} T. SMPL has 6,8906{,}890 vertices; SMPL-X has 10,47510{,}475 with hands and face.

Worked example

Set β=[1.0,0,…]\beta = [1.0, 0, \ldots] widening hips +3+3 cm. Set elbow joint to 0.60.6 rad flexion. A forearm vertex with weights [0.8,0.2][0.8, 0.2] on elbow and wrist moves 0.8×0.8 \times elbow transform plus 0.2×0.2 \times wrist, landing 2.12.1 cm forward. Reprojection of the wrist joint lands within 44 pixels of detection. Zeroing β\beta returns the mean body exactly.

Watch Out For

Axis-angle jumps at 180 degrees

Pose near π\pi radians wraps discontinuously, so interpolation swings the long way. The symptom is arms corkscrewing between frames. Convert to rotation matrices for temporal smoothing.

The Quick Version

  • SMPL compresses bodies to 1010 shape plus 7272 pose numbers.
  • Skinning bends 6,8906{,}890 vertices from those numbers differentiably.
  • SMPL-X adds hands and face on one full-body rig.
  • Do not regress raw vertices when a prior exists; use the parameters.
  • Ten shape dials cover most adult variation for fitting.