Commit Graph

29 Commits

Author SHA1 Message Date
Jeffrey Wilcke
df448525c2 feat(city): walker with symmetric shadowcasting FOV
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:51:14 +02:00
Jeffrey Wilcke
997814e2f3 feat(city): title, configure and files screens
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:49:49 +02:00
Jeffrey Wilcke
73596eadd2 feat(city): animated generating screen
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:47:14 +02:00
Jeffrey Wilcke
acd0286bab feat(city): logo, menu, form, panels and transitions
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:45:16 +02:00
Jeffrey Wilcke
741231c25b feat(city): digital net overlay
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:42:11 +02:00
Jeffrey Wilcke
d43f1b68f0 feat(city): map viewport, camera, minimap, weather and traffic overlays
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:41:04 +02:00
Jeffrey Wilcke
f005d0c1b2 feat(city): style pack, tileset and lighting
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:37:36 +02:00
Jeffrey Wilcke
0e14cd14fc feat(city): animation primitives and effects
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:34:04 +02:00
Jeffrey Wilcke
68be96a8b2 feat(city): app loop, terminal guard, save format, gen CLI
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:33:18 +02:00
Jeffrey Wilcke
0d459e7058 fix(citygen): robustness found by the extended seed sweep
- 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>
2026-10-12 17:30:54 +02:00
Jeffrey Wilcke
9ac713bbe9 feat(citygen): City::validate and seed sweep tests
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>
2026-10-12 17:21:08 +02:00
Jeffrey Wilcke
b781e60d73 feat(citygen): net graph stage
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:15:13 +02:00
Jeffrey Wilcke
90b626e034 feat(citygen): naming stage
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:12:00 +02:00
Jeffrey Wilcke
fad98bba0b feat(citygen): dressing, light maps, variants
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:11:22 +02:00
Jeffrey Wilcke
2fff121576 feat(citygen): connectivity repair and public connectors
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:09:06 +02:00
Jeffrey Wilcke
ac14d2c299 feat(citygen): building interiors, doors, windows, shafts
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>
2026-10-12 17:06:29 +02:00
Jeffrey Wilcke
466e587fb7 feat(citygen): undercity, skyways and heights verticals
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 17:01:41 +02:00
Jeffrey Wilcke
7d3bd8d394 feat(citygen): lots and building placement
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>
2026-10-12 16:58:06 +02:00
Jeffrey Wilcke
9cc97b87cf feat(citygen): per-theme street subdivision and blocks
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:53:26 +02:00
Jeffrey Wilcke
6ba66d5e63 feat(citygen): arterial road network
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:50:04 +02:00
Jeffrey Wilcke
fca3e32c97 feat(citygen): districts stage with themed Voronoi regions
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:48:48 +02:00
Jeffrey Wilcke
7c9928214f feat(citygen): generator state machine, pathing helpers, terrain stage
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:47:02 +02:00
Jeffrey Wilcke
c8d8deeb0f feat(citygen): flavor pack and theme table
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:44:14 +02:00
Jeffrey Wilcke
3a17d7e1cd feat(citygen): params validation, GenError, seeded rng helpers
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:42:32 +02:00
Jeffrey Wilcke
40b6972664 feat(citygen): tile, world and net data model
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:41:47 +02:00
Jeffrey Wilcke
698a6a13db feat(citygen): geometry primitives and Grid
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:40:04 +02:00
Jeffrey Wilcke
76c07e2927 chore: cargo workspace with citygen and city crates
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-12 16:39:05 +02:00
Jeffrey Wilcke
7b225cc5e8 docs: city generator implementation plan
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>
2026-10-12 16:37:18 +02:00
6a9e592fca docs: city generator design spec
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>
2026-10-12 16:19:45 +02:00