🗺️ 2D City Growth — Road-Weighted Urban CA
A road-network-driven urban cellular automaton in flat 2D. Development probability comes from real accessibility: distance to the nearest road plus distance to existing development. Tune road attraction to switch between compact and sprawling growth.
🗺️ City Growth 2D — Road-Weighted Urban Cellular Automaton
A flat 2D cellular automaton where a real road network — a highway cross, a diagonal arterial, and a ring road — drives urban development. Growth probability comes from an accessibility field built from actual distance to the road network and to existing development, not from a simple neighbour count.
🔬 What It Demonstrates
Each empty cell's chance of developing is growthRate × (roadWeight × 1/(1+roadDistance) + devWeight × 1/(1+devDistance)), where both distances come from real multi-source breadth-first searches over the grid. High road attraction produces ribbon-like sprawl that leapfrogs along corridors; low road attraction produces compact, contiguous growth that hugs the existing built-up edge.
🎮 How to Use
Drag Road attraction toward 100% and watch development jump out along the yellow road lines, far from the core. Drag it toward 0% and growth instead fills in a tight, concentric city. Growth rate and Densify scale the underlying probabilities as usual.
💡 Did You Know?
This mirrors real "accessibility-based" urban growth models used in planning practice, where transport infrastructure — not just proximity to other buildings — is one of the strongest predictors of where new development appears.
A flat 2D urban cellular automaton driven by a real road network — highway cross, diagonal arterial and ring road — rather than raw neighbour counts. Each empty cell's development probability comes from an accessibility field combining actual BFS-computed distance to the nearest road and to existing development, so a road-attraction slider genuinely switches the outcome between ribbon-like sprawl along corridors and compact, contiguous growth around the core.
2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install