Skip to content

Demo

Block ZAF.9.3.1_1_5810: 6,619 buildings in the Bloekombos and Wallacedene area of Kraaifontein, at 33.8421° S, 18.7413° E. See it in Google Maps ↗

One Cape Town block, from the screen that picks it out to the roads our method builds through it, set beside one of the methods this site ships, and our method set beside the earlier one on a second block. Every control writes to the address bar.

Why this block

The shipped screen scores every block in the city from three numbers it gets for free: its buildings \(n\), its area \(A\) and its perimeter \(P\). It multiplies a depth by a density, so only blocks both deep and crowded score high:

\[\text{score} \;=\; \underbrace{\frac{\sqrt{nA}}{P}}_{\text{depth: about how many homes deep, from the street}} \;\cdot\; \underbrace{\frac{n}{A}}_{\text{density: homes per area}}\]
\[\text{score} \;=\; \underbrace{\frac{\sqrt{nA}}{P}}_{\text{depth}} \;\cdot\; \underbrace{\frac{n}{A}}_{\text{density}}\]

In a compact block that depth comes to about half the rings of parcels between the street and the deepest home, because the parcels' columns narrow toward the block's middle; in a long strip, whose columns keep their width, it is all of them.

Cape Town screened at the shipped depth_density_proxy floor: red fills the blocks the screen selects, gold the surveyed informal settlements it does not, grey the rest, and a blue ring marks the one block the rest of the site follows
Cape Town at the shipped depth_density_proxy floor. Red fills the 3,169 of 18,309 blocks the screen selects, whatever the survey says; gold, the informal settlements in the City of Cape Town's own survey that it does not; grey, the rest — precision 20.0%, recall 81.9% against that survey. The blue ring marks ZAF.9.3.1_1_5810, the one block the rest of this site follows — a ring rather than an outline because a whole metro fitted into one figure leaves that block far too small for its own boundary to be a shape anyone could pick out. Switch metric, drag the floor, or toggle to Nairobi — 334 of 3,839 blocks at the same absolute floor, with no equivalent informal-structure survey to check them against, so no precision or recall is shown for that city. Colour by score instead, and each block is shaded by its rank among the blocks on its side of the floor: blue below, pale at the floor, red above, on a dark ground. The map opens on the selection because the precision and recall are its red fill's.
0.1265
its score, 9.9 times the floor
2 of 18,309
its rank among Cape Town's blocks
11
homes behind each parcel-wide stretch of street
115
homes per hectare

The City's informal-settlement survey misses this block, though it is plainly informal: the survey predates its buildings (the bake-off's caveats).

The screen only picks candidates. A slower screen peels them: it gives each building its own parcel and counts the rings of parcels in from the street.

Block ZAF.9.3.1_1_5810's Voronoi parcels shaded by depth from the street, deepest at the core
Ring 1, on the streetRing 24, the deepest
The slower screen's measure of the same block: one Voronoi parcel per building, shaded by how many rings of parcels lie between it and the street. The deepest home is 24 rings in; zoom in to see its parcels. Depth times density puts this block at rank 1 of the shipped screen's top 1,000.

Shack fires reported near the block

News reports from around the block show what a deep, crowded block means in a fire. None is placed inside the block, and none is mapped, since not every report's street can be placed.

  1. May 2016

    Japhta and Dlayedwa streets, Bloekombos, Kraaifontein. OpenStreetMap puts Dlayedwa Street about 80 m outside the block.

    Two shacks were set alight, allegedly with a petrol bomb, and four members of one family died: a woman and three children aged 8 to 13. Neighbours tried to fight it with water and could not.

    Cape Times, 23 May 2016: “Four die in suspected arson attack” ↗

  2. February 2020

    Wallacedene, Kraaifontein, beside the block.

    A fire at about 2am burned 28 shacks, displaced 83 people and killed two. Fire engines could not drive in: a community leader said “we have no roads and the shacks are closely clustered”, so crews parked on Mfeketo Street and walked to the fire. The taps gave no water, and residents pulled down shacks to stop it spreading.

    GroundUp, 25 February 2020: “Couple dies in shack fire in Kraaifontein” ↗

  3. June 2022

    Pietersen Road, Wallacedene. OpenStreetMap puts Pietersen Road about 1.2 km south of the block.

    Three shacks burned, 11 people were displaced and three siblings died.

    News24, 17 June 2022: “Three siblings die in Cape Town fire that displaced 11 people” ↗

  4. October 2024

    Manuel Street, Wallacedene.

    Four people died, three of them children, in one of 48 shack fires across Cape Town that weekend. JP Smith, the City's mayoral committee member for safety and security, said its crews arrive quickly but are “hampered by other factors such as access”; he spoke of the weekend's fires as a whole.

    TimesLIVE, 28 October 2024: “Nine people perish in weekend informal settlement fires in Cape Town” ↗

  5. July 2025

    Maroela Road, Wallacedene. OpenStreetMap puts the Wallacedene stretch of Maroela Road about 630 m south of the block; the road also passes within about 16 m of the block's south edge.

    About 20 shacks burned and 60 to 80 people were displaced. A 6-year-old girl died.

    EWN, 15 July 2025 ↗ · Cape Argus, 17 July 2025 ↗

Roads through the block

Our method, and beside it one of the methods this site ships:

Shock Reblock. Each new road runs from the street, or a road already built, across the block and back to a street or road. At each step the method tries the cheapest routes through the gaps between buildings and builds the one that saves the most escape time for the homes it displaces. Named for thermal-shock cracking: as a quenched ceramic cracks inward from its cold surface and each crack ends on another, each new road here runs in from the street toward the homes with the longest way out and joins the network at both ends, so every road is on a loop.

Loop Network. Builds loops. Each step lays a path from the street to a chosen home and a second path back that shares no edge with the first, and builds the loop that saves the most escape time for the homes it displaces. No dead ends.

Drag the budget: each step lets both methods displace more of the homes' floor area, and both plates and the dots on the plots follow.

At a 5% budget Shock Reblock is ahead, saving 43.1% of the escape time to the Loop Network's 39.2%; at 10% it is narrowly behind, 50.4% to 52.0%; at 15% it is narrowly ahead, 58.6% to 57.5%. Shock Reblock takes 32 minutes to its 15% network, the Loop Network 8.3 minutes.

Block ZAF.9.3.1_1_5810's homes coloured by escape time, with the roads Shock Reblock and the Loop Network build to a 5% displacement budget
Each home coloured by its escape time, as a share of the 99th-percentile home's with no new road (1,064 model units): blue a short way out, red a long one, a line every 10%. Dark slate is new road, 7 m wide. A building the roads damage fades, outlined, from its colour toward sand, and is full sand once destroyed: 10% or more of it taken, or cut in two. Escape time saved is the share of the homes' total escape time the roads remove, 1 − P(roads) / P(no roads): what the rest of this site calls permeability. The conductance the roads add gives a natural single number for a budget, but the page plots displacement and road length. Run time is each method's since its start, on a log scale, and steps: flat until the run has finished the next network. The Loop Network's, to a plate, is when its run had built every road on it3.

Our method and the earlier one

The original topology algorithm, set beside ours.

On block ZAF.9.3.1_1_41785 in Philippi (See it in Google Maps ↗): the shipped screen's top block, and at 638 buildings small enough for topology to run at all. Topology, run as our optimized port1, builds until every parcel touches a road, which here displaces 91% of the floor area, in 1.9 hours2; Shock Reblock stops at 71%, with no road left that would split a sub-block, in 1.9 minutes. Below, both are cut at the same budgets, each in the order it built its roads, with its run's time to each network.

Run times on each block, the fastest on each in green and marked.
BlockTopology, original implementationTopology, our optimized portShock ReblockLoop Network
41785638 buildingsabout 6.3 hoursexpected11.9 hoursmeasured21.9 minutesmeasured, whole run · fastest—not timed on this block
58106,619 buildingsYears to centuriesestimated1Months to centuriesestimated132 minutesmeasured, to a 15% budget8.3 minutesmeasured, to a 15% budget3 · fastest

Shock Reblock saves as much escape time as topology's whole network (93.5%) with 36% of the floor area displaced; topology needs 91%.

Block ZAF.9.3.1_1_41785's homes coloured by escape time, with the roads Shock Reblock builds to a 6% displacement budget
Drag the budget: both plates and the dots on every plot follow. Each home coloured by its escape time on this block's scale (567 model units at the 99th-percentile home with no new road): blue a short way out, red a long one, a line every 10%. Dark slate is new road, 7 m wide. A building the roads damage fades, outlined, from its colour toward sand, and is full sand once destroyed: 10% or more of it taken, or cut in two. Run time is each method's since its start, on a log scale, and steps: flat until the run has finished the next network.

1 Topology's times are our optimized port's (commit ff74af2) unless marked original. On block 5810, never run, a power law fitted to six timed runs on smaller blocks gives about 1.8 years at its 6,619 buildings; anchored on the largest run instead, 3.2 months to 3.6 centuries. The original implementation (commit 5972772), timed against the port on eleven blocks of 20 to 150 buildings, took 1.3 to 2.4 times as long, building the same networks (two more blocks failed in both). The gap grows with block size, roughly as n0.27; that fit, carried to each block's size (3.3× at 638 buildings, 6.2× at 6,619), gives the original's times.

2 Measured once on this block. The power law fitted to six timed runs on other blocks predicted about 2.1 hours. Nearly the whole run goes to finding its first two roads: after 3.4 seconds of setup, the first lands at 42 minutes (37% of the run) and the second at 1.6 hours; the other 285 take a median 0.63 seconds each.

3 Measured once on this block, in one process on the same workstation as Shock Reblock's run, its numerical libraries held to one thread, the machine's load average 3.9 on its 48 cores. The Loop Network builds its loops in its own order, but each plate shows the shortest stretch of its whole network, taken street-first, that reaches the budget, so its time to a plate is when the run had built every road on it: 8.3 minutes to the 15% network. Its whole run, which builds on past the slider's last budget, took 8.6 minutes.