Document the texel/coverage/collider gates and correct the face limitation note
Full build / Import + headless tests (push) Successful in 48s
Full build / Full desktop build + optional release (push) Skipped

This commit is contained in:
zwitschi committed 2026-11-03 20:12:43 +01:00
1 parent a51dae2c33
commit 55339f23c1
2 files changed
+23 -8

No files matched your search

+9 -3
View File
@@ -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. - [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 (`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.) `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`, - [x] Document the new gates: `docs/blender-assets.md` now lists `texels`, the
`docs/architecture.md` and `AGENTS.md` with the skill routes and the new gates. `test_model_review.py` coverage gate and the `test_world.gd` collider/proxy gate; skill
- [ ] Record accepted limits and deferred rebuilds in `docs/known-limitations.md` and `MEMORY.md`. 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 **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 supplement the stylized venue geometry with licensed OpenStreetMap footprints, 3D building
+14 -5
View File
@@ -47,6 +47,7 @@ flatpak run org.blender.Blender --background \
python3 tools/blender_assets.py sheet # -> docs/blender_previews/sheet_<category>.jpg python3 tools/blender_assets.py sheet # -> docs/blender_previews/sheet_<category>.jpg
python3 tools/blender_assets.py audit # stdlib only; exit 1 on any issue 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 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 python3 tools/blender_assets.py list
# import a GLB, apply node transforms, report geometry/bones/UVs/skinning + contract failures # import a GLB, apply node transforms, report geometry/bones/UVs/skinning + contract failures
flatpak run org.blender.Blender --background \ 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 triangles), grounding, and an editable `.blend`. For characters it also
checks skinning, bones, slots, the `npc_base` mesh node and the height. checks skinning, bones, slots, the `npc_base` mesh node and the height.
- `tools/tests/test_blender_assets.py`: catalogue and contract consistency with - `tools/tests/test_blender_assets.py`: catalogue and contract consistency with
`npc_pipeline.py`, plus a clean audit and full manifest coverage when the `npc_pipeline.py`, plus a clean audit, a texel-density gate (all five slots,
library is built. 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 - `src/test/tests/test_blender_assets.gd`: every asset imports as a scene
with geometry, characters keep their bones and slots, joints match with geometry, characters keep their bones and slots, joints match
`npc_base`, the bones accept `NpcAvatar`'s pose composition, and props are `npc_base`, the bones accept `NpcAvatar`'s pose composition, and props are
grounded. 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 ## Known limitations
@@ -209,6 +216,8 @@ carry baked AO and the shared neutral material maps described above.
stay neutral. stay neutral.
- The 0.9.4 baseline found three P1 portrait issues. The tourist's photo prop - 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 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. flattened chest bands. The face carries the 0.9.4 sculpt (socketed sclera,
The full ranked list, measurements and before/after sheet are in chin/cheekbone, nose, lips) but its `seg=18/rings=12` head still reads
[`npc-visual-review.md`](npc-visual-review.md). 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).