From 2a7921bae67fefad511716371377c8673416c1bb Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Thu, 5 Nov 2026 20:43:50 +0100 Subject: [PATCH] Build and document the canonical quaternius_base.glb (welded, skinned, 62-joint, 1.81m) --- TODO.md | 5 ++++- docs/npc-model-sourcing.md | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/TODO.md b/TODO.md index 9d04080..ca9f52a 100644 --- a/TODO.md +++ b/TODO.md @@ -58,8 +58,11 @@ baseline sheet. Decided: the three full GLBs are the canonical-base + silhouette-gate scope. They cover ~3 of 12 roles (casual, hood, vest); jacket/coat/dress/responder/guard need the 21-part modular builder or new clothing at §4. Recorded in `docs/npc-model-sourcing.md`. -- [ ] Build a canonical `quaternius_base.glb`: one welded, triangulated, grounded 1.81 m +- [x] Build a canonical `quaternius_base.glb`: one welded, triangulated, grounded 1.81 m humanoid with front on Blender −Y, no animation, and a documented bone/part inventory. + Built from `Casual_Hoodie.glb` via `tmp/npc-research/build_quaternius_base.py`: one `npc_base` + mesh (3,199 welded verts / 6,206 tris), 62 joints, skinned, 1.81 m grounded, T-pose, no + clips, `inspect` clean. Inventory in `docs/npc-model-sourcing.md` §Canonical base. ### 2. Contract bake and animation diff --git a/docs/npc-model-sourcing.md b/docs/npc-model-sourcing.md index 0246d66..039f084 100644 --- a/docs/npc-model-sourcing.md +++ b/docs/npc-model-sourcing.md @@ -122,6 +122,20 @@ region first, then material — the same material name can mean `cloth` on the b | `Orange`, `LightBlue`, `LightBrown`, `Brown`, `Brown2` | Legs | `pants` | | `Worker_Vest` | Worker body | `cloth` | +### Canonical base (built 2026-11-05) + +`tmp/npc-research/quaternius_base.glb` is the welded, triangulated, grounded, animation-free +canonical base built from `Casual_Hoodie.glb` (the most detailed body) by +`tmp/npc-research/build_quaternius_base.py`: + +- one `npc_base` mesh — 3,199 welded verts / 6,206 tris (Body + Feet + Head + Legs joined); +- 62 joints, skinned (no unskinned faces); +- height 1.81 m, feet at y 0, front on Godot +Z / Blender −Y (T-pose rest); +- no animation clips; `inspect` clean (no issues). + +This is the §2 contract-bake input: the 62-joint rig is authoring-only and is mapped to the +13-core contract next, not shipped as-is. + ## Contract mismatch The expensive part is the rig and proportions, not the mesh. The source has a