Record the MakeHuman-head build outcome in the review doc and TODO
Full build / Import + headless tests (push) Successful in 46s
Full build / Full desktop build + optional release (push) Skipped

This commit is contained in:
zwitschi committed 2026-11-04 15:19:10 +01:00
1 parent cdd2e02564
commit 0b2f124ffe
2 files changed
+13 -6

No files matched your search

+6 -6
View File
@@ -86,12 +86,12 @@ the rest of §C remains the broad review checklist.
geometry — not a sphere with floating facial balls. Use loop-based eye sockets/lids, a geometry — not a sphere with floating facial balls. Use loop-based eye sockets/lids, a
readable nose bridge/tip/ala, a mouth with upper/lower lip volumes, ears with concha depth, readable nose bridge/tip/ala, a mouth with upper/lower lip volumes, ears with concha depth,
and brow/cheek/jaw planes that survive the 256² AO bake. and brow/cheek/jaw planes that survive the 256² AO bake.
`tools/npc_parts.py build --part head_proto` built the displacement shell (sockets, nose, Outcome (AI-judged, 2026-11-04): the displacement shell oscillated egg/spiky at ~3/5; the
lips, chin, brow, ears) but the AI-judged rework (concept + judge, see judge picked the **decimated MakeHuman head**. That head is now built as `_makehuman_head`
`docs/3d-model-review.md` §AI-driven head rework) shows it oscillates between "egg" and (`build_character(head="mh")`, `npc_parts.py build --part head_mh`): committed CC0 source
"spiky" at ~3/5. The judge's decisive result: **ship the decimated MakeHuman head** `assets/models/blender_src/makehuman_head.glb` + project sclera/iris/lids/brows/mouth;
(1,573 tris, nose/chin/jaw landmarks) plus the project's separate eye/mouth/brow pieces. The assembled `npc_casual` passes `inspect` (14 bones, no issues). Remaining polish: weld the
displacement `_head_proto` is a rejected variant; the MakeHuman head is the new base. eye/brow pieces into the head shell and add a skull-conforming hair cap (owner-gated rollout).
- [x] Compare two or three subdivision/loop variants at 1.85 m front/three-quarter/profile and a - [x] Compare two or three subdivision/loop variants at 1.85 m front/three-quarter/profile and a
1.5 m portrait. Pick the variant that reads best before changing all 12 characters; keep the 1.5 m portrait. Pick the variant that reads best before changing all 12 characters; keep the
rejected variants local. rejected variants local.
+7
View File
@@ -250,6 +250,13 @@ it keeps the nose/chin/jaw landmarks at a fraction of the cost, while the proced
separate eye/mouth/brow pieces for readability, not the displacement shell. The displacement separate eye/mouth/brow pieces for readability, not the displacement shell. The displacement
`_head_proto` stays local as a rejected variant. `_head_proto` stays local as a rejected variant.
**Built (2026-11-04):** `_makehuman_head` in `blender_assets.py` imports the committed
`assets/models/blender_src/makehuman_head.glb` (CC0, attributed in `CREDITS.md`), collapses it to
one skin slot, bisects + caps the ragged neck, and adds the project sclera/iris/lids/brows/mouth
at the MakeHuman landmarks. `build_character(name, head="mh")` assembles it; the result passes
`inspect` (14 bones, skinned, no issues). The judge reads the face ~3.5/5; remaining polish is
welding the added eye/brow pieces into the head shell and a skull-conforming hair cap.
### Head subdivision comparison (2026-11-04) ### Head subdivision comparison (2026-11-04)
Three `head_proto` variants at UV-sphere segments 24/48/64 were rendered at 1.85 m and 1.5 m in Three `head_proto` variants at UV-sphere segments 24/48/64 were rendered at 1.85 m and 1.5 m in