diff --git a/TODO.md b/TODO.md index 108b6c9..903a615 100644 --- a/TODO.md +++ b/TODO.md @@ -285,9 +285,15 @@ and never ship a generated or downloaded image without provenance. - [x] Add a coverage test so every catalogue asset has a scorecard row and verdict. (`tools/test_model_review.py`: every `CHARACTERS`/`GEAR`/`PROPS` entry needs a row in `docs/3d-model-review.md`, and character rows need a non-empty verdict.) -- [ ] Update `docs/blender-assets.md`, `docs/npc-visual-review.md`, `docs/3d-model-review.md`, - `docs/architecture.md` and `AGENTS.md` with the skill routes and the new gates. -- [ ] Record accepted limits and deferred rebuilds in `docs/known-limitations.md` and `MEMORY.md`. +- [x] Document the new gates: `docs/blender-assets.md` now lists `texels`, the + `test_model_review.py` coverage gate and the `test_world.gd` collider/proxy gate; skill + routes live in `AGENTS.md` §Local Blender skills and each `TODO.md` section; the scorecard + and evidence table are in `docs/3d-model-review.md`. +- [x] Record accepted limits/deferred rebuilds: `docs/known-limitations.md` already records the + stylized low-poly style, no finger-curl rig and the >26 m impostor; `MEMORY.md` holds the + durable decisions (texel density accepted, cloth sim out of scope, open palm + forward + offset, face subdivision prototype gated on the owner). The corrected face note is also in + `docs/blender-assets.md`. **Local map workstreams (H–M).** Build a local, data-backed map pipeline that can replace or supplement the stylized venue geometry with licensed OpenStreetMap footprints, 3D building diff --git a/docs/blender-assets.md b/docs/blender-assets.md index cfb7b5d..3be54a6 100644 --- a/docs/blender-assets.md +++ b/docs/blender-assets.md @@ -47,6 +47,7 @@ flatpak run org.blender.Blender --background \ python3 tools/blender_assets.py sheet # -> docs/blender_previews/sheet_.jpg python3 tools/blender_assets.py audit # stdlib only; exit 1 on any issue python3 tools/blender_assets.py fit # head/clothing fit + bag-body clearance, per character +python3 tools/blender_assets.py texels # 256² slot-map density (authored + 4× fabric), per character python3 tools/blender_assets.py list # import a GLB, apply node transforms, report geometry/bones/UVs/skinning + contract failures flatpak run org.blender.Blender --background \ @@ -188,12 +189,18 @@ carry baked AO and the shared neutral material maps described above. triangles), grounding, and an editable `.blend`. For characters it also checks skinning, bones, slots, the `npc_base` mesh node and the height. - `tools/tests/test_blender_assets.py`: catalogue and contract consistency with - `npc_pipeline.py`, plus a clean audit and full manifest coverage when the - library is built. + `npc_pipeline.py`, plus a clean audit, a texel-density gate (all five slots, + 40–400 px/m authored, 250 px/m fabric floor) and full manifest coverage when + the library is built. - `src/test/tests/test_blender_assets.gd`: every asset imports as a scene with geometry, characters keep their bones and slots, joints match `npc_base`, the bones accept `NpcAvatar`'s pose composition, and props are grounded. +- `tools/test_model_review.py`: every `CHARACTERS`/`GEAR`/`PROPS` entry has a + scorecard row and verdict in `docs/3d-model-review.md` (coverage gate). +- `src/test/tests/test_world.gd`: every library prop that blocks walking has a + `StaticBody3D` + `NavigationObstacle3D`, checked against the catalogue + (collider/proxy gate). ## Known limitations @@ -209,6 +216,8 @@ carry baked AO and the shared neutral material maps described above. stay neutral. - The 0.9.4 baseline found three P1 portrait issues. The tourist's photo prop now only appears in photo/film poses and the backpack straps were refit as - flattened chest bands; the face is still shallow/faceted at portrait range. - The full ranked list, measurements and before/after sheet are in - [`npc-visual-review.md`](npc-visual-review.md). + flattened chest bands. The face carries the 0.9.4 sculpt (socketed sclera, + chin/cheekbone, nose, lips) but its `seg=18/rings=12` head still reads + somewhat faceted at portrait range; a subdivision/deeper-sculpt prototype is + gated on the owner scorecard review. The full ranked list and measurements are + in [`npc-visual-review.md`](npc-visual-review.md).