- 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.
17 KiB
TODO.md
Actionable task list for this project. Planned work and progress marks live here; supporting observations are in MEMORY.md. Milestone goals, scope, and release gates are in 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.mdentry, 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.
- Group the sixty tools by sandbox:
Tools/unreal/,Tools/blender/,Tools/review/,Tools/gen/,Tools/input/, with the layout documented inTools/README.md. - Empty both maps and verify that no actors remain using
Tools/unreal/ue_recreate_maps.py. - Clear the whole level in both builders.
- Two-model judge with reconciliation, and a two-checkpoint texture generator that compares before choosing.
- Texture generation through the documented Stability Matrix workflows (
texturesubcommand). - Local ComfyUI documented, including "start Stability Matrix first" and the per-model licence rules.
- 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.
Tasks
- Give
SK_Vehicle_Sedana physics asset whose single chassis body matches the car's box. Resolved 2026-11-10 — two causes, both fixed:ChaosVehiclesPluginwas not enabled in.uproject, soCreateVehicle()never ran (0 wheels); andBuildPhysicsAssetnever setBody->PhysicsType, so the body stayedPhysType_Default(follow owner) and never simulated. Enabling the plugin (5e328f5) and settingPhysicsType = PhysType_Simulated(927e937) make the pawn simulate, settle at Z 77 cm, and drive (-drivetestmoved 36.3 m). - Find what writes the actor transform in
DemoMapbut not inReviewMap. 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. - 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 wheelsbAffectedByEngine, engine torque sign, or wheel bone axle orientation — not the physics setup.
Hero facade rework — from the ReviewMap review (own task)
See historical notes.
Tasks
- Confirm the hero captures frame
Hero_Facade. - Seat the elevation detail in front of the mass.
- Remove the blank lintel band across the portals.
- Add window grilles, ashlar courses, and a roof balustrade.
- Warm the sandstone material in the engine.
- Match banner proportions and placement to the photographs.
- Make the generated ashlar albedo render.
- Add the carved inscription.
- Add medallion relief that reads at 45 m.
- Fix the motto band and surround.
- Add JIMMY KIMMEL LIVE banner lettering.
- Adjust the crimson banner tone and lettering.
- 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)
- [A] Model one vehicle in Blender with collision meshes; export to Unreal.
- [D] Set up Chaos Vehicle with wheel and physics configuration.
- Fix the vehicle not rendering in the scene.
- Fix the character and car floating.
- Fix the vehicle material colour.
- Fix the missing vehicle glazing.
- 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.0and writeCHANGELOG.mdentry; then remove this section.
0.3.1 — Handling tuning (patch)
Patch tasks
- Refine vehicle handling feel based on
0.3.0feedback. - Tag
v0.3.1and writeCHANGELOG.mdentry; then remove this section.
0.3.2 — Vehicle collision fixes (patch)
Patch tasks
- Fix vehicle collision defects (mesh/physics mismatches).
- Tag
v0.3.2and writeCHANGELOG.mdentry; then remove this section.
0.3.3 — Input fixes (patch)
Patch tasks
- Fix vehicle/character input issues in
0.3.x. - Tag
v0.3.3and writeCHANGELOG.mdentry; 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.0and writeCHANGELOG.mdentry; then remove this section.
0.4.1 — Seam fixes (patch)
Patch tasks
- Fix visible seams between streamed cells.
- Tag
v0.4.1and writeCHANGELOG.mdentry; then remove this section.
0.4.2 — Streaming corrections (patch)
Patch tasks
- Correct streaming/loading issues found in
0.4.x. - Tag
v0.4.2and writeCHANGELOG.mdentry; then remove this section.
0.4.3 — HLOD tuning (patch)
Patch tasks
- Tune HLOD quality and distance settings.
- Tag
v0.4.3and writeCHANGELOG.mdentry; 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.0and writeCHANGELOG.mdentry; then remove this section.
0.5.1 — Navigation fixes (patch)
Patch tasks
- Fix pedestrian navigation issues.
- Tag
v0.5.1and writeCHANGELOG.mdentry; then remove this section.
0.5.2 — Crossing fixes (patch)
Patch tasks
- Fix crosswalk behavior defects.
- Tag
v0.5.2and writeCHANGELOG.mdentry; then remove this section.
0.5.3 — Simulation optimization (patch)
Patch tasks
- Optimize pedestrian/traffic simulation cost.
- Tag
v0.5.3and writeCHANGELOG.mdentry; then remove this section.
0.6.0 — Visual/audio pass and evening lighting preset (weeks 22–24)
Look and sound
See pavement notes.
- 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.0and writeCHANGELOG.mdentry; then remove this section.
0.6.1 — Lighting fixes (patch)
Patch tasks
- Fix lighting defects in day/evening presets.
- Tag
v0.6.1and writeCHANGELOG.mdentry; then remove this section.
0.6.2 — Material corrections (patch)
Patch tasks
- Fix material errors found in
0.6.x. - Tag
v0.6.2and writeCHANGELOG.mdentry; then remove this section.
0.6.3 — Audio balancing (patch)
Patch tasks
- Balance audio levels across the scene.
- Tag
v0.6.3and writeCHANGELOG.mdentry; 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.0and writeCHANGELOG.mdentry; then remove this section.
0.7.1 — Save fixes (patch)
Patch tasks
- Fix save/load defects.
- Tag
v0.7.1and writeCHANGELOG.mdentry; then remove this section.
0.7.2 — UI fixes (patch)
Patch tasks
- Fix UI issues in
0.7.x. - Tag
v0.7.2and writeCHANGELOG.mdentry; then remove this section.
0.7.3 — Input persistence fixes (patch)
Patch tasks
- Fix rebinding persistence issues.
- Tag
v0.7.3and writeCHANGELOG.mdentry; 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.0and writeCHANGELOG.mdentry; then remove this section.
0.8.1 — VRAM reductions (patch)
Patch tasks
- Reduce VRAM usage where profiling shows excess.
- Tag
v0.8.1and writeCHANGELOG.mdentry; 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.2and writeCHANGELOG.mdentry; then remove this section.
0.8.3 — Compatibility fixes (patch)
Patch tasks
- Fix compatibility issues from the hardware testing matrix.
- Tag
v0.8.3and writeCHANGELOG.mdentry; then remove this section.
0.9.0 — Realistic buildings (weeks 31–34)
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.mdand 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.pyand 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.mdcovers every photographic reference used in this pass.- Performance target still met at 1440p.
- Tag
v0.9.0and writeCHANGELOG.mdentry; 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.0and writeCHANGELOG.mdentry; then remove this section.
0.10.1 — Blocker fixes (patch)
Patch tasks
- Fix blockers reported during the public beta.
- Tag
v0.10.1and writeCHANGELOG.mdentry; then remove this section.
0.10.2 — Regression fixes (patch)
Patch tasks
- Fix regressions introduced by
0.9.xfixes. - Tag
v0.10.2and writeCHANGELOG.mdentry; then remove this section.
0.10.3 — Documentation fixes (patch)
Patch tasks
- Update all
Docs/for accuracy before1.0.0. - Tag
v0.10.3and writeCHANGELOG.mdentry; 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.xfeatures. - Confirm the stable, agreed game scope is met (neighborhood-scale walking and driving).
- Final build, documentation, and licensing verification.
- Tag
v1.0.0and writeCHANGELOG.mdentry; then remove this section.