Files
gig-line/TODO.md
T
zwitschi dc7b7652af docs(todo): consolidate vehicle investigation into MEMORY.md; mark tasks resolved
- TODO.md: drop the 200+ lines of vehicle-investigation prose (evidence, ruled-out
  list, bisect results) that MEMORY.md already carries, and point the intro at
  MEMORY.md for observations. Mark the three Chaos-rig tasks resolved (plugin
  enablement -> 4 wheels; PhysicsType=Simulated -> simulates/settles/drives).
- AGENTS.md: note that observations belong in MEMORY.md, not TODO.md.
2026-11-10 18:40:23 +01:00

382 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TODO.md
Actionable task list for this project. Planned work and progress marks live here; supporting observations are in [MEMORY.md](MEMORY.md). Milestone goals, scope, and release gates are in [ROADMAP.md](ROADMAP.md).
## Conventions
- Mark items **open** (`- [ ]`), **active/in progress** (`- [A]`, **deferred** `- [D]`), or **done** (`- [x]`). Keep the marks accurate.
- A level-three (`###`) section being worked on carries `- active - <sessionId>` (and optionally the branch name) in its heading. Remove the suffix when you stop.
- When all steps in a version section are done: write a `CHANGELOG.md` entry, then remove the version section from this file.
- Release gate: a version is tagged only on the owner's explicit go-ahead once its release checks pass, not automatically when the checkboxes close.
## Toolchain — end-to-end asset check (done 2026-11-10)
> [!IMPORTANT] Plan for 0.3.1 before other patches
See [toolchain notes](MEMORY.md#toolchain--end-to-end-asset-check-done-2026-11-10).
- [x] Group the sixty tools by sandbox: `Tools/unreal/`, `Tools/blender/`, `Tools/review/`, `Tools/gen/`, `Tools/input/`, with the layout documented in `Tools/README.md`.
- [x] Empty both maps and verify that no actors remain using `Tools/unreal/ue_recreate_maps.py`.
- [x] Clear the whole level in both builders.
- [x] Two-model judge with reconciliation, and a two-checkpoint texture generator that compares before choosing.
- [x] Texture generation through the documented Stability Matrix workflows (`texture` subcommand).
- [x] Local ComfyUI documented, including "start Stability Matrix first" and the per-model licence rules.
- [x] Driver hardening: unlink result files before each step, stream child output to a per-step log, refuse to start while another editor is alive.
- [ ] **Make the judge useful again.**
- [ ] Examine comfyui tool to extend judge coverage or improve its scoring mechanism.
- [ ] Wire the e2e driver into the release checks once the judge can be trusted.
## Vehicle physics — Chaos rig (own task, from `0.3.0`)
> [!IMPORTANT] Plan for 0.3.1 before other patches
See [historical notes](MEMORY.md#vehicle-physics--chaos-rig-own-task-from-030).
### Tasks
- [x] Give `SK_Vehicle_Sedan` a physics asset whose single chassis body matches the car's box. **Resolved 2026-11-10** — two causes, both fixed: `ChaosVehiclesPlugin` was not enabled in `.uproject`, so `CreateVehicle()` never ran (`0 wheels`); and `BuildPhysicsAsset` never set `Body->PhysicsType`, so the body stayed `PhysType_Default` (follow owner) and never simulated. Enabling the plugin (`5e328f5`) and setting `PhysicsType = PhysType_Simulated` (`927e937`) make the pawn **simulate, settle at Z 77 cm, and drive** (`-drivetest` moved 36.3 m).
- [x] Find what writes the actor transform in `DemoMap` but not in `ReviewMap`. **Resolved** — it was never a transform writer: the body was not simulating (see above), so the "float" and "teleport" were the unsimulated chassis being driven by the regular rigid-body solver instead of the Chaos async solver.
- [x] Confirm `Wheels.Num()` becomes 4 once the vehicle is created; log it at the settle check. **4 wheels** once the plugin is enabled (`setups=4 wheels=4`).
- [ ] Re-stage the pawn, re-add enter/exit and the driving route. **Drives backwards** (`-96.5 km/h`): the next bug is the reverse direction — rear wheels `bAffectedByEngine`, engine torque sign, or wheel bone axle orientation — not the physics setup.
## Hero facade rework — from the ReviewMap review (own task)
See [historical notes](MEMORY.md#hero-facade-rework--from-the-reviewmap-review-own-task).
### Tasks
- [x] Confirm the hero captures frame `Hero_Facade`.
- [x] Seat the elevation detail in front of the mass.
- [x] Remove the blank lintel band across the portals.
- [x] Add window grilles, ashlar courses, and a roof balustrade.
- [x] Warm the sandstone material in the engine.
- [x] Match banner proportions and placement to the photographs.
- [x] Make the generated ashlar albedo render.
- [x] Add the carved inscription.
- [x] Add medallion relief that reads at 45 m.
- [x] Fix the motto band and surround.
- [x] Add JIMMY KIMMEL LIVE banner lettering.
- [x] Adjust the crimson banner tone and lettering.
- [x] Re-render the three ReviewMap staging shots and update the status table.
- [ ] Obtain owner approval for the three hero facade staging shots.
## 0.3.0 — Chaos vehicle, enter/exit, closed driving route (weeks 10–13)
### Vehicle production - active - session-5598ce7e-27e3-4c64-bb49-c04a4a31ee58 (branch `vehicle-0.3.0`)
See [vehicle production notes](MEMORY.md#030--chaos-vehicle-enterexit-closed-driving-route-weeks-1013).
- [A] Model one vehicle in Blender with collision meshes; export to Unreal.
- [D] Set up Chaos Vehicle with wheel and physics configuration.
- [x] Fix the vehicle not rendering in the scene.
- [x] Fix the character and car floating.
- [x] Fix the vehicle material colour.
- [x] Fix the missing vehicle glazing.
- [x] Reconcile the road and sidewalk surfaces.
- [ ] Wire the vehicle LOD group in an editor session.
- [ ] Implement enter/exit interaction.
- [ ] Build a closed driving route with boundaries.
- [ ] Tune basic handling to a drivable state.
### Release checks
- [ ] Player can enter, drive the closed route, and exit without defects.
- [ ] No blocking vehicle collision or packaging defects.
- [ ] Performance target still met at 1440p.
- [ ] Tag `v0.3.0` and write `CHANGELOG.md` entry; then remove this section.
## 0.3.1 — Handling tuning (patch)
### Patch tasks
- [ ] Refine vehicle handling feel based on `0.3.0` feedback.
- [ ] Tag `v0.3.1` and write `CHANGELOG.md` entry; then remove this section.
## 0.3.2 — Vehicle collision fixes (patch)
### Patch tasks
- [ ] Fix vehicle collision defects (mesh/physics mismatches).
- [ ] Tag `v0.3.2` and write `CHANGELOG.md` entry; then remove this section.
## 0.3.3 — Input fixes (patch)
### Patch tasks
- [ ] Fix vehicle/character input issues in `0.3.x`.
- [ ] Tag `v0.3.3` and write `CHANGELOG.md` entry; then remove this section.
## 0.4.0 — Small connected neighborhood and map streaming (weeks 14–17)
### World expansion
- [ ] Extend geo pipeline to a small connected neighborhood beyond the demo block.
- [ ] Produce modular buildings, sidewalks, and roads for the expanded area.
- [ ] Set up World Partition with streaming cells.
- [ ] Configure HLOD for distant buildings.
- [ ] Verify no seams or popping between streamed cells during traversal.
### Release checks
- [ ] Continuous walking (and driving) across the expanded area works.
- [ ] Streaming does not introduce blocking defects.
- [ ] Performance target re-validated at 1440p with streaming active.
- [ ] Tag `v0.4.0` and write `CHANGELOG.md` entry; then remove this section.
## 0.4.1 — Seam fixes (patch)
### Patch tasks
- [ ] Fix visible seams between streamed cells.
- [ ] Tag `v0.4.1` and write `CHANGELOG.md` entry; then remove this section.
## 0.4.2 — Streaming corrections (patch)
### Patch tasks
- [ ] Correct streaming/loading issues found in `0.4.x`.
- [ ] Tag `v0.4.2` and write `CHANGELOG.md` entry; then remove this section.
## 0.4.3 — HLOD tuning (patch)
### Patch tasks
- [ ] Tune HLOD quality and distance settings.
- [ ] Tag `v0.4.3` and write `CHANGELOG.md` entry; then remove this section.
## 0.5.0 — Pedestrians, crosswalk behavior, ambient traffic (weeks 18–21)
### Simulation
- [ ] Add pedestrian characters with navigation, using `AGigLineNPCPerson` (the reusable NPC prefab) as the base, driving it via AI/`AutoPossessAI`.
- [ ] Implement crosswalk behavior (pedestrians use the designated crossing).
- [ ] Add limited ambient traffic on the street network.
- [ ] Optimize simulation cost to stay within frame budget.
### Release checks
- [ ] Pedestrians and traffic behave without blocking defects.
- [ ] Performance target re-validated at 1440p.
- [ ] Tag `v0.5.0` and write `CHANGELOG.md` entry; then remove this section.
## 0.5.1 — Navigation fixes (patch)
### Patch tasks
- [ ] Fix pedestrian navigation issues.
- [ ] Tag `v0.5.1` and write `CHANGELOG.md` entry; then remove this section.
## 0.5.2 — Crossing fixes (patch)
### Patch tasks
- [ ] Fix crosswalk behavior defects.
- [ ] Tag `v0.5.2` and write `CHANGELOG.md` entry; then remove this section.
## 0.5.3 — Simulation optimization (patch)
### Patch tasks
- [ ] Optimize pedestrian/traffic simulation cost.
- [ ] Tag `v0.5.3` and write `CHANGELOG.md` entry; then remove this section.
## 0.6.0 — Visual/audio pass and evening lighting preset (weeks 22–24)
### Look and sound
See [pavement notes](MEMORY.md#060--visualaudio-pass-and-evening-lighting-preset-weeks-2224).
- [ ] Create an evening lighting preset.
- [ ] Complete a visual polish pass across the neighborhood.
- [ ] Model the pavement between kerb and building line.
- [ ] Add ambient audio (city ambience, traffic, basic SFX).
- [ ] Verify licenses for all added audio files.
### Release checks
- [ ] Both day and evening presets render without defects.
- [ ] Audio plays without gaps or licensing issues.
- [ ] Performance target re-validated at 1440p.
- [ ] Tag `v0.6.0` and write `CHANGELOG.md` entry; then remove this section.
## 0.6.1 — Lighting fixes (patch)
### Patch tasks
- [ ] Fix lighting defects in day/evening presets.
- [ ] Tag `v0.6.1` and write `CHANGELOG.md` entry; then remove this section.
## 0.6.2 — Material corrections (patch)
### Patch tasks
- [ ] Fix material errors found in `0.6.x`.
- [ ] Tag `v0.6.2` and write `CHANGELOG.md` entry; then remove this section.
## 0.6.3 — Audio balancing (patch)
### Patch tasks
- [ ] Balance audio levels across the scene.
- [ ] Tag `v0.6.3` and write `CHANGELOG.md` entry; then remove this section.
## 0.7.0 — Settings, control rebinding, save/load, accessibility (weeks 25–27)
### Systems
- [ ] Build settings menu (graphics and audio options).
- [ ] Implement control rebinding with persistence.
- [ ] Implement save/load for player state.
- [ ] Add accessibility basics (e.g. FOV, subtitle, colorblind options as applicable).
### Release checks
- [ ] Settings, rebinding, and save/load all persist across restarts.
- [ ] No blocking UI defects.
- [ ] Tag `v0.7.0` and write `CHANGELOG.md` entry; then remove this section.
## 0.7.1 — Save fixes (patch)
### Patch tasks
- [ ] Fix save/load defects.
- [ ] Tag `v0.7.1` and write `CHANGELOG.md` entry; then remove this section.
## 0.7.2 — UI fixes (patch)
### Patch tasks
- [ ] Fix UI issues in `0.7.x`.
- [ ] Tag `v0.7.2` and write `CHANGELOG.md` entry; then remove this section.
## 0.7.3 — Input persistence fixes (patch)
### Patch tasks
- [ ] Fix rebinding persistence issues.
- [ ] Tag `v0.7.3` and write `CHANGELOG.md` entry; then remove this section.
## 0.8.0 — Performance budgets and broader Linux hardware testing (weeks 28–30)
### Performance
- [ ] Define performance budgets (frame time, VRAM) and document them.
- [ ] Profile the full neighborhood; fix budget violations.
- [ ] Test on broader Linux hardware and VRAM configurations; document results.
- [ ] Re-validate the 1440p quality preset with upscaling state recorded.
### Release checks
- [ ] Performance budgets met on documented hardware matrix.
- [ ] No blocking compatibility defects.
- [ ] Tag `v0.8.0` and write `CHANGELOG.md` entry; then remove this section.
## 0.8.1 — VRAM reductions (patch)
### Patch tasks
- [ ] Reduce VRAM usage where profiling shows excess.
- [ ] Tag `v0.8.1` and write `CHANGELOG.md` entry; then remove this section.
## 0.8.2 — Frame-time fixes (patch)
### Patch tasks
- [ ] Fix frame-time spikes found in `0.8.x`.
- [ ] Tag `v0.8.2` and write `CHANGELOG.md` entry; then remove this section.
## 0.8.3 — Compatibility fixes (patch)
### Patch tasks
- [ ] Fix compatibility issues from the hardware testing matrix.
- [ ] Tag `v0.8.3` and write `CHANGELOG.md` entry; then remove this section.
## 0.9.0 — Realistic buildings (weeks 31–34)
See [realistic building notes](MEMORY.md#090--realistic-buildings-weeks-3134).
### Façade system
- [ ] **Extend the module kit beyond one order.** Art Deco, neoclassical and streamline-moderne variants on the shared 4.96 m bay: alternate window proportions, spandrel and transom bands, and the way each order terminates at the roof.
- [ ] **Build a profile library** for cornices, copings, string courses, sills and storefront surrounds, so a building is assembled from named profiles rather than ad-hoc boxes.
- [ ] **Storefront types**: recessed entry, bulkhead and kickplate, mullion spacing, transom, awning/canopy brackets, and grille/shutter variants.
- [ ] **Signage and lettering as decals.** Make painted wall lettering, blade signs and fascia panels texture and decal work with a documented projection.
- [ ] Document the system in `Art/blender/README.md` and the arc42 building block view.
### Per-building models
- [ ] Use a building-specific reference set for each building; retain blockouts and record buildings without references.
- [ ] Hero façade (6840): add volute capital depth, lattice grille depth, window rhythm behind the colonnade, and heavy banded rustication.
- [ ] Hero façade (6840), entrance: add doors at street level left and right of the central bay and position the column bases, entrance stairs, set-back entrance, door frames, banners and signage correctly. Keep the façade unobstructed, with no awning or temporary structure.
- [ ] El Capitan Theatre (6838): marquee, blade sign, entrance and the theatre's own elevation from its 18-frame set.
- [ ] 6800 Lee Drug and 6806–6820: add wall lettering as a decal, a moulded parapet profile, richer corner-tower stepping, and portrait panel textures.
- [ ] Acquire references for 6822 Budget and record the sources checked in `Geo/`; retain its bare blockout until references are acquired.
- [ ] Re-shoot 6806–6820 and 6800 from the south sidewalk.
- [ ] 6902, 6922 and the remaining south frontage.
- [ ] North side: TCL Chinese Theatre and Madame Tussaud's façades from their reference sets.
- [ ] Reconcile every modelled height against `Geo/tools/block_height_report.py` and record the source per building.
### Materials, UVs and performance
- [ ] **Measured material library**, including the hero's stone: stucco, painted render, ashlar, brick, terrazzo, glazing, bronze and steel trim, with albedo and roughness taken from the photographs rather than guessed; one Unreal material instance per surface type.
- [ ] **Texel-density rule** per building class, applied through modular UVs; lightmap UVs where required.
- [ ] **LOD chain and collision proxies** per building: UCX proxies for blocking volume, detail geometry non-colliding.
- [ ] Re-validate the 60 FPS floor at 1440p once the detail lands, and record the cost of the pass.
### Release checks
- [ ] Every building with a photograph has a review shot measured against it, with silhouette and proportion deltas recorded in `Screenshots/README.md`.
- [ ] No building carries an unverified façade; blockouts without references are listed as such in `TODO.md`.
- [ ] Every building has a collision proxy and at least one LOD.
- [ ] No surface left on a placeholder material.
- [ ] `THIRD_PARTY_NOTICES.md` covers every photographic reference used in this pass.
- [ ] Performance target still met at 1440p.
- [ ] Tag `v0.9.0` and write `CHANGELOG.md` entry; then remove this section.
## 0.10.0 — Feature freeze, public beta, license and build audit (weeks 35–38)
### Freeze and audit
- [ ] Freeze features; document the freeze in `CHANGELOG.md`.
- [ ] Produce a public beta build for testers.
- [ ] Complete license audit: `THIRD_PARTY_NOTICES.md`, all MPFB assets, textures, animations, vehicles, audio.
- [ ] Review Epic distribution requirements before publishing.
- [ ] Verify a fresh checkout builds and packages reproducibly.
### Release checks
- [ ] Beta feedback triaged; blockers logged for `0.10.x`.
- [ ] Tag `v0.10.0` and write `CHANGELOG.md` entry; then remove this section.
## 0.10.1 — Blocker fixes (patch)
### Patch tasks
- [ ] Fix blockers reported during the public beta.
- [ ] Tag `v0.10.1` and write `CHANGELOG.md` entry; then remove this section.
## 0.10.2 — Regression fixes (patch)
### Patch tasks
- [ ] Fix regressions introduced by `0.9.x` fixes.
- [ ] Tag `v0.10.2` and write `CHANGELOG.md` entry; then remove this section.
## 0.10.3 — Documentation fixes (patch)
### Patch tasks
- [ ] Update all `Docs/` for accuracy before `1.0.0`.
- [ ] Tag `v0.10.3` and write `CHANGELOG.md` entry; then remove this section.
## 1.0.0 — Stable neighborhood-scale walking/driving release (weeks 35–40)
### Final release
- [ ] Complete final acceptance sweep across all `0.x` features.
- [ ] Confirm the stable, agreed game scope is met (neighborhood-scale walking and driving).
- [ ] Final build, documentation, and licensing verification.
- [ ] Tag `v1.0.0` and write `CHANGELOG.md` entry; then remove this section.