Head rework — review page (2026-11-04)
This page is the review checkpoint for the NPC head rework. The goal was to replace the sphere-and-floating-primitive face with a head that has real nose / chin / jaw landmarks at portrait distance.
What changed
The original procedural face is a head sphere plus separate nose, mouth, ear and eye primitives. The new head uses the decimated MakeHuman head (CC0, 1,573 tris) as the base shape and keeps the project's separate eyeballs, brow and mouth pieces on top. An AI judge was used to drive the decision: it scored the procedural rework at ~3/5 and then picked the MakeHuman head as the clearer silhouette.
| Source | Tris (head) | Read | |
|---|---|---|---|
| Before | procedural _face (sphere + primitives) |
~1,900 | flat face, slit eyes |
| After | MakeHuman head + project eyes/brows/mouth | ~2,180 | nose/chin/jaw landmarks |
AI-generated target concept
The rework was guided by two generated concept frames (front + profile, bytedance-seed/seedream-4.5).
1.85 m comparison (top = current, bottom = new)
Left to right: front, three-quarter, profile.
New head at 1.5 m (portrait)
Contract and checks
blender_assets.py inspecton the assemblednpc_casualwith the new head: 14 bones, skinned, no issues.- Source:
assets/models/blender_src/makehuman_head.glb(CC0, attributed inCREDITS.md). - Python 167/167, Godot 277/277,
check_docsOK.
Remaining polish (known, not blockers)
- The hair cap still reads as a stepped block instead of hugging the skull.
- The brows weld to the face but can read as a slightly separate bar.
- The neck underside cap is plain; it is hidden by the body neck in the assembled character.
Decision needed
Approve or reject the MakeHuman-head direction. If approved, the next step is rolling it into the other 11 variants (one asset family at a time) with a before/after sheet per batch, and re-running the 24-NPC budget + AO bake.


