Record the NPC vertex-cap constraint
Full build / Import + headless tests (push) Successful in 36s
Full build / Full desktop build + optional release (push) Skipped

This commit is contained in:
zwitschi committed 2026-11-02 19:22:34 +01:00
1 parent 8ce62e7556
commit cd5e0e0ff7
2 files changed
+16 -2

No files matched your search

+11 -2
View File
@@ -6,6 +6,14 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o
- The visual-alignment path/loader/panel/HUD work and the realism lighting pass are complete and - The visual-alignment path/loader/panel/HUD work and the realism lighting pass are complete and
recorded in `DONE.md`; remaining visual items are the realism follow-ups in `TODO.md`. recorded in `DONE.md`; remaining visual items are the realism follow-ups in `TODO.md`.
- **Character vertex cap (2026-11-02):** the current **5,000 glTF vertices per character** limit is
now the binding realism constraint, not a design rule. `npc_firefighter` is at **4,948** after
the hand pass, leaving no room for better eyelids, nose/lip/ear shaping, hand grips or clothing
seams. The cap needs to be raised for the next realism pass; proposed **6,000 vertices** (and
revisit the 6,000-triangle cap in the same change). Update `CHAR_MAX_VERTS`/`CHAR_MAX_TRIS`, the
contract tests, `blender_assets.py audit`, `docs/npc-visual-review.md`, and re-run the 24-NPC and
Web/Compatibility budgets before accepting the new limit. Do not treat 5,000 as a hard product
constraint.
- `PLAN.md` is a compact product/design document, not an implementation log. Historical control - `PLAN.md` is a compact product/design document, not an implementation log. Historical control
and v0.3.0 specs were folded into its Presentation and Controls section; put new step-by-step and v0.3.0 specs were folded into its Presentation and Controls section; put new step-by-step
work in `TODO.md`, not the plan. work in `TODO.md`, not the plan.
@@ -93,8 +101,9 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o
- **NPC hand pass (0.9.4, 2026-11-02):** palm radius 0.046 at z .742, scale (.80,.62,.88); - **NPC hand pass (0.9.4, 2026-11-02):** palm radius 0.046 at z .742, scale (.80,.62,.88);
fingers are `tube` paths from z .758 to .681–.694 with tip spheres, thumb is a bent tube. The fingers are `tube` paths from z .758 to .681–.694 with tip spheres, thumb is a bent tube. The
optional hand capture is `capture_npc_baseline.gd -- --view=hand` (8 frames, baseline stays 48). optional hand capture is `capture_npc_baseline.gd -- --view=hand` (8 frames, baseline stays 48).
`npc_firefighter` is now at 4,948 verts (52 below the 5,000 cap); do not add hand/face geometry `npc_firefighter` is now at 4,948 verts (52 below the current 5,000 cap); the cap is provisional
without replacing something. Grip offsets remain open. and needs raising for further realism (see the character-vertex-cap decision above). Grip
offsets remain open.
- **UI flow smoke (2026-11-02):** `smoke_ui_flows.gd` boots the real scene and - **UI flow smoke (2026-11-02):** `smoke_ui_flows.gd` boots the real scene and
exercises inspection allow/deny, normal vs emergency radio, Help filtering, exercises inspection allow/deny, normal vs emergency radio, Help filtering,
wand allow/deny and review return-to-menu. Keep this smoke in the 0.9.6 wand allow/deny and review return-to-menu. Keep this smoke in the 0.9.6
+5
View File
@@ -82,6 +82,11 @@ and equipment fit.
### Body proportions and silhouette ### Body proportions and silhouette
- [ ] Evaluate raising the per-character glTF vertex cap from 5,000 (and revisit the 6,000-triangle
cap) because `npc_firefighter` is at 4,948 verts after the hand pass. If accepted, update
`CHAR_MAX_VERTS`/`CHAR_MAX_TRIS`, the contract tests, `blender_assets.py audit`,
`docs/npc-visual-review.md`, and re-run the 24-NPC and Web/Compatibility budgets.
- [x] Audit all variants against a shared human proportion guide (head height, shoulder width, - [x] Audit all variants against a shared human proportion guide (head height, shoulder width,
torso length, hip width, limb length, foot length) and correct the worst outliers. torso length, hip width, limb length, foot length) and correct the worst outliers.
(`tools/npc_proportions.py` + `docs/npc-proportion-audit.md`: all eight pass; no skeleton or (`tools/npc_proportions.py` + `docs/npc-proportion-audit.md`: all eight pass; no skeleton or