Reorganize docs into category folders and drop the retired head-review page
Group the top-level docs into docs/project, docs/design, docs/assets and docs/process, each with its own README index. Delete the superseded docs/screens/head-review page and sheets. Rewrite every markdown link, absolute docs path and tool/test reference to the new locations, fix the pre-existing broken anchors and remove the dead Joke Shop photo-board link. check_docs OK, Python tooling 167/167.
This commit is contained in:
1 parent
045ed2a58f
commit
2ba40f3578
57 files changed
+406
-414
No files matched your search
+31
-30
@@ -1,42 +1,43 @@
|
||||
# Gig Line Documentation
|
||||
|
||||
This folder holds the project documentation, visual references and generated QA evidence.
|
||||
Documentation is grouped by category. Product intent, the gap analysis and the release roadmap
|
||||
live in [`../PLAN.md`](../PLAN.md); the executable task list is [`../TODO.md`](../TODO.md); the
|
||||
workflow rules are in [`../AGENTS.md`](../AGENTS.md).
|
||||
|
||||
## Current priorities
|
||||
## Categories
|
||||
|
||||
1. [Quaternius NPC base migration](../TODO.md#quaternius-npc-base-migration-top-priority) — CC0 Quaternius mesh/animation source baked to the 24,000-budget runtime contract.
|
||||
2. [3D model and local map improvements](../TODO.md#3d-model-and-local-map-re-evaluation) — asset re-evaluation and local map reconstruction.
|
||||
3. [0.10.0 release candidate](../TODO.md#milestone-0100--3d-model-and-map-improvements-minor) — versioned release hardening after the unversioned development tracks.
|
||||
| Folder | Contents |
|
||||
| --- | --- |
|
||||
| [`project/`](project/README.md) | Architecture (arc42) and the implemented-features status |
|
||||
| [`design/`](design/README.md) | Gameplay, venues, UI copy, accessibility and known limitations |
|
||||
| [`assets/`](assets/README.md) | Blender library, asset tooling, NPC sourcing and the 3D model review |
|
||||
| [`process/`](process/README.md) | Setup/controls, release QA and the release runbook |
|
||||
| [`adr/`](adr/README.md) | Architecture Decision Records |
|
||||
| [`screens/`](screens/README.md) | Licensed references, concepts and screen designs |
|
||||
| [`blender_previews/`](blender_previews/README.md) | Committed character/gear/prop preview sheets |
|
||||
| [`screenshots/`](screenshots/README.md) | The committed in-game gallery |
|
||||
|
||||
## Start here
|
||||
|
||||
- [`../PLAN.md`](../PLAN.md) — product, design intent and development priorities
|
||||
- [`../TODO.md`](../TODO.md) — priority-ordered active tasks and roadmap
|
||||
- [`npc-model-sourcing.md`](npc-model-sourcing.md) — character-source evaluation, licence rules and the character-development plan
|
||||
- [`makehuman-head-review.md`](makehuman-head-review.md) — retained MakeHuman fallback head, provenance and review verdict
|
||||
- [`architecture.md`](architecture.md) — arc42 system architecture
|
||||
- [`getting-started.md`](getting-started.md) — setup, run/test commands and controls
|
||||
- [`asset-tooling.md`](asset-tooling.md) — image/model pipelines and screenshot gates
|
||||
- [`../tools/README.md`](../tools/README.md) — tool inventory, categories and test runner
|
||||
- [`gameplay.md`](gameplay.md) — controls, venues and escalation
|
||||
- [`venues.md`](venues.md) — Hollywood, Joke Shop and TV Studio real-site mapping
|
||||
- [`3d-model-review.md`](3d-model-review.md) — 3D model re-evaluation: measurements, scorecard and ranked gaps
|
||||
- [`development-status.md`](development-status.md) — implemented features, current gaps and active planning
|
||||
- [`accessibility.md`](accessibility.md) — accessibility statement and known gaps
|
||||
- [`known-limitations.md`](known-limitations.md) — release-candidate blockers and accepted limits
|
||||
- [`release-qa.md`](release-qa.md) — manual smoke checklist and balance-acceptance protocol
|
||||
- [`../CREDITS.md`](../CREDITS.md) — credits and asset provenance
|
||||
- [`../PRIVACY.md`](../PRIVACY.md) — privacy note
|
||||
- [`ui-copy.md`](ui-copy.md) — screen, copy and button inventory
|
||||
- [`RELEASING.md`](RELEASING.md) — export, CI and publishing workflow
|
||||
- [`adr/README.md`](adr/README.md) — architecture decisions
|
||||
- [`../PLAN.md`](../PLAN.md) — product, design pillars, gap analysis and the roadmap to 1.0.0
|
||||
- [`../TODO.md`](../TODO.md) — milestone-ordered active tasks
|
||||
- [`project/architecture.md`](project/architecture.md) — system architecture and ownership
|
||||
- [`project/development-status.md`](project/development-status.md) — what the build supports now
|
||||
- [`design/gameplay.md`](design/gameplay.md) — the playable loop and escalation model
|
||||
- [`design/venues.md`](design/venues.md) — venue mapping and real-site evidence
|
||||
- [`assets/npc-model-sourcing.md`](assets/npc-model-sourcing.md) — the active NPC base and licence
|
||||
rules
|
||||
- [`assets/3d-model-review.md`](assets/3d-model-review.md) — asset measurements and scorecard
|
||||
- [`process/getting-started.md`](process/getting-started.md) — setup, run/test and controls
|
||||
- [`../tools/README.md`](../tools/README.md) — tool inventory and test runner
|
||||
- [`../CREDITS.md`](../CREDITS.md) — credits, AI/reference provenance and licensing
|
||||
- [`../PRIVACY.md`](../PRIVACY.md) — local-only data and save files
|
||||
|
||||
## Visual references
|
||||
## Current work
|
||||
|
||||
- [`screens/README.md`](screens/README.md) — concepts, designs, screenshots and realism runs
|
||||
- [`blender_previews/README.md`](blender_previews/README.md) — character/gear/prop previews
|
||||
- [`screenshots/README.md`](screenshots/README.md) — committed game gallery
|
||||
- [`ui-copy.md`](ui-copy.md#screen-design-judge-report) — screen/button inventory and latest judge result
|
||||
v0.9.9 shipped the Quaternius NPC roster. The active patch line is `0.9.10` (roster follow-ups:
|
||||
outfit families, the Swat base orientation, per-slot atlases) through `0.9.12`, followed by the
|
||||
`0.10.0` public-readiness minor. See [`../TODO.md`](../TODO.md) for the live checklist.
|
||||
|
||||
## Quick preview
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ A review compared free/open-source sources against that contract. Quaternius
|
||||
Ultimate Modular (CC0), Kenney Blocky Characters (CC0), Khronos CesiumMan and
|
||||
RiggedFigure (CC BY 4.0) and the MakeHuman base mesh (CC0) were imported and
|
||||
measured. None was a drop-in; the full results are in
|
||||
[`docs/npc-model-sourcing.md`](../npc-model-sourcing.md).
|
||||
[`docs/assets/npc-model-sourcing.md`](../assets/npc-model-sourcing.md).
|
||||
|
||||
## Decision
|
||||
|
||||
@@ -86,4 +86,4 @@ measured. None was a drop-in; the full results are in
|
||||
- MakeHuman is now an active local development pipeline (body retarget plus project-owned
|
||||
head/hands), while the procedural library remains the shipped path and CI fallback.
|
||||
- Blender MCP is optional interactive tooling only; it is not a build, CI, test or runtime
|
||||
dependency. Setup is in [`docs/asset-tooling.md#optional-interactive-blender-mcp`](../asset-tooling.md#optional-interactive-blender-mcp).
|
||||
dependency. Setup is in [`docs/assets/asset-tooling.md#optional-interactive-blender-mcp`](../assets/asset-tooling.md#optional-interactive-blender-mcp).
|
||||
@@ -16,7 +16,7 @@ The CC0 **Quaternius Ultimate Modular Characters** pack already provides a
|
||||
coherent low-poly human silhouette, 21 modular outfits and 24 animation clips.
|
||||
The researched GLBs (`Casual`, `Casual_Hoodie`, `Worker`) measure 4 meshes, 62
|
||||
joints and 24 clips each. The owner directed that Quaternius become the NPC
|
||||
base. The full evaluation is in [`docs/npc-model-sourcing.md`](../npc-model-sourcing.md).
|
||||
base. The full evaluation is in [`docs/assets/npc-model-sourcing.md`](../assets/npc-model-sourcing.md).
|
||||
|
||||
## Decision
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ ADR-0017 made Quaternius the NPC base and staged the migration: Stage 1 bakes a
|
||||
proportion-warped mesh onto the existing 13-core contract; Stage 2 adopts the
|
||||
62-joint rig at runtime only if the warp fails.
|
||||
|
||||
The Stage 1 proportion warp was executed and measured (`docs/npc-model-sourcing.md`
|
||||
The Stage 1 proportion warp was executed and measured (`docs/assets/npc-model-sourcing.md`
|
||||
§Rest-pose and proportion-warp measurement). The arm-down rest pose bakes cleanly, but the
|
||||
warp to the contract proportions does not:
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 3D model review (2026-11-03)
|
||||
|
||||
Status: **baseline measured; scorecard open.** This is the working document for the unversioned
|
||||
`3D model re-evaluation` track in [`TODO.md`](../TODO.md). It records what was measured, what the
|
||||
`3D model re-evaluation` track in [`TODO.md`](../../TODO.md). It records what was measured, what the
|
||||
Blender skill guidance says the targets are, the ranked candidate gaps, and the decisions that
|
||||
still need the project owner. Nothing here re-opens the accepted 0.9.4 limits by itself.
|
||||
|
||||
@@ -88,7 +88,7 @@ Readings:
|
||||
Recorded for the character baseline before the Quaternius migration. `npc_base.blend` is the
|
||||
frozen fallback; the 12 characters are currently assembled procedurally by
|
||||
`tools/blender_assets.py`. The active plan is now the CC0 Quaternius base bake
|
||||
([ADR-0017](adr/0017-quaternius-npc-base.md)); this section and the MakeHuman notes below are the
|
||||
([ADR-0017](../adr/0017-quaternius-npc-base.md)); this section and the MakeHuman notes below are the
|
||||
pre-migration record. The MPFB/MakeHuman development files were removed from `tmp/` after the
|
||||
2026-11-05 pivot.
|
||||
|
||||
@@ -283,7 +283,7 @@ front/three-quarter/profile and judged side by side:
|
||||
The chosen s48 is the `head_proto` default; the rejected s24/s64 stay local under
|
||||
`tmp/npc-parts/`. A before/after sign-off sheet (current `_face` vs s48, 1.85 m
|
||||
front/three-quarter/profile) is
|
||||
[`blender_previews/sheet_head_proto_before_after.jpg`](blender_previews/sheet_head_proto_before_after.jpg).
|
||||
[`blender_previews/sheet_head_proto_before_after.jpg`](../blender_previews/sheet_head_proto_before_after.jpg).
|
||||
|
||||
## Foliage language P1 — resolved 2026-11-06
|
||||
|
||||
@@ -517,6 +517,6 @@ and the full carded-cluster foliage pass is the one remaining owner-gated P1. No
|
||||
- Review the assembled [`makehuman-head-review.md`](makehuman-head-review.md) prototype (hair cap and full-body silhouette) before rebuilding the 12 shipped character GLBs.
|
||||
|
||||
|
||||
Tracked in [`TODO.md`](../TODO.md) `3D model re-evaluation`: the remaining `A. Baseline…` item is
|
||||
Tracked in [`TODO.md`](../../TODO.md) `3D model re-evaluation`: the remaining `A. Baseline…` item is
|
||||
this owner review; `B`/`C`/`D` carry the per-family work, and `E` adds the pose/weight,
|
||||
collider-coverage and scorecard-coverage gates this document found missing.
|
||||
@@ -0,0 +1,19 @@
|
||||
# Asset Documentation
|
||||
|
||||
Asset contracts, pipelines, sourcing and reviews. These pages own the measured evidence; the
|
||||
executable gates are `tools/blender_assets.py inspect|audit|fit`, `tools/npc_proportions.py` and
|
||||
the capture scripts.
|
||||
|
||||
- [`blender-assets.md`](blender-assets.md) — Blender library operation, the character/gear/prop
|
||||
contract, attach points and rebuild discipline.
|
||||
- [`asset-tooling.md`](asset-tooling.md) — image/model pipelines, the optional Blender MCP setup
|
||||
and the screenshot/vision gates.
|
||||
- [`npc-model-sourcing.md`](npc-model-sourcing.md) — character-source evaluation, licence rules,
|
||||
the Quaternius intake and the active NPC plan.
|
||||
- [`3d-model-review.md`](3d-model-review.md) — measurements, per-asset scorecard, ranked gaps and
|
||||
accepted limits.
|
||||
- [`makehuman-head-review.md`](makehuman-head-review.md) — the retained MakeHuman fallback head,
|
||||
its provenance and the review verdict.
|
||||
|
||||
Up: [`../README.md`](../README.md) · Product plan: [`../../PLAN.md`](../../PLAN.md) · Tasks:
|
||||
[`../../TODO.md`](../../TODO.md).
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Everything the game renders is produced or gated by the scripts below. Architecture-level contracts,
|
||||
data flow and failure fallbacks are summarized in
|
||||
[`architecture.md`](architecture.md#content-and-asset-pipeline-architecture); this page is the
|
||||
[`architecture.md`](../project/architecture.md#content-and-asset-pipeline-architecture); this page is the
|
||||
operational reference. Development-only outputs (AI concept sheets, Blender sources, raw AI fabrics)
|
||||
are gitignored; the audited game assets are committed.
|
||||
|
||||
@@ -72,7 +72,7 @@ colours onto material roles (darkest → metal, warm saturated → wood, light g
|
||||
stone, green → foliage). glTF stores colours in linear space, so the tool converts
|
||||
the sRGB palettes before writing them. Re-run `build` and `godot --headless
|
||||
--path . --import` after changing a prop. See
|
||||
[ADR-0012](adr/0012-surface-materials-and-generated-props.md).
|
||||
[ADR-0012](../adr/0012-surface-materials-and-generated-props.md).
|
||||
|
||||
Surface materials share one definition in `src/game/materials.gd`: named
|
||||
roughness/metallic profiles per surface, plus the environment tune-up (ACES
|
||||
@@ -81,14 +81,14 @@ tonemapping, glow, fog, colour grading) that the phase lighting applies.
|
||||
## NPC character model
|
||||
|
||||
NPCs are moving from the procedural capsule rig to a skinned, UV-mapped base
|
||||
character authored in Blender ([ADR-0013](adr/0013-blender-authored-npc-characters.md)).
|
||||
character authored in Blender ([ADR-0013](../adr/0013-blender-authored-npc-characters.md)).
|
||||
The active base is the CC0 Quaternius modular character, baked to the runtime contract
|
||||
([ADR-0017](adr/0017-quaternius-npc-base.md)).
|
||||
([ADR-0017](../adr/0017-quaternius-npc-base.md)).
|
||||
`tools/npc_pipeline.py` builds `assets/models/generated/npc_base.glb` plus the
|
||||
per-slot material maps. `NpcAvatar` instantiates that skinned model, tints its
|
||||
five material slots from the seed-driven outfit, and drives the bones from the
|
||||
existing animation code; the procedural rig remains the offline fallback (see
|
||||
[ADR-0013](adr/0013-blender-authored-npc-characters.md) and
|
||||
[ADR-0013](../adr/0013-blender-authored-npc-characters.md) and
|
||||
[`blender-assets.md`](blender-assets.md)).
|
||||
|
||||
```bash
|
||||
@@ -138,7 +138,7 @@ the fallback. Kenney/Khronos/MakeHuman remain evaluated references, not active b
|
||||
|
||||
| Characters | Props |
|
||||
| --- | --- |
|
||||
|  |  |
|
||||
|  |  |
|
||||
|
||||
```bash
|
||||
flatpak run org.blender.Blender --background --python "$PWD/tools/blender_assets.py" -- build
|
||||
@@ -246,7 +246,7 @@ gate as `--reference` on `generate`.
|
||||
`tools/refcollect.py` downloads images from DuckDuckGo image search into `tmp/research/<slug>/` for
|
||||
development reference only. It applies **no licence gate** (rows are marked `local_only` /
|
||||
`unchecked-local`); everything it fetches must never be committed or promoted into
|
||||
[`screens/refs/`](screens/refs/README.md) without the normal sidecar licence + privacy gate. This
|
||||
[`screens/refs/`](../screens/refs/README.md) without the normal sidecar licence + privacy gate. This
|
||||
is the owner-authorised local-only override (TODO.md §3D model re-evaluation → A).
|
||||
|
||||
```bash
|
||||
@@ -265,7 +265,7 @@ string); the UA alone is no longer enough to look like a browser.
|
||||
### Reference-board research (`refboard`)
|
||||
|
||||
`tools/refboard.py` searches, fetches and documents Wikimedia Commons photos of a real location for
|
||||
the [`screens/refs/`](screens/refs/README.md) boards. It is stdlib-only and never commits anything
|
||||
the [`screens/refs/`](../screens/refs/README.md) boards. It is stdlib-only and never commits anything
|
||||
itself: downloads land in `tmp/`, and moving a file into a board folder is a deliberate manual step
|
||||
that goes through the sidecar licence gate.
|
||||
|
||||
@@ -322,10 +322,10 @@ their SHA-256 in `CREDITS.md`.
|
||||
|
||||
## Local map development (planned)
|
||||
|
||||
The local map workstreams (H–M) in [`TODO.md`](../TODO.md#3d-model-re-evaluation) are
|
||||
The local map workstreams (H–M) in [`TODO.md`](../../TODO.md#3d-model-and-local-map-re-evaluation) are
|
||||
planned, not implemented; there are no map-generation commands yet. The runtime
|
||||
contract, provenance rules, budget/navigation gates and fallback are in
|
||||
[`architecture.md#venue-implementation-contract`](architecture.md#venue-implementation-contract).
|
||||
[`architecture.md#venue-implementation-contract`](../project/architecture.md#venue-implementation-contract).
|
||||
The detailed pipeline/task list lives in `TODO.md`.
|
||||
|
||||
## Confirmed game assets
|
||||
@@ -335,9 +335,9 @@ Everything below is audited and shipped in the game; development-only outputs
|
||||
|
||||
| | |
|
||||
| --- | --- |
|
||||
|  |  |
|
||||
|  |  |
|
||||
|  |  |
|
||||
|  |  |
|
||||
|  |  |
|
||||
|  |  |
|
||||
|
||||
- **Surface textures:** the v2 picks above (brick, sidewalk pavers, dry and wet asphalt, awning canvas) plus their normal maps, loaded by `src/game/materials.gd` and `WorldBuilder`; the three skyline panoramas are switched per shift phase. The first-generation tiles and `assets/textures/skyline.png` are no longer loaded.
|
||||
- **UI art:** `assets/textures/ai/game_ready/icons/` (flashlight, door lock, wand, REC) and `assets/textures/ai/game_ready/cards/` (ID, wristband, ticket, credential, guest list), loaded by `src/game/ui/hud.gd`.
|
||||
@@ -511,7 +511,7 @@ remain optional interactive exploration; the headless commands stay the build an
|
||||
## Realism pass: scene concepts, skylines and textures
|
||||
|
||||
The skyline, surface tiles and phase lighting were rebuilt against AI concept frames. The
|
||||
concepts live in [`docs/screens/concepts/`](../docs/screens/concepts/README.md); the validated
|
||||
concepts live in [`docs/screens/concepts/`](../screens/concepts/README.md); the validated
|
||||
picks the game loads are in `assets/textures/ai/game_ready/v2/picks/` (day/dusk/night
|
||||
panoramas, brick, sidewalk pavers, dry and wet asphalt, awning canvas, each with a normal
|
||||
map).
|
||||
@@ -633,7 +633,7 @@ texture detail 1.2, backdrop 2.0 and characters 1.2; the Pillow metric gap was
|
||||
particularly lit night facades and dense backdrop detail. That is expected: the
|
||||
pass validated close-range surfaces and promoted the texture repairs, not a
|
||||
photoreal renderer. The 0.9.5 before/after close-up sheet is
|
||||
[`blender_previews/sheet_texture_refinement_0.9.5.jpg`](blender_previews/sheet_texture_refinement_0.9.5.jpg);
|
||||
[`blender_previews/sheet_texture_refinement_0.9.5.jpg`](../blender_previews/sheet_texture_refinement_0.9.5.jpg);
|
||||
the texture-adoption run itself was the earlier 0.8-style candidate comparison,
|
||||
and its report remains local/gitignored.
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
# Blender asset library
|
||||
|
||||
Architecture context: the asset contracts and fallback path are summarized in
|
||||
[`architecture.md`](architecture.md#content-and-asset-pipeline-architecture).
|
||||
[`architecture.md`](../project/architecture.md#content-and-asset-pipeline-architecture).
|
||||
|
||||
Status: built, audited, and integrated (2026-11-01). The active character migration
|
||||
replaces the procedural body with a baked CC0 Quaternius base
|
||||
([ADR-0017](adr/0017-quaternius-npc-base.md)); the current library remains the shipped
|
||||
([ADR-0017](../adr/0017-quaternius-npc-base.md)); the current library remains the shipped
|
||||
fallback until the Quaternius 12-variant baseline passes review. `NpcAvatar` selects the
|
||||
character variants and attaches the gear; `WorldBuilder` loads the prop library
|
||||
with colliders and phase-driven emissives. The 0.9.4 neutral baseline and its
|
||||
acceptance criteria are in [`architecture.md`](architecture.md#character-and-gear-asset-contract);
|
||||
acceptance criteria are in [`architecture.md`](../project/architecture.md#character-and-gear-asset-contract);
|
||||
the committed 8 × 6 contact sheet is
|
||||
[`blender_previews/sheet_npc_baseline.jpg`](blender_previews/sheet_npc_baseline.jpg).
|
||||
[`blender_previews/sheet_npc_baseline.jpg`](../blender_previews/sheet_npc_baseline.jpg).
|
||||
|
||||
Generator: [`tools/blender_assets.py`](../tools/blender_assets.py). Manifest (the
|
||||
Generator: [`tools/blender_assets.py`](../../tools/blender_assets.py). Manifest (the
|
||||
source of truth for integration):
|
||||
[`assets/models/blender/manifest.json`](../assets/models/blender/manifest.json).
|
||||
[`assets/models/blender/manifest.json`](../../assets/models/blender/manifest.json).
|
||||
|
||||
## Art direction
|
||||
|
||||
@@ -143,7 +143,7 @@ render about 2.5 min.
|
||||
## Characters
|
||||
|
||||
All library variants share the
|
||||
[character and gear asset contract](architecture.md#character-and-gear-asset-contract):
|
||||
[character and gear asset contract](../project/architecture.md#character-and-gear-asset-contract):
|
||||
`npc_base` mesh node, five tint slots, +Z visual front, 24,000/24,000 character budget and the
|
||||
same 256² slot-map/AO rules. The shipped roster is on the 62-joint Quaternius skeleton
|
||||
(ADR-0018); the procedural fallback built by `build --source procedural` keeps the 13 core bones.
|
||||
@@ -201,7 +201,7 @@ the role's `TYPE_COLORS`.
|
||||
## Gear attach points
|
||||
|
||||
Gear is authored in attach-point space; the exact contract and runtime fit offsets are in
|
||||
[`architecture.md#character-and-gear-asset-contract`](architecture.md#character-and-gear-asset-contract).
|
||||
[`architecture.md#character-and-gear-asset-contract`](../project/architecture.md#character-and-gear-asset-contract).
|
||||
|
||||
The shipped matrix is **fifteen pieces** since the hat removal (owner, 2026-11-06): `cap` and
|
||||
`hood` are retired, and `firefighter_helmet` is the only head item.
|
||||
@@ -278,7 +278,7 @@ carry baked AO and the shared neutral material maps described above.
|
||||
`npc_base`, the bones accept `NpcAvatar`'s pose composition, and props are
|
||||
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).
|
||||
scorecard row and verdict in `docs/assets/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).
|
||||
@@ -10,8 +10,8 @@ base. The development source files were removed from `tmp/` on 2026-11-05.
|
||||
|
||||
## Asset
|
||||
|
||||
- GLB: [`assets/models/blender_src/makehuman_head.glb`](../assets/models/blender_src/makehuman_head.glb)
|
||||
- Review sheet: [`blender_previews/sheet_makehuman_head.jpg`](blender_previews/sheet_makehuman_head.jpg)
|
||||
- GLB: [`assets/models/blender_src/makehuman_head.glb`](../../assets/models/blender_src/makehuman_head.glb)
|
||||
- Review sheet: [`blender_previews/sheet_makehuman_head.jpg`](../blender_previews/sheet_makehuman_head.jpg)
|
||||
- Source workflow (development-only, files removed after the Quaternius pivot;
|
||||
retained here as the historical method) — extracts the MakeHuman head, cuts it at the neck, keeps the head/eye/mouth
|
||||
components, cuts an almond aperture through a skin eyelid mask, adds recessed
|
||||
@@ -26,7 +26,7 @@ base. The development source files were removed from `tmp/` on 2026-11-05.
|
||||
- Materials used: `skin`, `eye_white`, `iris`, `pupil`, `hair`. No textures are
|
||||
baked into this prototype.
|
||||
|
||||

|
||||

|
||||
|
||||
## What was done
|
||||
|
||||
@@ -54,7 +54,7 @@ base. The development source files were removed from `tmp/` on 2026-11-05.
|
||||
|
||||
- Base mesh: MakeHuman / MPFB base, CC0, from the local research set
|
||||
(development source files removed after the 2026-11-05 Quaternius pivot); see
|
||||
[`CREDITS.md`](../CREDITS.md).
|
||||
[`CREDITS.md`](../../CREDITS.md).
|
||||
- The head is a **derived prototype**, not a shipped NPC. It does not enter
|
||||
`assets/models/blender/npc/`, `npc_base`, the runtime `NpcAvatar` path, CI, or
|
||||
a release package. It is retained as a fallback, not the active NPC base.
|
||||
@@ -1,8 +1,8 @@
|
||||
# NPC Model Sourcing
|
||||
|
||||
This page records the source evaluation and the active character plan. The
|
||||
decision is [ADR-0017](adr/0017-quaternius-npc-base.md), which supersedes the
|
||||
generator-first sourcing decision in [ADR-0015](adr/0015-npc-model-variety-sourcing.md).
|
||||
decision is [ADR-0017](../adr/0017-quaternius-npc-base.md), which supersedes the
|
||||
generator-first sourcing decision in [ADR-0015](../adr/0015-npc-model-variety-sourcing.md).
|
||||
|
||||
## Active direction
|
||||
|
||||
@@ -198,7 +198,7 @@ deltoid + hand) — both are the gate's rejection conditions.
|
||||
contract proportions; the gate fails and Stage 2 (a 62-joint runtime ADR) is indicated. Do not
|
||||
start the 12-variant rebuild on the warped base.
|
||||
|
||||
[ADR-0018](adr/0018-quaternius-stage2-runtime-rig.md) records the Stage 2 decision (accepted
|
||||
[ADR-0018](../adr/0018-quaternius-stage2-runtime-rig.md) records the Stage 2 decision (accepted
|
||||
2026-11-05, owner chose option 2): adopt the **Quaternius 62-joint rig at runtime**, keep the
|
||||
mesh at source LOD, re-derive gear attach points from the Quaternius skeleton, and use the
|
||||
Quaternius Idle/Walk clips directly (no retarget).
|
||||
@@ -237,7 +237,7 @@ Two source quirks shaped the bake:
|
||||
contract is applied as a rename, not a re-author.
|
||||
|
||||
The face/silhouette gate that chose the full swap is recorded in the follow-up decision of
|
||||
[ADR-0018](adr/0018-quaternius-stage2-runtime-rig.md); its comparison sheets were retired with the
|
||||
[ADR-0018](../adr/0018-quaternius-stage2-runtime-rig.md); its comparison sheets were retired with the
|
||||
review pages.
|
||||
|
||||
## Shipped roster (0.9.9, owner chose the full swap)
|
||||
@@ -354,7 +354,7 @@ not a local workaround.
|
||||
## Licence and provenance
|
||||
|
||||
- CC0 preferred. CC-BY is allowed only with attribution in
|
||||
[`CREDITS.md`](../CREDITS.md).
|
||||
[`CREDITS.md`](../../CREDITS.md).
|
||||
- No service asset whose terms restrict redistribution may be shipped.
|
||||
- Keep the source URL, author, licence, download date and SHA-256 in this page
|
||||
and in `CREDITS.md`.
|
||||
@@ -369,12 +369,12 @@ The MakeHuman/MPFB body pipeline is closed for the NPC base. The accepted
|
||||
MakeHuman head and the procedural `npc_base` remain tested fallbacks until the
|
||||
Quaternius rollout is complete. Their research scripts and renders were removed
|
||||
from `tmp/` after the pivot; the measurements and decisions remain in
|
||||
[`DONE.md`](../DONE.md), [`MEMORY.md`](../MEMORY.md) and the review docs.
|
||||
[`DONE.md`](../../DONE.md), [`MEMORY.md`](../../MEMORY.md) and the review docs.
|
||||
|
||||
## Related documents
|
||||
|
||||
- [ADR-0017: Quaternius NPC base](adr/0017-quaternius-npc-base.md)
|
||||
- [ADR-0016: 24,000-triangle character budget](adr/0016-npc-character-budget-24k.md)
|
||||
- [Blender asset contract](architecture.md#character-and-gear-asset-contract)
|
||||
- [ADR-0017: Quaternius NPC base](../adr/0017-quaternius-npc-base.md)
|
||||
- [ADR-0016: 24,000-triangle character budget](../adr/0016-npc-character-budget-24k.md)
|
||||
- [Blender asset contract](../project/architecture.md#character-and-gear-asset-contract)
|
||||
- [`3d-model-review.md`](3d-model-review.md)
|
||||
- [`asset-tooling.md`](asset-tooling.md)
|
||||
@@ -9,7 +9,7 @@ capture harnesses.
|
||||
| --- | --- |
|
||||
| [](sheet_npc.jpg) <br> `sheet_npc.jpg` | Eight skinned character variants (casual, jacket, coat, hi-vis vest, dress, hoodie, firefighter, guard) with their gear attach points. |
|
||||
| [](sheet_npc_baseline.jpg) <br> `sheet_npc_baseline.jpg` | Neutral studio baseline: 8 characters x front, three-quarter, profile, back, full body and crowd views. |
|
||||
| [](sheet_makehuman_head.jpg) <br> `sheet_makehuman_head.jpg` | MakeHuman head: front, three-quarter and profile review views. The owner accepted the basic head; the automated vision gate still rejects the eye/lid region as deferred polish. See [`../makehuman-head-review.md`](../makehuman-head-review.md). |
|
||||
| [](sheet_makehuman_head.jpg) <br> `sheet_makehuman_head.jpg` | MakeHuman head: front, three-quarter and profile review views. The owner accepted the basic head; the automated vision gate still rejects the eye/lid region as deferred polish. See [`../makehuman-head-review.md`](../assets/makehuman-head-review.md). |
|
||||
| [](sheet_npc_baseline_compare-body.jpg) <br> `sheet_npc_baseline_compare-body.jpg` | Neck/shoulder transition: fuller neck base and a lower shoulder root. |
|
||||
| [](sheet_npc_baseline_compare-face-detail.jpg) <br> `sheet_npc_baseline_compare-face-detail.jpg` | Face detail: nose ala wings, a single rounded mouth and a darker ear concha. |
|
||||
| [](sheet_npc_baseline_compare-face.jpg) <br> `sheet_npc_baseline_compare-face.jpg` | Face-depth pass: recessed sclera, upper lid and sculpted chin/cheek planes. |
|
||||
@@ -27,5 +27,5 @@ capture harnesses.
|
||||
| [](sheet_props.jpg) <br> `sheet_props.jpg` | Twenty street and venue props with baked maps, ground contact and collider footprints. |
|
||||
| [](sheet_texture_refinement_0.9.5.jpg) <br> `sheet_texture_refinement_0.9.5.jpg` | 0.9.5 texture refinement before/after: pavers, awning stripes and NPC fabric. |
|
||||
|
||||
The measurements are in [`../3d-model-review.md`](../3d-model-review.md) and the asset contract in
|
||||
[`../blender-assets.md`](../blender-assets.md).
|
||||
The measurements are in [`../3d-model-review.md`](../assets/3d-model-review.md) and the asset contract in
|
||||
[`../blender-assets.md`](../assets/blender-assets.md).
|
||||
@@ -0,0 +1,13 @@
|
||||
# Design Documentation
|
||||
|
||||
Gameplay, venues, presentation and player-facing constraints.
|
||||
|
||||
- [`gameplay.md`](gameplay.md) — the playable loop, escalation mechanics, venues and tutorial.
|
||||
- [`venues.md`](venues.md) — real-site evidence, game mapping and venue simplifications.
|
||||
- [`ui-copy.md`](ui-copy.md) — screen, copy and button inventory plus the screen-design judge
|
||||
record.
|
||||
- [`accessibility.md`](accessibility.md) — accessibility statement and known gaps.
|
||||
- [`known-limitations.md`](known-limitations.md) — release blockers and accepted limitations.
|
||||
|
||||
Up: [`../README.md`](../README.md) · Product plan: [`../../PLAN.md`](../../PLAN.md) · Tasks:
|
||||
[`../../TODO.md`](../../TODO.md).
|
||||
@@ -28,5 +28,5 @@ Known gaps:
|
||||
review is still a 0.10.0 release-review item.
|
||||
|
||||
Test evidence and the manual checklist live in
|
||||
[`release-qa.md`](release-qa.md#manual-smoke-checklist); settings and save behaviour are
|
||||
documented in [`getting-started.md`](getting-started.md).
|
||||
[`release-qa.md`](../process/release-qa.md#manual-smoke-checklist); settings and save behaviour are
|
||||
documented in [`getting-started.md`](../process/getting-started.md).
|
||||
@@ -1,6 +1,6 @@
|
||||
# Gameplay
|
||||
|
||||
The complete design rationale also lives in [`PLAN.md`](../PLAN.md); this page keeps the playable mechanics close to the README.
|
||||
The complete design rationale also lives in [`PLAN.md`](../../PLAN.md); this page keeps the playable mechanics close to the README.
|
||||
|
||||
## Game Overview
|
||||
|
||||
@@ -12,7 +12,7 @@ public release.
|
||||
observation.
|
||||
- **AI asset provenance:** the image-generation provider terms and commercial
|
||||
redistribution rights for the committed AI-assisted textures/UI art still need
|
||||
legal review. See [`../CREDITS.md`](../CREDITS.md).
|
||||
legal review. See [`../CREDITS.md`](../../CREDITS.md).
|
||||
- **Storefront/legal approval:** age/content rating, storefront policy, trademark
|
||||
language and the mental-health-crisis/body-camera representation have not been
|
||||
externally approved.
|
||||
@@ -31,7 +31,7 @@ public release.
|
||||
- Character faces, hands and fabric use a deliberately low-poly style; the
|
||||
>26 m tier remains a two-quad impostor and there is no separate finger-curl
|
||||
rig. The accepted limits are recorded in
|
||||
[`npc-model-sourcing.md`](npc-model-sourcing.md).
|
||||
[`npc-model-sourcing.md`](../assets/npc-model-sourcing.md).
|
||||
- There is no live 3D body-camera replay; the timeline is text-based.
|
||||
- There is no recorded voice/music track. Ambience and cues are procedural.
|
||||
- The game is English-only and does not yet have a translator workflow or
|
||||
@@ -1,6 +1,6 @@
|
||||
# UI copy and button inventory
|
||||
|
||||
Status: dialogue, button-state, focus, modal-close, font/layout, destructive-action and end-to-end passes complete; capture/smoke sign-off remains for 0.9.3.
|
||||
Status: complete (0.9.3). Retained as the screen/button inventory, copy audit and screen-design judge record.
|
||||
|
||||
## Screen inventory
|
||||
|
||||
@@ -236,9 +236,9 @@ Command: `python3 tools/screen_designs.py judge`
|
||||
Result: **21/21 match, 0 review, 0 diff**
|
||||
|
||||
The screenshot gallery was regenerated on the current build before judging, including the eight UI-state captures 14–21 added in `src/test/capture_ui_states.gd`.
|
||||
Accepted captures are in [`docs/screens/`](screens/README.md); the committed
|
||||
gallery is in [`docs/screenshots/`](screenshots/README.md).
|
||||
Accepted captures are in [`docs/screens/`](../screens/README.md); the committed
|
||||
gallery is in [`docs/screenshots/`](../screenshots/README.md).
|
||||
|
||||
The automatic model selection and retry/spend behavior is documented in
|
||||
[`docs/asset-tooling.md`](asset-tooling.md). This report intentionally records
|
||||
[`docs/assets/asset-tooling.md`](../assets/asset-tooling.md). This report intentionally records
|
||||
the outcome rather than generated captures, which remain local/gitignored.
|
||||
@@ -11,7 +11,7 @@ The game uses two physical Hollywood blocks across three playable venue rows:
|
||||
|
||||
The runtime implementation contract (facade specs, map budgets, navigation,
|
||||
colliders, phase behavior and fallback) lives in
|
||||
[`architecture.md`](architecture.md#venue-implementation-contract). This page
|
||||
[`architecture.md`](../project/architecture.md#venue-implementation-contract). This page
|
||||
keeps the real-site evidence, mapping decisions and deliberate simplifications.
|
||||
|
||||
## Hollywood Boulevard
|
||||
@@ -49,7 +49,7 @@ keeps the real-site evidence, mapping decisions and deliberate simplifications.
|
||||
| TV Studio arrival | same six-column facade/eight steps plus bulb canopy, sedan, handrail and barriers |
|
||||
|
||||
The generated references in
|
||||
[`screens/concepts/hollywood_boulevard/`](screens/concepts/hollywood_boulevard/README.md)
|
||||
[`screens/concepts/hollywood_boulevard/`](../screens/concepts/hollywood_boulevard/README.md)
|
||||
are art direction for lighting, material scale and composition; they are not
|
||||
texture or geometry sources.
|
||||
|
||||
@@ -128,9 +128,9 @@ The guard starts west of the entrance at (-4.8, 0.1, 1.4), facing the approach.
|
||||
- [Hollywood Masonic Temple facade — Wikimedia Commons](https://commons.wikimedia.org/wiki/File:El_Capitan_Theater_frontal_fachade-The_Masonic_Temple.jpg)
|
||||
- [Hollywood Masonic Temple and El Capitan Theatre, 2013 — Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Hollywood_Masonic_Temple_2013-10-13_10-02-25.jpg)
|
||||
- [Comedy Store — OpenStreetMap way 428854155](https://www.openstreetmap.org/way/428854155)
|
||||
- Committed photo boards: [`screens/refs/hollywood/`](screens/refs/hollywood/README.md),
|
||||
[`screens/refs/joke-shop/`](screens/refs/joke-shop/README.md); three-up boards
|
||||
are in [`screens/boards/`](screens/boards/README.md).
|
||||
- Committed photo board: [`screens/refs/hollywood/`](../screens/refs/hollywood/README.md);
|
||||
three-up boards are in [`screens/boards/`](../screens/boards/README.md). The Joke Shop has no
|
||||
committed photo board: its reference set stays local-only under `tmp/research/comedy-store/`.
|
||||
- Local-only research (never committed): `tmp/research/elcapitan-2026/`,
|
||||
`tmp/research/jimmy-kimmel-entrance/`, `tmp/research/comedy-store/` and
|
||||
`tmp/research/comedy-store-hillside/`. These are evidence for decisions, not
|
||||
@@ -0,0 +1,11 @@
|
||||
# Process Documentation
|
||||
|
||||
Setup, quality assurance and releasing.
|
||||
|
||||
- [`getting-started.md`](getting-started.md) — setup, run/test commands, controls and save data.
|
||||
- [`release-qa.md`](release-qa.md) — the manual smoke checklist and the balance-acceptance
|
||||
protocol.
|
||||
- [`RELEASING.md`](RELEASING.md) — export templates, release build, CI/publishing and rollback.
|
||||
|
||||
Up: [`../README.md`](../README.md) · Product plan: [`../../PLAN.md`](../../PLAN.md) · Tasks:
|
||||
[`../../TODO.md`](../../TODO.md).
|
||||
@@ -127,7 +127,7 @@ the documented right-click/`xattr` quarantine instructions. Signing and
|
||||
notarization remain a public-release blocker until an Apple Developer account and
|
||||
a reproducible signing/notarization job are available; they are not silently
|
||||
claimed as complete. The same limitation is recorded in
|
||||
[`known-limitations.md`](known-limitations.md).
|
||||
[`known-limitations.md`](../design/known-limitations.md).
|
||||
|
||||
Always run the release build from a clean checkout or detached worktree. Godot
|
||||
can pack files from ignored `tmp/` and old `build/` folders into the PCK; the
|
||||
@@ -205,7 +205,7 @@ change, update `tools/build_releases.sh` first.
|
||||
|
||||
- [ ] All headless tests pass (exit code 0).
|
||||
- [ ] Game boots cleanly in a smoke test.
|
||||
- [ ] Controls documented in `docs/getting-started.md` match the build.
|
||||
- [ ] Controls documented in `docs/process/getting-started.md` match the build.
|
||||
- [ ] Version in `project.godot` matches the tag.
|
||||
- [ ] Export templates used are the official ones for the pinned engine.
|
||||
- [ ] Artifacts uploaded; README downloads page shows them.
|
||||
@@ -87,7 +87,7 @@ The game writes four JSON files in Godot's `user://` directory:
|
||||
Files: `settings.json`, `campaign.json`, `shift_results.json` and the versioned
|
||||
`shift_state.json` checkpoint. The schema, migration/default-filling rules,
|
||||
atomic-write behavior and checkpoint contents are in
|
||||
[`architecture.md#persistence-and-save-contract`](architecture.md#persistence-and-save-contract).
|
||||
[`architecture.md#persistence-and-save-contract`](../project/architecture.md#persistence-and-save-contract).
|
||||
|
||||
For a clean first launch, delete the four files (or the whole `Gig Line` user
|
||||
directory). Settings' **Reset campaign** clears campaign progress separately.
|
||||
@@ -60,8 +60,8 @@ owns the mechanics.
|
||||
|
||||
These are the acceptance targets for the 0.10.0 balance pass, not measured results.
|
||||
No reaction tables, event weights or scoring rules were changed to set them. The
|
||||
[roadmap](../TODO.md) tracks the sweeps and external playtests still needed.
|
||||
[Gameplay](gameplay.md) owns the mechanics; this page owns their balance-test protocol.
|
||||
[roadmap](../../TODO.md) tracks the sweeps and external playtests still needed.
|
||||
[Gameplay](../design/gameplay.md) owns the mechanics; this page owns their balance-test protocol.
|
||||
|
||||
### Test matrix and evidence
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Project Documentation
|
||||
|
||||
Architecture and project status.
|
||||
|
||||
- [`architecture.md`](architecture.md) — the arc42-style architecture: goals, constraints,
|
||||
building blocks, runtime views, decisions and risks.
|
||||
- [`development-status.md`](development-status.md) — the canonical implemented-features list,
|
||||
verification baseline and known gaps.
|
||||
|
||||
Up: [`../README.md`](../README.md) · Product plan: [`../../PLAN.md`](../../PLAN.md) · Tasks:
|
||||
[`../../TODO.md`](../../TODO.md).
|
||||
@@ -27,8 +27,8 @@ This document follows the structure of the arc42 architecture documentation temp
|
||||
- The first implementation should be small enough for a playable vertical slice.
|
||||
- The engine is Godot 4.7.2 with GDScript; a playable prototype vertical slice is implemented. CI, local development and exported builds use 4.7.2; the default renderer stays GL Compatibility for Web parity, with an optional Forward+ Desktop HQ build.
|
||||
- Venue-specific policies must be configurable rather than hard-coded into individual NPCs.
|
||||
- The game must preserve the de-escalation-first design described in [`PLAN.md`](../PLAN.md).
|
||||
- The project uses the repository workflow described in [`AGENTS.md`](../AGENTS.md).
|
||||
- The game must preserve the de-escalation-first design described in [`PLAN.md`](../../PLAN.md).
|
||||
- The project uses the repository workflow described in [`AGENTS.md`](../../AGENTS.md).
|
||||
- The project follows [Semantic Versioning](https://semver.org/) (`MAJOR.MINOR.PATCH`).
|
||||
|
||||
### Version management
|
||||
@@ -37,7 +37,7 @@ This document follows the structure of the arc42 architecture documentation temp
|
||||
- **MINOR** — new venues, NPC archetypes, systems, or features that are backward compatible.
|
||||
- **PATCH** — bug fixes and small polish that do not change behavior.
|
||||
|
||||
The single source of truth for the version is `config/version` in `project.godot` (currently `0.9.8`). Each release is tagged in git as `v<version>` (e.g. `v0.6.0`). The `0.x` series is pre-stable, so MINOR bumps may introduce breaking changes while the prototype is still stabilizing. `tools/build_releases.sh` and `tools/publish_release.sh` read the version from `project.godot`, so bumping it there is the only required step before a release. The full bump checklist lives in [`RELEASING.md`](RELEASING.md).
|
||||
The single source of truth for the version is `config/version` in `project.godot` (currently `0.9.9`). Each release is tagged in git as `v<version>` (e.g. `v0.6.0`). The `0.x` series is pre-stable, so MINOR bumps may introduce breaking changes while the prototype is still stabilizing. `tools/build_releases.sh` and `tools/publish_release.sh` read the version from `project.godot`, so bumping it there is the only required step before a release. The full bump checklist lives in [`RELEASING.md`](../process/RELEASING.md).
|
||||
|
||||
## 3. Context and Scope
|
||||
|
||||
@@ -82,7 +82,7 @@ The player interacts with NPCs, venue entrances, access artifacts, equipment, st
|
||||
- `src/game/ui/art.gd` loads runtime UI/scene art from `assets/images/ui/` and `assets/images/scenes/`, with null fallbacks so panels keep their procedural layouts.
|
||||
- `tools/model_pipeline.py` builds and audits the street-prop `.glb` models and packs their colour atlases.
|
||||
- `tools/npc_pipeline.py` builds and audits the skinned NPC base model (`assets/models/generated/npc_base.glb`) and its per-slot material maps, with an optional AI fabric override (ADR-0013). The active character migration bakes the CC0 Quaternius base onto the same contract (ADR-0017); the procedural base remains the fallback.
|
||||
- `tools/blender_assets.py` builds, renders and audits the Blender asset library (`assets/models/blender/{npc,npc_gear,props}/` + `manifest.json`): NPC character variants that are drop-in for `npc_base`, attach-point gear, and street/venue props. `NpcAvatar` selects variants/gear by role/seed and `WorldBuilder` loads the prop replacements and new street dressing, with procedural fallbacks (see `docs/blender-assets.md`).
|
||||
- `tools/blender_assets.py` builds, renders and audits the Blender asset library (`assets/models/blender/{npc,npc_gear,props}/` + `manifest.json`): NPC character variants that are drop-in for `npc_base`, attach-point gear, and street/venue props. `NpcAvatar` selects variants/gear by role/seed and `WorldBuilder` loads the prop replacements and new street dressing, with procedural fallbacks (see `docs/assets/blender-assets.md`).
|
||||
- `tools/scene_concepts.py` generates realism-pass references (`docs/screens/concepts/`), skyline backdrops and surface tiles (raw `assets/textures/ai/v2/raw/` → candidates `assets/textures/ai/game_ready/v2/`), promotes the validated ones to the tracked `v2/picks/` that `SurfaceMaterials`/`WorldBuilder` preload, audits them, and scores `src/test/capture_realism.gd` A/B captures (six stages, runtime texture swaps) against the concepts (`docs/screens/realism/<run>/`).
|
||||
- `tools/asset_pipeline.py` generates and audits role-aware textures; `tools/screen_designs.py` generates screen references and judges captures; `tools/check_screenshots.sh` renders the staged gallery and runs the compare gate.
|
||||
|
||||
@@ -90,7 +90,7 @@ Confirmed game assets live in `assets/textures/ai/game_ready/` (audited surface,
|
||||
|
||||
### Asset storage conventions
|
||||
|
||||
The canonical rules live in [ADR-0014](adr/0014-runtime-image-root.md). In short:
|
||||
The canonical rules live in [ADR-0014](../adr/0014-runtime-image-root.md). In short:
|
||||
|
||||
| Location | Contents | Loaded at runtime? |
|
||||
| --- | --- | --- |
|
||||
@@ -190,7 +190,7 @@ Venue rules:
|
||||
|
||||
Persistence is local-only under Godot's `user://` directory. The architecture
|
||||
owns the schema; operational locations and reset/rollback steps live in
|
||||
[`getting-started.md`](getting-started.md#save-data-and-migration).
|
||||
[`getting-started.md`](../process/getting-started.md#save-data).
|
||||
|
||||
| File | Contents | Compatibility |
|
||||
| --- | --- | --- |
|
||||
@@ -220,8 +220,8 @@ developer tools only — runtime, tests and CI consume committed GLBs and maps.
|
||||
| `tools/npc_pipeline.py` | Builds the skinned base avatar, five-slot material maps, palette and AI-fabric preparation (`prepare`/`palette`) | `npc_base.glb`, `assets/textures/npc/*_{albedo,normal,orm}.png`, `palette.json` | `audit_glb` against the 24,000-triangle / 24,000-vertex base contract (13 core bones required; extras allowed) |
|
||||
| `tools/blender_assets.py` | Builds/renders the library: 12 characters, 15 gear pieces, 20 props, plus `manifest.json`; stdlib `audit`/`fit`/`sheet`/`list` | `assets/models/blender/{npc,npc_gear,props}/*.glb` | Character cap 24,000 tris / 24,000 verts, 1,500 per gear, 4,000 per prop; grounding, UV, degenerate-triangle, attach-fit and manifest coverage checks |
|
||||
| `tools/bake_ao.py` | Bakes per-asset AO maps | `<asset>_ao.png` (256²) | Wired through `Materials.apply_ao()`/`SurfaceMaterials`; cloth/pants opt out (see below) |
|
||||
| `tools/npc_proportions.py` | Measures exported GLB rest pose (height, head, shoulders, hips, torso, limbs, feet) against the stylized guide | report / JSON in `docs/3d-model-review.md#character-measurements` | All eight variants must stay inside the guide after a body change |
|
||||
| `tools/npc_baseline.py` | Assembles neutral-baseline sheets and before/after comparisons | `docs/blender_previews/sheet_npc_baseline*.jpg` | Human review against `docs/3d-model-review.md` |
|
||||
| `tools/npc_proportions.py` | Measures exported GLB rest pose (height, head, shoulders, hips, torso, limbs, feet) against the stylized guide | report / JSON in `docs/assets/3d-model-review.md#character-measurements` | All eight variants must stay inside the guide after a body change |
|
||||
| `tools/npc_baseline.py` | Assembles neutral-baseline sheets and before/after comparisons | `docs/blender_previews/sheet_npc_baseline*.jpg` | Human review against `docs/assets/3d-model-review.md` |
|
||||
| `src/test/capture_npc_baseline.gd` | Fixed-camera studio baseline, 8 variants × 6 views | local `tmp/` frames | Neutral silhouette/face/gear review |
|
||||
| `src/test/capture_npc_review.gd` | Final-context gate: 8 variants × 2 venues × day/night × 3 distances = 96 frames, crowd hidden, review-only `character_override` for the guard | local `tmp/` frames | Pre-build acceptance gate for gear fit and venue lighting |
|
||||
| `src/test/capture_realism.gd` | Venue realism stages plus a frozen portrait and surface close-ups | `docs/screens/realism/<run>/` | Optional vision judge; portrait is the only avatar-detail capture |
|
||||
@@ -243,16 +243,16 @@ Runtime contracts that must survive any character change:
|
||||
- Rebuild only the assets whose geometry changed (Blender GLB export is byte-nondeterministic),
|
||||
then run `godot --headless --path . --import`; never commit a no-op full rebuild.
|
||||
|
||||
Evidence and detailed contracts live in [`blender-assets.md`](blender-assets.md),
|
||||
[`3d-model-review.md`](3d-model-review.md) and
|
||||
[`3d-model-review.md#character-measurements`](3d-model-review.md#character-measurements); command-level usage is in
|
||||
[`asset-tooling.md`](asset-tooling.md).
|
||||
Evidence and detailed contracts live in [`blender-assets.md`](../assets/blender-assets.md),
|
||||
[`3d-model-review.md`](../assets/3d-model-review.md) and
|
||||
[`3d-model-review.md#character-measurements`](../assets/3d-model-review.md#character-measurements); command-level usage is in
|
||||
[`asset-tooling.md`](../assets/asset-tooling.md).
|
||||
|
||||
### Local map development tooling (planned)
|
||||
|
||||
The current venues are hand-authored procedural reconstructions in
|
||||
`src/game/world_builder.gd`. The local map workstreams (**H–M**) in
|
||||
[`TODO.md`](../TODO.md#3d-model-re-evaluation) are unversioned and planned: they will
|
||||
[`TODO.md`](../../TODO.md#3d-model-and-local-map-re-evaluation) are unversioned and planned: they will
|
||||
test whether licensed data and reference photography can replace or supplement the
|
||||
stylized geometry without moving map data, AI composition or splat rendering into
|
||||
the runtime.
|
||||
@@ -353,7 +353,7 @@ Releases are produced from a tagged commit and published to the repository host'
|
||||
- `tools/build_releases.sh` — exports the desktop binaries and Web zip into `build/`, named `gig-line-<platform>-<version>.<ext>`.
|
||||
- `tools/publish_release.sh` — creates a release and uploads the artifacts via the Gitea API, using `GITEA_TOKEN` or the checkout extraheader fallback.
|
||||
- Packaging — NSIS builds the Windows installer; `packaging/linux/build_appimage.sh` builds the AppImage.
|
||||
- [`RELEASING.md`](RELEASING.md) — step-by-step guide and release checklist.
|
||||
- [`RELEASING.md`](../process/RELEASING.md) — step-by-step guide and release checklist.
|
||||
|
||||
The release process is: bump the version, run the full test suite and `tools/check_screenshots.sh`, run `tools/build_releases.sh`, tag and push (CI publishes), then verify the README "Downloads" links and the release artifacts.
|
||||
|
||||
@@ -372,27 +372,27 @@ The release process is: bump the version, run the full test suite and `tools/che
|
||||
- **Campaign and checkpoint state:** `Campaign` owns venue order/progression; settings, campaign, completed shift history and a versioned pause checkpoint are separate JSON documents. The checkpoint snapshots coordinator systems, scheduler RNG and NPC presentation/access state; it deliberately does not serialize the tutorial overlay or transient input state.
|
||||
- **Difficulty:** easy/normal/hard only scale spawn pacing, NPC compliance tolerance and report-credibility strictness; access/escalation rules and emergency rarity are invariant.
|
||||
- **Settings and accessibility:** volume/motion/caption settings persist through `settings.json`; Help is generated from the input-binding catalogue and the HUD log is the text caption surface. CI/release, local development and exported builds are unified on Godot 4.7.2.
|
||||
- **Documentation ownership:** `PLAN.md` owns design intent; `docs/gameplay.md` owns playable mechanics; `docs/architecture.md` owns system boundaries, data flow, constraints and cross-cutting decisions; ADRs own decision history; `docs/development-status.md` owns the implemented/gap list; `TODO.md` owns the roadmap; `MEMORY.md` owns gotchas and open questions. Specialized docs link to these rather than becoming competing sources of truth.
|
||||
- **Documentation ownership:** `PLAN.md` owns design intent; `docs/design/gameplay.md` owns playable mechanics; `docs/project/architecture.md` owns system boundaries, data flow, constraints and cross-cutting decisions; ADRs own decision history; `docs/project/development-status.md` owns the implemented/gap list; `TODO.md` owns the roadmap; `MEMORY.md` owns gotchas and open questions. Specialized docs link to these rather than becoming competing sources of truth.
|
||||
|
||||
## 9. Architecture Decisions
|
||||
|
||||
Architecture decisions are recorded as ADRs:
|
||||
|
||||
- [ADR-0001: Venue-driven simulation architecture](adr/0001-venue-driven-simulation-architecture.md)
|
||||
- [ADR-0002: De-escalation-first escalation model](adr/0002-de-escalation-first-escalation-model.md)
|
||||
- [ADR-0003: Explicit access-verification system](adr/0003-explicit-access-verification-system.md)
|
||||
- [ADR-0004: Local single-player first](adr/0004-local-single-player-first.md)
|
||||
- [ADR-0005: Event-based incident recording](adr/0005-event-based-incident-recording.md)
|
||||
- [ADR-0006: Godot 4 with GDScript](adr/0006-godot-4-gdscript.md)
|
||||
- [ADR-0007: Locomotion and input layers](adr/0007-locomotion-and-input-layers.md)
|
||||
- [ADR-0008: Cone focus and focus circle](adr/0008-cone-focus-and-head-ring.md)
|
||||
- [ADR-0009: Radial action menu](adr/0009-radial-action-menu.md)
|
||||
- [ADR-0010: Procedural NPC presentation](adr/0010-procedural-npc-presentation.md)
|
||||
- [ADR-0017: Quaternius NPC base](adr/0017-quaternius-npc-base.md)
|
||||
- [ADR-0011: Aim-free selection and precision walk](adr/0011-aim-free-selection-and-precision-walk.md)
|
||||
- [ADR-0012: Surface materials and generated props](adr/0012-surface-materials-and-generated-props.md)
|
||||
- [ADR-0013: Blender-authored NPC characters and baked materials](adr/0013-blender-authored-npc-characters.md)
|
||||
- [ADR-0014: Canonical runtime image root and image conventions](adr/0014-runtime-image-root.md)
|
||||
- [ADR-0001: Venue-driven simulation architecture](../adr/0001-venue-driven-simulation-architecture.md)
|
||||
- [ADR-0002: De-escalation-first escalation model](../adr/0002-de-escalation-first-escalation-model.md)
|
||||
- [ADR-0003: Explicit access-verification system](../adr/0003-explicit-access-verification-system.md)
|
||||
- [ADR-0004: Local single-player first](../adr/0004-local-single-player-first.md)
|
||||
- [ADR-0005: Event-based incident recording](../adr/0005-event-based-incident-recording.md)
|
||||
- [ADR-0006: Godot 4 with GDScript](../adr/0006-godot-4-gdscript.md)
|
||||
- [ADR-0007: Locomotion and input layers](../adr/0007-locomotion-and-input-layers.md)
|
||||
- [ADR-0008: Cone focus and focus circle](../adr/0008-cone-focus-and-head-ring.md)
|
||||
- [ADR-0009: Radial action menu](../adr/0009-radial-action-menu.md)
|
||||
- [ADR-0010: Procedural NPC presentation](../adr/0010-procedural-npc-presentation.md)
|
||||
- [ADR-0017: Quaternius NPC base](../adr/0017-quaternius-npc-base.md)
|
||||
- [ADR-0011: Aim-free selection and precision walk](../adr/0011-aim-free-selection-and-precision-walk.md)
|
||||
- [ADR-0012: Surface materials and generated props](../adr/0012-surface-materials-and-generated-props.md)
|
||||
- [ADR-0013: Blender-authored NPC characters and baked materials](../adr/0013-blender-authored-npc-characters.md)
|
||||
- [ADR-0014: Canonical runtime image root and image conventions](../adr/0014-runtime-image-root.md)
|
||||
|
||||
## 10. Quality Requirements
|
||||
|
||||
@@ -435,32 +435,32 @@ architecture document.
|
||||
|
||||
| Document | Canonical role | Relationship to this architecture |
|
||||
| --- | --- | --- |
|
||||
| [`PLAN.md`](../PLAN.md) | Product/design intent, pillars, venues and success criteria | Design source; architecture realizes it |
|
||||
| [`docs/gameplay.md`](gameplay.md) | Playable loop, escalation, tutorial, venue mechanics | Runtime/behavioral view |
|
||||
| [`docs/venues.md`](venues.md) | Real-site evidence, mapping decisions and deliberate simplifications | Runtime venues' evidence companion to §5 |
|
||||
| [`docs/architecture.md`](architecture.md) | System boundaries, data flow, constraints, deployment, cross-cutting decisions, quality risks | Single architecture source |
|
||||
| [`docs/adr/`](adr/) | Immutable decision records with context and consequences | Decision history linked from §9 |
|
||||
| [`docs/asset-tooling.md`](asset-tooling.md) | Build/audit/capture commands, optional Blender MCP and pipeline usage | Operational appendix to the pipeline section |
|
||||
| [`docs/blender-assets.md`](blender-assets.md) | Blender library art direction, roles, layout and checks | Operational asset appendix; contract lives here in §5 |
|
||||
| [`docs/3d-model-review.md`](3d-model-review.md) | Character and asset measurements, scorecard and ranked gaps | Visual-QA appendix to the character tooling section |
|
||||
| [`docs/3d-model-review.md`](3d-model-review.md) | Scorecard, measurements and ranked asset gaps | Working review companion to §5 |
|
||||
| [`docs/npc-model-sourcing.md`](npc-model-sourcing.md) | Character-source evaluation and licence/prototype outcome | Supports the character tooling section and ADR-0015 |
|
||||
| [`docs/getting-started.md`](getting-started.md) | Setup, commands, controls | Developer onboarding |
|
||||
| [`docs/RELEASING.md`](RELEASING.md) | Release checklist and CI/publishing steps | Deployment appendix to §7 |
|
||||
| [`docs/release-qa.md`](release-qa.md) | Manual smoke checklist and balance protocol | QA appendix to §10 |
|
||||
| [`docs/accessibility.md`](accessibility.md) | Accessibility features, statement and known gaps | Player-facing quality statement |
|
||||
| [`docs/known-limitations.md`](known-limitations.md) | Release blockers and accepted limitations | Player/release-facing risk statement |
|
||||
| [`docs/ui-copy.md`](ui-copy.md) | Screen/button inventory, copy audit and screen-judge report | Presentation appendix |
|
||||
| [`docs/development-status.md`](development-status.md) | Implemented features and current gaps | Status companion to the roadmap |
|
||||
| [`TODO.md`](../TODO.md) | Priority-ordered active tasks, unversioned development tracks and versioned roadmap | Planning source; no architecture duplication |
|
||||
| [`CHANGELOG.md`](../CHANGELOG.md) | User-facing release history | Release/version companion |
|
||||
| [`PLAN.md`](../../PLAN.md) | Product/design intent, pillars, venues and success criteria | Design source; architecture realizes it |
|
||||
| [`docs/design/gameplay.md`](../design/gameplay.md) | Playable loop, escalation, tutorial, venue mechanics | Runtime/behavioral view |
|
||||
| [`docs/design/venues.md`](../design/venues.md) | Real-site evidence, mapping decisions and deliberate simplifications | Runtime venues' evidence companion to §5 |
|
||||
| [`docs/project/architecture.md`](architecture.md) | System boundaries, data flow, constraints, deployment, cross-cutting decisions, quality risks | Single architecture source |
|
||||
| [`docs/adr/`](../adr) | Immutable decision records with context and consequences | Decision history linked from §9 |
|
||||
| [`docs/assets/asset-tooling.md`](../assets/asset-tooling.md) | Build/audit/capture commands, optional Blender MCP and pipeline usage | Operational appendix to the pipeline section |
|
||||
| [`docs/assets/blender-assets.md`](../assets/blender-assets.md) | Blender library art direction, roles, layout and checks | Operational asset appendix; contract lives here in §5 |
|
||||
| [`docs/assets/3d-model-review.md`](../assets/3d-model-review.md) | Character and asset measurements, scorecard and ranked gaps | Visual-QA appendix to the character tooling section |
|
||||
| [`docs/assets/3d-model-review.md`](../assets/3d-model-review.md) | Scorecard, measurements and ranked asset gaps | Working review companion to §5 |
|
||||
| [`docs/assets/npc-model-sourcing.md`](../assets/npc-model-sourcing.md) | Character-source evaluation and licence/prototype outcome | Supports the character tooling section and ADR-0015 |
|
||||
| [`docs/process/getting-started.md`](../process/getting-started.md) | Setup, commands, controls | Developer onboarding |
|
||||
| [`docs/process/RELEASING.md`](../process/RELEASING.md) | Release checklist and CI/publishing steps | Deployment appendix to §7 |
|
||||
| [`docs/process/release-qa.md`](../process/release-qa.md) | Manual smoke checklist and balance protocol | QA appendix to §10 |
|
||||
| [`docs/design/accessibility.md`](../design/accessibility.md) | Accessibility features, statement and known gaps | Player-facing quality statement |
|
||||
| [`docs/design/known-limitations.md`](../design/known-limitations.md) | Release blockers and accepted limitations | Player/release-facing risk statement |
|
||||
| [`docs/design/ui-copy.md`](../design/ui-copy.md) | Screen/button inventory, copy audit and screen-judge report | Presentation appendix |
|
||||
| [`docs/project/development-status.md`](development-status.md) | Implemented features and current gaps | Status companion to the roadmap |
|
||||
| [`TODO.md`](../../TODO.md) | Priority-ordered active tasks, unversioned development tracks and versioned roadmap | Planning source; no architecture duplication |
|
||||
| [`CHANGELOG.md`](../../CHANGELOG.md) | User-facing release history | Release/version companion |
|
||||
|
||||
Consolidation decisions:
|
||||
|
||||
- **Architecture owns the "how"** (components, contracts, data flow, constraints, quality gates); **PLAN/gameplay own the "what"**; **ADRs own the "why"**. Links replace duplicated prose.
|
||||
- **Asset and release documents remain separate** because they are command-heavy operational procedures; their architecture-relevant contracts and failure modes are summarized in §5 and §7.
|
||||
- **Completed plans are removed, not kept as competing roadmaps.** Historical graphics work is summarized by ADR-0013, the asset pipeline section and the v0.6.0 changelog; new work belongs in TODO.
|
||||
- **Status and roadmap are separate from architecture.** `docs/development-status.md` records what exists; `TODO.md` records what remains, ordered as unversioned development tracks, versioned milestones and deferred work.
|
||||
- **Status and roadmap are separate from architecture.** `docs/project/development-status.md` records what exists; `TODO.md` records what remains, ordered as unversioned development tracks, versioned milestones and deferred work.
|
||||
- **Documentation drift is a tracked risk:** release/version, test counts, renderer status, and stale plans must be corrected in the same commit as the change that invalidates them.
|
||||
|
||||
## 13. Glossary
|
||||
@@ -1,9 +1,9 @@
|
||||
# Development Status
|
||||
|
||||
Baseline: **v0.9.8** (2026-11-04). This page lists what the build currently
|
||||
Baseline: **v0.9.9** (2026-11-06). This page lists what the build currently
|
||||
supports and what remains; it is not a release history. Completed work lives in
|
||||
[`DONE.md`](../DONE.md), user-facing changes in [`CHANGELOG.md`](../CHANGELOG.md),
|
||||
and the active order/gaps in [`TODO.md`](../TODO.md).
|
||||
[`DONE.md`](../../DONE.md), user-facing changes in [`CHANGELOG.md`](../../CHANGELOG.md),
|
||||
and the active order/gaps in [`TODO.md`](../../TODO.md).
|
||||
|
||||
## Implemented
|
||||
|
||||
@@ -16,7 +16,7 @@ and the active order/gaps in [`TODO.md`](../TODO.md).
|
||||
| Access and escalation | Six escalation levels, venue access policies, artifact validity/recognition, door lock, crowd reactions, investigation/false-report handling and shift review. |
|
||||
| UI/input | Keyboard/mouse and gamepad bindings, focus rings, default modal focus, single top-modal close path, shared button states, font scaling, long-string handling, searchable Help and 21 committed UI/game captures. |
|
||||
| Audio/accessibility | Procedural crowd bed and radio cues, master/SFX/ambience volumes, reduced motion, captions, colour-independent escalation cue, hold-to-confirm emergency and guarded destructive actions. |
|
||||
| Persistence | Separate settings, campaign, shift-history and versioned checkpoint files; default-filling migration, atomic writes and corrupt/partial-file fallback. Save locations and rollback are documented in [`getting-started.md`](getting-started.md#save-data-and-migration). |
|
||||
| Persistence | Separate settings, campaign, shift-history and versioned checkpoint files; default-filling migration, atomic writes and corrupt/partial-file fallback. Save locations and rollback are documented in [`getting-started.md`](../process/getting-started.md#save-data). |
|
||||
| Assets | Blender character/gear/prop library with AO and manifests; 256² NPC maps with 4× fabric weave; image/texture pipelines, reference boards and three-up boards; environment/realism capture tools. |
|
||||
| Build/release | Godot 4.7.2 Compatibility/Web default plus optional Forward+ Desktop HQ. Gitea checks/build/publish, seven release assets, checksums, preflight/rollback and clean-worktree release discipline. |
|
||||
|
||||
@@ -41,7 +41,7 @@ and the active order/gaps in [`TODO.md`](../TODO.md).
|
||||
library and the MakeHuman head remain the tested fallback.
|
||||
- The roster passed its owner visual review on 2026-11-06: faces, head gear, hand-held and back
|
||||
gear were all accepted after the follow-up fixes. The review page and its sheets were retired;
|
||||
the measurements live in `docs/3d-model-review.md` and `docs/blender-assets.md`.
|
||||
the measurements live in `docs/assets/3d-model-review.md` and `docs/assets/blender-assets.md`.
|
||||
- Roster silhouette variety is narrower than the procedural library (three meshes for twelve
|
||||
roles, differentiated by tint and gear) until the modular part library is added.
|
||||
- Head gear is authored for the shipped Quaternius head; the procedural fallback therefore wears
|
||||
@@ -51,6 +51,6 @@ and the active order/gaps in [`TODO.md`](../TODO.md).
|
||||
- Live 3D replay, recorded VO/music, more venues and seasonal content are future
|
||||
work.
|
||||
|
||||
See [`TODO.md`](../TODO.md) for the ordered task list and
|
||||
[`known-limitations.md`](known-limitations.md) for the current release blockers.
|
||||
See [`TODO.md`](../../TODO.md) for the ordered task list and
|
||||
[`known-limitations.md`](../design/known-limitations.md) for the current release blockers.
|
||||
Architecture and ownership are in [`architecture.md`](architecture.md).
|
||||
@@ -15,13 +15,13 @@ The map-optimization references for the El Capitan Entertainment Centre block
|
||||
(6840 Hollywood Blvd) are in
|
||||
[`hollywood_boulevard/README.md`](hollywood_boulevard/README.md). The real-site
|
||||
facts and game mapping are documented in
|
||||
[`../../venues.md`](../../venues.md#hollywood-boulevard).
|
||||
[`../../venues.md`](../../design/venues.md#hollywood-boulevard).
|
||||
|
||||
## The Joke Shop — Sunset Strip
|
||||
|
||||
The current Joke Shop map is based on The Comedy Store at 8433 Sunset Blvd.
|
||||
The real-site mapping and simplifications are in
|
||||
[`../../venues.md`](../../venues.md#the-joke-shop); the frames are in
|
||||
[`../../venues.md`](../../design/venues.md#the-joke-shop); the frames are in
|
||||
[`joke_shop/README.md`](joke_shop/README.md).
|
||||
|
||||

|
||||
|
||||
@@ -4,7 +4,7 @@ AI-generated art-direction frames for the real El Capitan Entertainment Centre
|
||||
block at 6840 Hollywood Boulevard. They are generated with
|
||||
`tools/scene_concepts.py generate --group scene --only ...` and are not shipped
|
||||
game textures. The geometry mapping and source links are in
|
||||
[`../../../venues.md`](../../../venues.md#hollywood-boulevard).
|
||||
[`../../../venues.md`](../../../design/venues.md#hollywood-boulevard).
|
||||
|
||||
## Entrance — day
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ AI-generated art-direction frames for the fictional Joke Shop, based on the
|
||||
real Comedy Store block at 8433 Sunset Boulevard. They are generated with
|
||||
`tools/scene_concepts.py generate --group scene --only ...` and are not shipped
|
||||
game textures. The geometry mapping and source links are in
|
||||
[`../../../venues.md`](../../../venues.md#the-joke-shop).
|
||||
[`../../../venues.md`](../../../design/venues.md#the-joke-shop).
|
||||
|
||||
## Entrance — day, photo-anchored
|
||||
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
# Head rework — review page (2026-11-04)
|
||||
|
||||
> **Historical page / changed source (2026-11-04).** The numbers below describe the
|
||||
> earlier decimated MakeHuman head (1,548-tri skin). The shared source
|
||||
> `assets/models/blender_src/makehuman_head.glb` now holds the higher-resolution
|
||||
> standalone prototype. The owner accepted the basic head; the automated vision gate
|
||||
> still records REJECT on the eye/lid region as deferred polish. See
|
||||
> [`../../makehuman-head-review.md`](../../makehuman-head-review.md). Re-run the
|
||||
> library head build before relying on the comparison counts below.
|
||||
|
||||
This page is the review checkpoint for the NPC head rework. The goal was to replace the
|
||||
sphere-and-floating-primitive face with a head that has real nose / chin / jaw landmarks at
|
||||
portrait distance.
|
||||
|
||||
## What changed
|
||||
|
||||
The original procedural face is a head sphere plus separate nose, mouth, ear and eye primitives.
|
||||
The new head uses the **decimated MakeHuman head** (CC0, 1,573 tris) as the base shape and keeps
|
||||
the project's separate eyeballs, brow and mouth pieces on top. An AI judge was used to drive the
|
||||
decision: it scored the procedural rework at ~3/5 and then picked the MakeHuman head as the
|
||||
clearer silhouette.
|
||||
|
||||
| | Source | Tris (head) | Read |
|
||||
| --- | --- | --- | --- |
|
||||
| **Before** | procedural `_face` (sphere + primitives) | ~1,900 | flat face, slit eyes |
|
||||
| **After** | overhauled MakeHuman head + project eyes/brows/mouth | ~1,880 | smooth nose/chin/jaw landmarks |
|
||||
|
||||
The head source was overhauled 2026-11-04: the blocky decimated MakeHuman head was welded
|
||||
(merge-by-distance) and Laplacian-relaxed into one clean manifold shell (`makehuman_head.glb`,
|
||||
1,548 tris skin), then the project eyes/brows/mouth were added.
|
||||
|
||||
## AI-generated target concept
|
||||
|
||||
The rework was guided by two generated concept frames (front + profile, `bytedance-seed/seedream-4.5`).
|
||||
|
||||

|
||||
|
||||
## 1.85 m comparison (top = current, bottom = new)
|
||||
|
||||
Left to right: front, three-quarter, profile.
|
||||
|
||||

|
||||
|
||||
## New head at 1.5 m (portrait)
|
||||
|
||||

|
||||
|
||||
## Contract and checks
|
||||
|
||||
- `blender_assets.py inspect` on the assembled `npc_casual` with the new head: **14 bones,
|
||||
skinned, no issues**.
|
||||
- Source: `assets/models/blender_src/makehuman_head.glb` (CC0, attributed in `CREDITS.md`).
|
||||
- Python 167/167, Godot 277/277, `check_docs` OK.
|
||||
|
||||
## Remaining polish (known, not blockers)
|
||||
|
||||
1. The hair cap still reads as a stepped block instead of hugging the skull.
|
||||
2. The brows weld to the face but can read as a slightly separate bar.
|
||||
3. The neck underside cap is plain; it is hidden by the body neck in the assembled character.
|
||||
4. The head skin is 1.5k tris (smooth but low-poly); a retopology pass could add resolution if a
|
||||
portrait shows faceting.
|
||||
|
||||
## Decision (2026-11-04, owner)
|
||||
|
||||
The MakeHuman-head direction is approved for the basic human head. The remaining review is the
|
||||
assembled prototype's hair cap and full-body silhouette. After that, roll the head into the other
|
||||
11 variants (one asset family at a time) with a before/after sheet per batch, then re-run the
|
||||
24-NPC budget + AO bake.
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 45 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 55 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB |
@@ -76,8 +76,8 @@ committed here is the redacted copy, not the original.
|
||||
## How the folder is used
|
||||
|
||||
- Build the venue **three-up boards** (photo | concept | current capture) for the review verdicts.
|
||||
- Link the board from the venue map document (`docs/venues.md#hollywood-boulevard`,
|
||||
`docs/venues.md#the-joke-shop`) and from the local-map block notes.
|
||||
- Link the board from the venue map document (`docs/design/venues.md#hollywood-boulevard`,
|
||||
`docs/design/venues.md#the-joke-shop`) and from the local-map block notes.
|
||||
- Cite the sidecar when a texture, proportion or signage decision is derived from a photo.
|
||||
- Refresh the board when a venue change makes an old reference misleading, and note the change in
|
||||
the sidecar.
|
||||
|
||||
@@ -34,12 +34,12 @@ attribution string for CC BY / CC BY-SA in the `Author` or a note below.
|
||||
|
||||
| Decision | Evidence | Where it landed |
|
||||
| --- | --- | --- |
|
||||
| e.g. six-column spacing kept at 2.4 m | photo 1, measured against door width | `docs/venues.md#hollywood-boulevard` |
|
||||
| e.g. six-column spacing kept at 2.4 m | photo 1, measured against door width | `docs/design/venues.md#hollywood-boulevard` |
|
||||
| e.g. banner red sampled to `#8a1f24` | photo 1 + photo 2 | `docs/screens/refs/hollywood/` notes, facade kit |
|
||||
|
||||
## Generated boards used with this set
|
||||
|
||||
Generated frames live in [`../../concepts/`](../../concepts/README.md); reference them here so the
|
||||
Generated frames live in [`../../concepts/`](../concepts/README.md); reference them here so the
|
||||
three-up sheet is reproducible.
|
||||
|
||||
| Board | Path | Model | Prompt / seed | Generated | Spend |
|
||||
|
||||
@@ -11,7 +11,7 @@ TV Studio board.
|
||||
|
||||
Provenance, licences and the decisions these photos informed are in
|
||||
[`SIDECAR.md`](SIDECAR.md). The rules for this folder are in
|
||||
[`../README.md`](../README.md); generated art-direction frames live in
|
||||
[`../README.md`](README.md); generated art-direction frames live in
|
||||
[`../../concepts/hollywood_boulevard/`](../../concepts/hollywood_boulevard/README.md).
|
||||
|
||||
| Photo | What it is evidence for |
|
||||
@@ -35,5 +35,5 @@ Provenance, licences and the decisions these photos informed are in
|
||||
- The east retail neighbour beyond the temple (the modern retail block), for facade rhythm at the
|
||||
right-hand edge of the venue.
|
||||
|
||||
Add new files with the naming convention in [`../README.md`](../README.md) and list them in the
|
||||
Add new files with the naming convention in [`../README.md`](README.md) and list them in the
|
||||
sidecar in the same commit.
|
||||
@@ -26,7 +26,7 @@
|
||||
Licence texts: [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/),
|
||||
[CC BY 3.0](https://creativecommons.org/licenses/by/3.0/) and
|
||||
[CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/). The CC BY and CC BY-SA files are
|
||||
also listed in [`../../../CREDITS.md`](../../../CREDITS.md) under "Development-only reference
|
||||
also listed in [`../../../../CREDITS.md`](../../../../CREDITS.md) under "Development-only reference
|
||||
images".
|
||||
|
||||
**CC BY-SA review (2026-11-03):** `hollywood-boulevard-night-context-ccbysa.jpg` is redistributed
|
||||
@@ -51,10 +51,10 @@ before use.
|
||||
|
||||
| Decision | Evidence | Where it landed |
|
||||
| --- | --- | --- |
|
||||
| Six Ionic columns, ~2.4 m spacing, 8 steps | facade photo measured against the door width | `docs/venues.md#hollywood-boulevard` geometry notes |
|
||||
| Six Ionic columns, ~2.4 m spacing, 8 steps | facade photo measured against the door width | `docs/design/venues.md#hollywood-boulevard` geometry notes |
|
||||
| Masonic parapet motto and medallions | 1922 elevation + facade photo | `WorldBuilder` facade, `docs/screenshots/01-venue-overview.png` |
|
||||
| Three vertical event banners | facade photo | facade banners and the day/night capture set |
|
||||
| Red carpet + barrier staging narrows the sidewalk | premiere photo | `docs/venues.md#hollywood-boulevard` event staging notes |
|
||||
| Red carpet + barrier staging narrows the sidewalk | premiere photo | `docs/design/venues.md#hollywood-boulevard` event staging notes |
|
||||
| Across-street height and plaza opening | Ovation photo | opposite frontage massing |
|
||||
| TV Studio arrival staging (bulb canopy, car, barriers) | premiere staging photo | `VENUE_SPECS["tv_studio"]` and the Late Night TV Studio venue docs |
|
||||
| Terrazzo band width, star size/spacing | terrazzo + star close-up photos | `WalkOfFame` band geometry and the paver material |
|
||||
|
||||
@@ -29,6 +29,6 @@ README, the gameplay docs and the screenshot gate; do not edit them by hand.
|
||||
| 21 | [Responder arrival](21-responder-arrival.png) | A responder at the locked door |
|
||||
|
||||
The captures are 1280×720 PNGs. Reference designs and the judge report live in
|
||||
[`../screens/`](../screens/README.md) and [`../ui-copy.md#screen-design-judge-report`](../ui-copy.md#screen-design-judge-report);
|
||||
[`../screens/`](../screens/README.md) and [`../ui-copy.md#screen-design-judge-report`](../design/ui-copy.md#screen-design-judge-report);
|
||||
the re-evaluation's pose and review sheets are under
|
||||
[`../blender_previews/`](../blender_previews/README.md).
|
||||
Reference in new issue
Block a user