← all repositories
Rubikplayer/flame-fitting

A parametric face model that actually moves its jaw

Reference implementation for FLAME, a 3D head model with articulated neck, jaw, and eyeballs—not just a static mesh.

flame-fitting
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does

This repo holds the official Python implementation of FLAME, a learned 3D head model built from 33,000+ aligned scans. It ships with three demos: sample random heads, fit the model to 51 3D facial landmarks, or fit it to a full 3D scan. The code is essentially a teaching tool and baseline—you bring your own data and do your own optimization.

The interesting bit

Most morphable face models are just shape and expression sliders. FLAME adds an articulated skeleton: neck, jaw, and eyeballs actually rotate, with pose-dependent corrective blendshapes to keep things from looking rubbery. That makes it the face counterpart to SMPL-X’s body model, which is why you’ll see it powering everything from voice-driven animation (VOCA) to single-image face reconstruction (DECA, RingNet).

Key highlights

  • Trained identity space on 3,800 subjects; expression space from 4D scan sequences
  • Three working demos: hello_world.py, fit_lmk3d.py, fit_scan.py
  • 51-landmark protocol with annotated reference image; landmarks must be in exact order
  • Supports unit conversion (m, cm, mm, or unknown) when fitting raw scans
  • Model download requires license agreement via MPI-IS website

Caveats

  • Depends on chumpy (NumPy-autograd hybrid) and a C++ mesh-distance module requiring manual Eigen path editing and make
  • Python 3.6.9 tested; no claims about modern Python compatibility
  • Scan fitting needs scan and model in the same local coordinate system—no automatic alignment magic

Verdict

Grab this if you’re building a face pipeline and need a principled, cited baseline with anatomically plausible jaw motion. Skip it if you want a batteries-included, one-click face reconstructor; the TensorFlow and PyTorch forks linked in the README are likely kinder to modern workflows.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.