From 0b2f124ffee017900edd89e0ff77518e1c8bed77 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Wed, 4 Nov 2026 15:19:10 +0100 Subject: [PATCH] Record the MakeHuman-head build outcome in the review doc and TODO --- TODO.md | 12 ++++++------ docs/3d-model-review.md | 7 +++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/TODO.md b/TODO.md index 7a209d6..a914b8d 100644 --- a/TODO.md +++ b/TODO.md @@ -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 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. - `tools/npc_parts.py build --part head_proto` built the displacement shell (sockets, nose, - lips, chin, brow, ears) but the AI-judged rework (concept + judge, see - `docs/3d-model-review.md` §AI-driven head rework) shows it oscillates between "egg" and - "spiky" at ~3/5. The judge's decisive result: **ship the decimated MakeHuman head** - (1,573 tris, nose/chin/jaw landmarks) plus the project's separate eye/mouth/brow pieces. The - displacement `_head_proto` is a rejected variant; the MakeHuman head is the new base. + Outcome (AI-judged, 2026-11-04): the displacement shell oscillated egg/spiky at ~3/5; the + judge picked the **decimated MakeHuman head**. That head is now built as `_makehuman_head` + (`build_character(head="mh")`, `npc_parts.py build --part head_mh`): committed CC0 source + `assets/models/blender_src/makehuman_head.glb` + project sclera/iris/lids/brows/mouth; + assembled `npc_casual` passes `inspect` (14 bones, no issues). Remaining polish: weld the + 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 1.5 m portrait. Pick the variant that reads best before changing all 12 characters; keep the rejected variants local. diff --git a/docs/3d-model-review.md b/docs/3d-model-review.md index 2c5b6dc..a8a31ee 100644 --- a/docs/3d-model-review.md +++ b/docs/3d-model-review.md @@ -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 `_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) Three `head_proto` variants at UV-sphere segments 24/48/64 were rendered at 1.85 m and 1.5 m in