Work
Independent Build • With Claude Fable 5.1 • Lidar, QGIS, Film

The Ghost Shorelines
of Chicago

Every Chicagoan learns that the streets which refuse the grid — Clark, Milwaukee, Elston, Archer, Ogden, Vincennes — were Indigenous trails that followed the dry beach ridges of a glacial lake. I sat down with Claude Fable 5.1 to find out whether the ground agrees. Mostly it doesn't. Where it does, it is spectacular.

QGIS USGS 3DEP Lidar Python / rasterio GeoPandas OpenStreetMap Claude Fable 5.1 Kokoro TTS
135,010
Crest samples, one every 50 m
6,750 km
Of road put to the test
+1.54 m
Green Bay Trail above its flanks
+0.14 m
All diagonals combined
01

The Idea

The experiment

This was an experiment to see how far a frontier model can be pushed in the geospatial field. Claude Fable 5.1 fetched the elevation data, built the flood model, designed the statistical test, ran it across 6,750 km of road, and wrote and rendered the film that explains the result.

The myth

Chicago's grid is famous, and a handful of streets refuse it. The story is that they are older than the city: trails that bent to follow the high, dry ground through the marsh — the beach ridges left behind as glacial Lake Chicago fell, stage by stage, to today's Lake Michigan.

The question

It is a beautiful story. Is it true? Lidar can settle it. If a road rides a beach ridge, the ground under the pavement should stand higher than the ground a few hundred meters away on both sides. That is a measurable claim, and every major road in the region can be measured.

What came out of it

02

What the Ground Said

As a group, no

Taken all together, the diagonals sit 14 centimeters above their flanks. Five and a half inches. Grid streets sit exactly level. As a generalization about Chicago's bent streets, the myth fails.

Two corridors, emphatically yes

The Green Bay Trail — Clark Street, Ridge Avenue, Green Bay Road — rides a crest a meter and a half above its flanks. The Calumet beach roads in the south suburbs and Indiana do the same. At one-meter resolution, Ridge Avenue in Evanston sits on the spine of the Rose Hill spit, 2.5 m above the yards on either side. The people who named these streets were being accurate.

The famous ones, no

Milwaukee, Elston, Archer, Ogden, Vincennes and Lincoln are level with the ground around them. They bend for other reasons: a river bank, a portage, a plank road's straight line to a distant town. Chicago is flat because it is a lakebed. The streets that remember the lake are the ones on its beaches.

How it was tested

USGS 3DEP 1/3-arc-second elevation reprojected to UTM 16N at 10 m, detrended with a 400 m Gaussian so the regional slope drops out and only local relief remains; one-meter Cook County lidar for the close-ups. The Glenwood (640 ft), Calumet (620 ft) and Tolleston (605 ft) lake stages are rendered as a connected flood — a pixel counts as underwater only if it is hydraulically joined to the Lake Michigan basin, which is what makes Blue Island an island and keeps inland depressions dry. Then every major OpenStreetMap road, sampled every 50 m: elevation under the road minus the mean of six flank samples at 150, 250 and 350 m perpendicular to its bearing, on a DEM smoothed to 60 m so the road prism itself disappears. Expressways excluded — their embankments are ridges of a different kind.

Caveats, honestly

Lake-stage elevations are the textbook values; the real shorelines are tilted slightly by post-glacial rebound. Rail lines and expressway embankments show up as artificial ridges in the relief. OpenStreetMap splits corridors across name changes, so grouping roads into trails was done by hand.

Data

USGS 3DEP elevation · Cook County 2016 QL1 lidar · OpenStreetMap roads and water via Overpass. Lake stages are the textbook Glenwood, Calumet and Tolleston values.

What it took

Lidar & Terrain Analysis

3DEP and county lidar, hillshade, Gaussian detrending, a hydraulically connected flood model, and a perpendicular-transect crest test in rasterio, SciPy and GeoPandas.

QGIS Cartography

An A2 print layout at 300 dpi: diverging relief, three shoreline vectors, trail roads classed by crest height, legend, scale bar and north arrow.

Claude Fable 5.1

Driven through Claude Code, with a QGIS MCP server for the layout work. The model wrote every script in the project and the film's narration; I directed and reviewed.

Frame-by-Frame Film

A Python renderer that flies a camera over the terrain, animates the lake falling in stages, and draws labels and charts with Pillow; 8,772 frames assembled with ffmpeg.

Local Narration

Kokoro text-to-speech served from an Nvidia Jetson Orin Nano on my home network. No cloud voice; the whole pipeline runs on hardware I own.

Open Data

USGS 3DEP, Cook County lidar and OpenStreetMap, pulled programmatically. Reproducible from the raw downloads.

More work like this