Why it needs bending
The map was cut in wood around 1550 and shows Paris as a bird would see it from high above the west, looking east, with every building drawn standing up. East is at the top. Against the modern city the top of the sheet points to a bearing of about 116° (east-south-east), so north lies down and to the left.
Turning the sheet is not enough. The best single stretch (an affine transform: one rotation, one scale in each direction and one shear for the whole map) leaves the sheet's right angles at 77° on the ground, with one pixel across covering about 0.36 m and one pixel up about 0.43 m. The engravers also drew the Île de la Cité and its churches larger than life and the fields beyond the walls smaller, so the distortion changes from place to place and no single stretch can undo it.
Reading the labels
The source is the only known copy, in Basel University Library, scanned at 10 890 × 7 820 pixels. The scan was cut into 88 overlapping tiles and an AI model (Claude, see how this was built) read every label tile by tile, then the dense areas again at twice the zoom. That gave 468 labels, and after Cousin's index (below) added two and duplicates and decoration were removed, 457 places, each with a permanent id (L0001 …).
Streets were identified against the City of Paris registers of current and vanished street names, with spelling normalisation (1550 spelling varies too much for a plain same-name test) and a manual check of each. Churches, colleges, gates and mansions were identified against French Wikipedia and Wikidata, with every article title checked by script.
Everything was then checked against the one earlier index of this map, published by Jules Cousin in 1875, when the Basel copy had just been rediscovered. It gives each name as he corrected it, the engraver's spelling, and its sheet and square. Fitting his sheet grid to our labels put 285 of 313 clear matches in the exact square, so the table could be used label by label. It confirmed most identifications, settled 26 of the 29 open questions (further research settled two more), corrected four misreadings and found two labels the first pass had missed (“Hu Leu” and “R. dei Son”). Each place in it cites its page, linked to the scan on Gallica.
The result is 143 places still standing, 19 rebuilt, 77 renamed or absorbed, 217 vanished and 1 not identified, listed in the open questions.
Control points
A control point is a spot found on both maps, a pixel on the woodcut and a latitude and longitude today. The bend is computed from these alone. There are 46:
- 21 drawn buildings whose site is known exactly (Notre-Dame, Saint-Eustache, the Bastille and others). The point sits at the foot of the building, since labels float beside what they name. Moving points from labels to buildings cut the typical error from 76 m to 64 m.
- 8 bridge ends where a bridge meets the bank, taken from OpenStreetMap. The river fixes them on both sides, which makes them the sharpest points on the map.
- 11 more at the label itself, where it sits on or right against what it names.
- 6 at the edges, added where the fit was weakest: five street corners unchanged since the 16th century, located from the City of Paris street geometry (rue Saint-Antoine × rue Saint-Paul and others), and the site of the Tour de Nesle. Three more corners were tried and dropped, each 120 to 220 m off and pulling its neighbours with it.
The spline
The bend is a thin-plate spline. Picture the map printed on a thin sheet of metal, with each control point pinned to its place on the modern city. The sheet bends as little as it can while meeting the pins, and far from all of them it falls back to the best single stretch. The pins are slightly loose (a smoothing setting, λ = 0.2), so one misplaced point can't drag a whole district with it. The same spline serves the overlay and the side-by-side view in the app.
How good is it?
A spline passes through its own control points, so the error there proves nothing. Instead each point is left out in turn, the spline is fitted to the other 45, and the miss at the left-out point is measured. This leave-one-out error is an honest estimate of the error elsewhere on the map.
| median | 90% of points within | worst | |
|---|---|---|---|
| One stretch (affine) | 89 m | 250 m | 404 m |
| Thin-plate spline | 61 m | 136 m | 195 m |
In the centre, on the Cité and along the river, a place usually lands within a street or two of where it was. Towards the walls and beyond, the error grows to a few hundred metres, because there are fewer control points and the woodcut is looser. The two worst points, Saint-Germain-des-Prés (195 m) and the Bastille (190 m), lie at the edge, where leaving one out removes most of the anchoring for a whole quarter. Before the six edge points were added, the Bastille was off by 427 m and Saint-Médard by 416 m (now 25 m).
Mistakes caught on the way
- A lone point far out. The Pont de Charenton, 3 km beyond the walls, is correctly placed, yet as a control point it pulled a whole compressed corner of the picture out of shape. Leaving it out cut the 90% error from 463 m to 172 m. Villages at the edge made the centre worse too and are also left out.
- Namesakes. "Popincourt" matched a commune in the Oise, 92 km away, instead of the faubourg by the Bastille. Any identification outside the map's area now stops the build.
- The engraver's shuffle. Between the rue des Poulies and the Louvre, nine street names are each one street off, because each name was cut on its neighbour's street (Cousin spotted it in 1875). The nine places now say which street each label really stands on. Three more labels sit on the wrong street the same way: “rue des Paiens” on the rue des Juifs, “rue des Chats” on the rue des Déchargeurs and “rue du Battoir” on the rue Gît-le-Cœur.
- The engravers' own slips. "HOSTRE DAME" for Notre-Dame, "Bribouche" for Aubry-le-Boucher and "Cochonnerie" for the Cossonnerie are kept as printed.
Limits
- The overlay is a guide and cannot settle where a wall stood to the metre (see the errors above).
- Where the artists drew a street too long or a church too big, the spline can only spread the error around.
- Riverbanks won't line up, since most of today's quays were built after 1550 (the quai de Gesvres in 1642, for example).
- Many features are drawn but not named. The cartouche boasts 287 streets, 104 churches and 49 colleges; about 221 streets, 91 churches and 33 colleges carry a readable label.
- Some readings, including the one unidentified label, are uncertain and are marked as such in the app.
Corrections are welcome: write to us, no account needed.
Credits and references
Everything the project reads from is on the Sources page.
- La ville, cité et université de Paris, Olivier Truschet and Germain Hoyau, c. 1550, Basel University Library; scan via Wikimedia Commons (public domain).
- Jules Cousin, “Table des noms des rues, places, églises, couvents, collèges, hôtels, etc., inscrits sur le plan de Paris publié vers 1552 par Olivier Truschet et Germain Hoyau”, Mémoires de la Société de l'histoire de Paris et de l'Île-de-France, t. I (1875), pp. 60–70; source gallica.bnf.fr / BnF.
- Street names: Ville de Paris open data, registers of current and vanished street names.
- Places: Wikipedia (French and English) and Wikidata.
- The poem and the publishers' notice printed on the map, transcribed and translated: The texts on the map.
- Today's map and the bridge ends: © OpenStreetMap contributors, tiles by OpenFreeMap.
- The spline, the error test and every figure on this page come from the scripts in the
project repository
(
scripts/fit_transform.py,scripts/make_method_figures.py), so every number here can be rerun.
How this was built
The whole project was built with Claude Code, Anthropic's AI coding assistant, working with a human editor. Claude read the labels, matched them to the registers and Wikipedia, placed the control points, fitted the spline, and wrote the place summaries, the site and this page. The human side set the direction, made the design decisions and reviewed the results. An AI reading of a 500-year-old woodcut can be wrong, so every uncertain reading is flagged and every identification links to its source.
Paris 1550, by Peer Blekelj.