Quick start: choose a scenario, pick a tool at the bottom of the map (a street first, then residential / commercial / industrial zones beside it) and watch the R / C / I demand bars. With Inspect selected drag to orbit, right-drag to pan, wheel or ± to zoom; hover any tile for its numbers. Overlays show traffic, air, noise and land value.
Scenario
Population and balance
Why people come (attractiveness A)
Traffic
Power and water
Environment
Budget (monthly)
Self-checks (independent numerical tests)
How it works
Scale and honesty
Every tile is drawn 24 m wide but models one 100 m × 100 m city block (about 1 ha). The Blender kit shows a visual sample of that block (four houses, a courtyard of terraces, an apartment slab, …); capacities per tile are per block: residential 25 / 100 / 280 people, commercial 30 / 140 / 480 jobs, industrial 40 / 110 / 240 jobs at levels 1 / 2 / 3. Travel times, noise and plume distances use the 100 m scale.
This is a teaching model, not a forecasting tool. Public transport, walking, freight, land prices, politics and finance are not modelled, and every coefficient is rounded to a plausible textbook value.
Demand: R, C and I
g = 0.42 A (developers build a little ahead when the city is attractive)
P_des = (1 + g) x 1.05 x J_all / 0.48 residents the existing + planned jobs can feed
D_R = clamp(0.12 + 1.6 (P_des - H_all) / P_des, 0, 1)
J_des = (1 + g) x 0.48 x max(0.9 H_all, P) / 1.05 workplaces employers expect to be able to staff
D_J = clamp(0.12 + 1.6 (J_des - J_all) / J_des, 0, 1) split into D_C and D_I; shops follow customers (0.14 P + 0.05 J_I)
Each month an empty, road-connected zoned tile starts construction with probability 0.28 · D · (0.35 + 0.65 · desirability), and takes four months to build. Buildings upgrade (level 1 → 3) when land value and demand are high, and are abandoned after 30 months of very low desirability. Housing and jobs therefore pull each other up the way a real market does, but only as fast as construction allows.
Population: logistic growth to a carrying capacity
dP/dt = (r P + m) (1 - P/K) r = 0.15 (0.2 + 0.8 A) per year, m = 0.30 K per year
K = min( q H , 1.05 J / 0.48 ) q = 0.6 + 0.4 A
P(t) = K / (1 + (K/P0 - 1) e^(-r t)) (closed form for constant K, r, m = 0)
H housing capacity, J jobs, 0.48 is the labour-force share of residents, A the attractiveness score (0..1) built from jobs, services, power, water, air, noise, commute, parks, tax and debt (the bars on the City tab). The model is integrated monthly with a 4th-order Runge–Kutta step; the self-checks compare it with the closed form. Whichever of housing and jobs is smaller sets the carrying capacity, so the population is maximised when both limits meet — the experiment finds that balance.
Traffic: gravity trips, BPR delay, equilibrium assignment
T_ij = O_i D_j e^(-0.10 t_ij) / sum_k D_k e^(-0.10 t_ik) (t in minutes)
t_a(v) = t0 (1 + 0.15 (v / c)^4) (BPR volume-delay function)
flows: 4 iterations of the method of successive averages, all-or-nothing on shortest paths
vehicles/h = workers x car share x intensity x 0.38 / 1.15
Capacities are 600 veh/h per direction on a street (one lane plus parking) and 1,200 on an avenue; junction tiles add 3 s per crossing. v/c above 1 means the road is over capacity. The cars you see follow the computed flows; they are an illustration, not a micro-simulation.
Power and water
average demand = 0.20 kW per resident + 0.9 kW per commercial job + 4.6 kW per industrial job + 1.2 kW per public job
D(h) = average x daily shape(h) (evening peak 1.3-1.5 x)
wind(h) = n x 1.5 MW x P(v) P(v) = (v^3 - 27)/(1728 - 27) between 3 and 12 m/s, 1 up to 25 m/s
solar(h) = n x 1.2 MWp x 0.20 x sun shape(h)
water = (150 L per resident + 60 L per commercial job + 400 L per industrial job) x 1.15 leakage
Gas is dispatched to cover what wind and solar do not, up to 40 MW per plant. Unmet energy over the 24 h profile lowers attractiveness. CO2 uses 0.40 t per MWh of gas generation. The turbines are shown at reduced size for the tile.
Air, noise, land value, budget
PM2.5 index = 6 + 30 Σ s_i e^(-d / 240 m) (plume shifted downwind)
L_noise = 10 log10 Σ 10^(L_i / 10), roads -4.5 dB per doubling, points -6 dB
tax = rate x (employed x $40k + commercial jobs x $30k + industrial jobs x $36k)
net = tax - upkeep (roads $30-70k/tile, services, plants) - gas fuel ($45 per MWh) - $900 per resident (administration)
Air quality and noise are simple kernels, good for relative comparisons only. Land value mixes centrality, services, parks, clean air, quiet and road access; it steers where buildings upgrade.
Not affiliated, calm and educational
An educational sandbox in the spirit of classic city-planning exercises, with no relation to any commercial game. Everything here is inanimate: buildings, roads and utilities.