diff --git a/MEMORY.md b/MEMORY.md index 81e3cb0..3667039 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -193,6 +193,54 @@ canonical implemented-features list in `docs/development-status.md`. - Localization target languages beyond English. - macOS notarization approach for broad distribution. +## Handoff + +### 2026-11-05 — NPC plan pivot and tmp cleanup + +**What changed:** the NPC character direction was rewritten around the researched CC0 +Quaternius character. ADR-0017 supersedes the generator-first decision in ADR-0015. `PLAN.md`, +`TODO.md`, `MEMORY.md`, `README.md`, `CREDITS.md`, the architecture/asset/review docs and the +docs index now point to the Quaternius base. The old MPFB/MakeHuman body tracks were closed and +their plans removed from `TODO.md`; the MakeHuman head and procedural `npc_base` remain tested +fallbacks only. + +**Cleanup:** `tmp/` was reduced from ~2.9 GB to 4.7 MB. Removed the MPFB/MakeHuman scripts, +review renders, map scratch output and logs. Kept only the three researched Quaternius GLBs, +the Quaternius mirror HTML/README/licence, `prototype_quaternius.py`, and a local +`tmp/npc-research/quaternius/README.md` with hashes and re-download links. Do not delete that +folder while the migration is active. + +**Implementation status:** planning and documentation only. No character GLB, code, manifest, +AO map or test was changed. The 12 shipped NPC GLBs still use the old procedural bodies. + +**Next task (start here):** `TODO.md` → *Quaternius NPC base migration* → §1 Intake and +canonical base. First concrete step: inventory the four meshes, 62 joints, 24 clips and +material names in each of the three GLBs, then build a welded, grounded, animation-free +`quaternius_base.glb` at 1.81 m with front on Blender −Y. + +**Main risk:** the source is a 62-joint T-pose with realistic proportions (research measured +~0.96 m hip, ~1.68 m arm span, ~0.153 m shoulder offset), while the runtime contract is an +arm-down 13-core rig with a 0.62 m hip and 0.27 m wrist targets. The Stage 1 proportion warp is +the make-or-break step. Judge the Quaternius result directly; do not reuse the old MPFB arm +warp. If the warp fails the silhouette/gear gate, stop and write the Stage 2 62-joint ADR. + +**Key paths:** +- Source GLBs: `tmp/npc-research/quaternius/{Casual,Casual_Hoodie,Worker}.glb` +- Source hashes and inventory: `docs/npc-model-sourcing.md` +- Decision: `docs/adr/0017-quaternius-npc-base.md` +- Contract: `docs/architecture.md#character-and-gear-asset-contract` +- Runtime selector/fallback: `src/game/npc_avatar.gd`, `assets/models/blender/` +- Current library builder/fallback: `tools/blender_assets.py`, `tools/npc_pipeline.py`, + `assets/models/generated/npc_base.glb` + +**Useful checks:** `python3 tools/check_docs.py`; `pytest -q tools/tests`; +`python3 tools/blender_assets.py audit|fit`; Blender headless: +`flatpak run org.blender.Blender --background --python "$PWD/tools/blender_assets.py" -- inspect --category npc --file "$PWD/.glb"`. +This session ran `check_docs` and `git diff --check` after the doc rewrite; Python tests were +last green at 167/167. Godot tests were not rerun because no runtime file changed. + +**Commit:** `2c90743 Rewrite NPC plans around the Quaternius base`. Working tree clean. + ## Current State The playable build covers the three venues, tutorial/campaign/checkpoints, the 0.9.3–0.9.6 @@ -201,7 +249,9 @@ polish/texture/integration passes and the Blender + realism asset pipeline (see Comedy Store map rebuild are complete. **Priority (2026-11-05, owner):** 1) the **Quaternius NPC base migration** (bake the CC0 Quaternius character to the runtime contract), 2) the 3D model and map improvements, 3) ship it all together in the **0.10.0 minor**. The 0.9.7/0.9.8 -character patches are published; `TODO.md` is the priority source. Test counts as of 2026-11-04: -Godot 277/277, Python 167/167, `check_docs` OK. +character patches are published; `TODO.md` is the priority source. The active implementation is +the Quaternius base migration (ADR-0017); planning/docs were rewritten and `tmp/` cleaned on +2026-11-05, but no character GLB has been rebuilt yet. Test counts as of 2026-11-05: Python +167/167 (last run), Godot 277/277 (last run before the docs-only pivot), `check_docs` OK.