Infrastructure Development Model

Cellular automaton
gen 0 / 20
0.000
Avg development
0.0
Sum of cells
0
Saturated cells (≥1)
0.000
Δ vs previous gen

Development grid

Generation 0
Click-to-paint:
Low
00.250.50.751
High

Type of Cell (per column, along the road)

Click a cell to pick a road/junction type. The icon encodes direction of connection: up, down, or both.
How the model works

This model projects how development spreads along a linear road corridor. Each of the 20 columns represents a segment of road; each of the 11 rows is a band of land parallel to it (5 above, the road itself at row 5, and 5 below). Row 5 is the "seed row" where inputs combine. Off-row cells inherit a decayed share of the adjacent Type of Cell value and a static Position-of-Cell field. The grid is then propagated forward by neighborhood averaging for as many generations as you pick.

1. Road sets the stage

Road type (highway → local) and length set two global weights. Higher-class shorter roads have more pull.

2. Settlements pull

Population at each end creates a linear gravitational pull that interpolates across the corridor.

3. Geometric decay

Position-of-Cell decays away from the road (×0.5 per row) and from the endpoints (×0.75 per column).

4. Junctions boost

Each cell's Type of Cell (straight, T-junction, full junction, endpoint) adds a value and leaks into adjacent rows.

5. Hard overrides

Already-built and Agglomeration cells lock at 1. Slope and Restriction lock at 0. These always win.

6. Propagation

Each next generation adds the neighborhood average to each cell. Moore uses 8 neighbors, von Neumann uses 4. Saturated cells (≥1) stay at 1.

7. Limit of growth

Two optional brakes on each cell. The S-curve (α) chokes inflow as value approaches 1, giving the classic slow-fast-plateau curve. The per-cell growth-rate decay caps each generation's growth at a fraction of the previous generation's growth (0.5 = halves every step). Both prevent cells from reaching 1.0 too quickly.

Decisions and deviations from Excel