The game is called cyberpunk; the city generator is its first subsystem,
not the project. The citygen library keeps its name. README reframed
around the game.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- screen transitions snapshot the previous frame (ratatui swaps buffers
after draw, so the old snapshot was always blank); frame loop extracted
into a testable Runner
- .city loading rejects structurally inconsistent files: Grid deserialize
checks size vs data, load_city checks header vs body and runs
City::validate (now also checks Net link endpoints)
- saving from the map hands the live map screen back instead of a fresh
explore screen
- signage glyphs covered by the unicode-width test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- README with run instructions and key reference
- lift the crate-level dead_code allowance; scope it to the anim library surface
- render paths tolerate a city that is still generating (district/building ids
without entries), found by driving the app through a pty
- status messages show in the status bar, not only inside the inspector
- buffered JSON export (26 s -> 0.4 s for a large city)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- arterials merge onto existing roads and keep distance otherwise
- isolated strata components get a drop-in public connector
- blockless districts fall back to the largest clean rectangle
- sliver districts merge into neighbours (district count is a maximum)
- dressing removes blocking features that cut tiles off the street
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Also guarantees one building per district and repairs interiors split
by crossing partitions, both found by the new validation.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Blocks now keep a one-tile margin from water, the map edge and other
districts and get an alley ring; lots are cut as back-to-back rows so
every building has an outdoor-facing wall for its door.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Also makes block fitting recursive so irregular district regions split
into several clean blocks instead of being dropped.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
28 tasks covering the citygen crate (model, eleven generator stages,
validation, seed sweeps) and the city crate (app loop, save format,
animation, tileset, overlays, widgets, screens, walker).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Approved design for the seeded multi-stratum cyberpunk city generator,
its ratatui app (generate, watch, explore, walk), the Net graph and
digital overlay, persistence, and testing strategy.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>