Grid¶
Overlay a fixed, evenly-spaced orthogonal grid of candidate roads across the block — a Manhattan-style plan, as opposed to peel's parcel-by-parcel descent. With seek_density the grid is phase-shifted so a line runs through the densest parcel cluster, and with adaptive the densest cells get a finer infill layer (quadtree-like: coarse where sparse, fine where crowded). It trades some raw access for a single connected, legible, buildable network.
Configuration: conf/method/euclidean_grid.yaml
Head-to-head on one deep block¶
From the method-comparison example: six reblockers on ZAF.9.3.1_1_40972, the deepest topology-tractable block in the Cape Town metro (263 parcels, up to 7 rings deep), graded on permeability (a flow measure of how easily every parcel can reach a street) against displacement.
At this method's full build-out on that block (terminal point of its permeability-vs-displacement frontier):
| homes displaced | permeability |
|---|---|
| 37.4% | 96.7% |
On the settlement-scale benchmark¶
From the Cape Town benchmark — the single-block, 6,619-parcel multiblock_depth_density region.
Roads added busiest-first, each preceded by whatever it needs to reach the street, so every frame is a network you could actually build. The animation stops where the network first reaches the matched-permeability standard — every method's GIF ends at the same benefit, so what differs is the disruption spent getting there. The deep interior drains as the network reaches in:
The same region under the two lenses — truncated to the shared displacement budget (left) and run until it reaches the shared permeability standard (right), coloured by access depth:
| matched displacement | matched permeability |
|---|---|
![]() |
![]() |
Matched displacement: at 7,330 m of road it reaches permeability 89.2%, displacing 9.4% of homes (it converges below the shared budget).
Matched permeability: reaches the permeability target with 2,113 m of road, displacing 3.0% of homes.
Single-block k-complexity runs¶
Access depth is peel-k: the number of BFS rings between the deepest parcel and a street (k after = 1 means every parcel fronts a road). road components counts disconnected pieces in the proposed network — 1 is a single buildable network. Read from the outputs/*/run.log evaluation logs on disk:
| run | block | k before | k after | delta k | added road (m) | road components | seek_density | adaptive | spacing |
|---|---|---|---|---|---|---|---|---|---|
capetown-dense-cluster-euclidgrid-adaptivefalse-test |
ZAF.9.3.1_1_5810 |
24 | 5 | 19 | 19,170 | 14 | true | false | 60.0 |
capetown-dense-cluster-euclidgrid-noadaptive-test |
ZAF.9.3.1_1_5810 |
24 | 4 | 20 | 25,410 | 14 | true | — | 60.0 |
ct-grid-adaptive |
ZAF.9.3.1_1_44882 |
7 | 4 | 3 | 2,112 | 1 | true | — | 60.0 |
ct-grid-adaptive-on |
ZAF.9.3.1_1_44882 |
7 | 3 | 4 | 3,043 | 1 | true | true | 60.0 |
dji-big-follow-parcels |
DJI.3_1_3182 |
9 | 2 | 7 | 6,177 | 44 | true | — | 60.0 |
dji-big-grid-adaptive |
DJI.3_1_3182 |
9 | 3 | 6 | 1,873 | 1 | true | true | 60.0 |
dji-big-grid-hugging |
DJI.3_1_3182 |
9 | 3 | 6 | 2,261 | 13 | true | true | 60.0 |
dji-big-grid-uniform |
DJI.3_1_3182 |
9 | 5 | 4 | 1,276 | 1 | true | — | 60.0 |
dji-grid-adaptive |
DJI.3_1_1789 |
8 | 3 | 5 | 955 | 2 | true | true | 60.0 |
dji-grid-uniform |
DJI.3_1_1789 |
8 | 5 | 3 | 622 | 2 | true | — | 60.0 |
dji-multiblock-grid |
region:DJI.3_1_1789+DJI.3_1_1812 |
8 | 4 | 4 | 1,445 | 2 | true | — | 60.0 |
| before | after |
|---|---|
![]() |
![]() |




