From f575bc82a8c718705f8f674314ae464462f5235f Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Sat, 7 Nov 2026 12:28:38 +0100 Subject: [PATCH] docs: release the geo claim and record the tooling traps --- MEMORY.md | 7 +++++++ ROADMAP.md | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/MEMORY.md b/MEMORY.md index 4318f5f..ef37755 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -113,3 +113,10 @@ Scope: facts and traps that cost time to establish. Planned work lives in [ROADM - **Its AI concept frames are restaged photograph references** (`.refgen.json` sidecars point at photos with a "keep geometry fixed" suffix). Useful as art direction, not as texture sources. - **Blosm exposes `setupScript`** (`scene.blosm.setupScript` → `loadSetupScript`) for custom building materials, and ships `setup/neoclassical.py` as an example — the hook for giving OSM buildings a per-building facade style instead of flat colours. +## 2026-11-07 — Geo tooling layout + +- **One conversion, one place.** `Geo/tools/osm_common.py::to_unreal_local` is the only metres→centimetres conversion; every exporter calls it. `os_common` also needed an explicit `import os` at module level — a helper defined with a function-local import list crashed with `NameError: os` when called from a fresh interpreter. +- **`asset_metadata.py audit` must recurse.** Sidecars sit next to their `.blend`, which is one level below `Art/blender/`; a flat `glob` found nothing and reported "0 sidecars, 0 problems" — a green result that meant "did not look". +- **Blender-side builders live in `Art/blender/*/`** (terrain, street, site, blockout) and reach helpers via `os.path.join(HERE, "..","..","..","Geo","tools")`. Moving them breaks the old `"..", "Geo", "scripts"` path silently until the script is run. +- **Height provenance:** 3 of the 15 block buildings carry no OSM height and Blosm renders them at a placeholder 6.4 m. `Geo/tools/block_height_report.py` lists them; they need heights measured off the photographs before the skyline is believable. + diff --git a/ROADMAP.md b/ROADMAP.md index 7544f2f..9858c75 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -42,7 +42,7 @@ Status detail in [Docs/setup.md](Docs/setup.md); pins in [Docs/toolchain.md](Doc - [x] Export one MPFB character with baked materials and deform skeleton; verify import. 2026-11-07: MPFB 2.0.18 generated human (19 158 verts, 1.66 m tall) + standard rig with weights (137 bones) + v2 skin baked to a 1024² diffuse texture (`Tools/mpfb_character_export.py`, export preset `ue_character_v1`). Imported headless (`Tools/ue_character_import.py`) into `/Game/Test/Character`: `SkeletalMesh` + 138-bone `Skeleton` + `Material` with the baked `Texture2D` assigned to slot 0. Quirks recorded: 5.8 Interchange skips materials for skeletal FBX imports (finished in script); Blender 5.2 dropped the FBX `armature_nla` option; the baked image needs `image.filepath` set for FBX to reference it. - [x] Document initial setup in `Docs/`: engine install, project checkout, fresh-checkout build procedure. 2026-11-07: `Docs/setup.md` reconciled with reality (all engine/bootstrap items marked done with evidence); `Docs/build.md` completed with the fresh-checkout build, packaging, and headless-content-check procedures plus known engine quirks. -### Geographic data — active — gig-line-geo +### Geographic data Tools ported 2026-11-07: every geographic script now lives in `Geo/tools/` with `Geo/README.md` listing its purpose, and the Blender-side builders moved next to their outputs in `Art/blender/*/`, importing the shared helpers and the single unit conversion from `Geo/tools/osm_common.py`.