1940 tax photo
ModelAround 1940, the City of New York photographed every building in the five boroughs for its tax records. One of the blocks it photographed, the one bounded by Nostrand Avenue, Atlantic Avenue, Bedford Avenue and Pacific Street in Brooklyn, is a block that’s near and dear to my heart.
I found the photos through 1940s.nyc and was thrilled to see the block documented there. The quality impressed me so much that I ordered a print, which now hangs at home. Photogrammetry has been a persistent hobby of mine since school, and I wanted to see these photos brought back to life.
I started in October 2026, so what follows is only a few weeks of progress.
Starting over without photogrammetry
My first attempt used photogrammetry, but the pipelines couldn’t reach the quality I wanted. So I turned to Claude and Opus 5.5 and described my goal: a production-quality 3D asset that accurately depicts the block as it was photographed in the 1940s.
The whole model is generated by Python scripts running in Blender 5.2, written with Claude Code on my PC. Nothing is hand-sculpted: one command rebuilds the master file from the measurements in the code, so fixing a mistake means changing a number and rebuilding. Alongside the 34 tax photographs of the block, the scripts use NYC building footprints and lot lines, USGS lidar elevations (the ground rises about 12 feet from Nostrand to Bedford), the Landmarks Preservation Commission report on St. Bartholomew’s Church, plus a few modern reference photos and a short video.
The photos are gospel
It looked right surprisingly quickly. My guiding principle was to use those reference photos as gospel. They hold so much detail that I wanted to stay as faithful to the source material as possible.
That means putting a camera where each 1940 photographer stood. For every photograph, the scripts find the vanishing points and warp the photo into a flat, measured elevation of the facade, so storey heights, windows and cornice lines can be read in feet. The photo is then registered against the model to recover the original camera. On the Nostrand storefronts, matching neighbouring photos against each other cut the error from 8.5 pixels to under 1. Twenty-five of the photographs are now camera-matched, and for each one I can render the model through the 1940 lens and wipe between the two. Not every photo cooperated: a few are steep oblique views or too hazy to solve, so I used those for measurement only.

When a photo can’t settle a question, the project says so. The rectory, for example, has no 1940 photograph at all, so it’s modelled from the landmarks description. A table in the README marks every part as documented, measured, representative or conjectural. The colours, for instance, are inferred, because the sources are black and white.

Every brick
The brick fronts are laid course by course, about 289,000 individually modelled bricks, so window heads and arches step the way a mason laid them. Brownstone and limestone go down stone by stone, and the rock-faced blocks have real pitched faces rather than a texture. Later rounds added a library of cornices, window hoods and carved friezes, then re-measured every front against the photographs instead of building from architectural types. That pass turned the Bedford Avenue limestone into individually pillowed stones and the carvings into sculpted relief.

The signs, and what’s next
The Nostrand Avenue storefronts are my favourite stretch: Seiler Furs, Ebinger Bakers, the Pheasant Restaurant with its Chow Mein sign, Nicholas Zarras Wines–Liquors and Abraham’s Men’s Wear. Their signs are traced from the photographs, with the neon modelled as real glass tubing that lights up at night.


Still, the signage is good, not great. The Zarras hanging sign, for one, is the wrong shape: it should be a symmetrical bottle, but the few available photos led Claude down a bad path. Fixing it is next on my list.
What bothered me most about the early output was the primitive shapes: flat planes, cylinders and spheres that take you out of the moment and break the immersion. Plenty remain, and replacing them is the other big job ahead. The plantings have already gone from spheres and boxes to twigs with real leaf and needle cards.
Meanwhile, I’ve started a cinematic layer on top of the archival model: wet streets after rain, worn asphalt with tar seams along the trolley rails, chipped granite curbs, and lit apartment windows at night. It only adds light, weather, cameras and finishing, and an automated check renders 19 views to prove, pixel for pixel, that the photo-matched model underneath hasn’t changed. Even the made-up parts lean on the archive: the look of the wet street comes from a tax photo of a nearby block taken just after rain.

Dry
Wet

A little window into 1940s New York
This is a work in progress, and I plan to keep improving and expanding it. Of the directions I’d like to take it, one stands out: a site or mobile app where I can hold up my phone and have a little window into the world of 1940s New York as I walk around. That would be so satisfying.
Even now, the project has changed how I walk around the block. I notice the little details: cracks in the sidewalk, bricks that are a little different from the others. Little pieces of history are all around us, and they’re just sort of invisible.
1940 photos: NYC Municipal Archives, via 1940s.nyc.








Leave a Reply