Posted by rustywasm 17 hours ago
Brilliant.
The page extrudes them in 3D and plays the city filling in from 1880 to now. Colors are by decade, or switch to height and fly to downtown. Hover any building for its address, year, height, and footprint. Some things I found: the 1950s, not the 1920s, is the biggest decade still standing; the Valley visibly snaps into existence after the war; and downtown's 150-foot height limit shows up as a hard ceiling until 1957. Zoomed out it draws a 100 m grid because a citywide view can't carry a million polygons, and heights are exaggerated below street level zoom (the corner label says by how much).
Stack: DuckDB spatial for the join, tippecanoe to PMTiles, MapLibre fill-extrusion, all static files on R2 with no server. City of LA only, since the parcel polygons I pulled stop at the city line.
Happy to answer questions about the data or the rendering.
[Just a fun project, no commercial relevance.]
I agree, I'd love to learn where the dada was sourced! I'm also curious why it appears to come in waves, as opposed to each building going up independently (as I would have expected it to in reality). Cool idea! I can see my house from here haha.
LA genuinely built in bursts. The 1920s and the postwar decade each account for over 230,000 buildings still standing, and the 1930s and 1970s onward are much thinner, so even a perfect per-year animation would surge and pause.
But really it's for performance -- I group buildings into 5-year bins and fade each bin in over its span, rather than popping each building at its exact year.
A per-year filter on a million polygons re-tessellates every visible tile, which was too slow to animate, whereas fading pre-built layers is reasonably fast.
Glad you found your house!
So for LA City, they use Socrata (owned by Tyler Technologies -- NYSE: TYL) to host and publish open data. LA City also uses Esri's ArcGIS for geo-based data.
So behind the scenes there is my code that builds a parquet database of * MyLA311 service requests * Permits * Construction Enforcement * Crime * Parcels Id with Polygons * Lidar
So that part was a typical data-munging exercise, and it was fun & interesting to me to learn how public entities try and deal with IT budget cuts and service the community, etc. (For example, 311 requests for homeless issues are transferred to another department, so they all look they are closed immediately, but I never could find the agency data that ultimately resolved that type of request.)
So I have a pile of data that is organized in a way that makes sense to me, but I could not build an interface that I liked.
So I asked Claude to create a fly-over visualization to see what it could do with this data, and it blew my mind.
I'm a life-long coder and I'm old, so it's an interesting experience to see how good these models and coding harnesses are, and how quickly they are improving.
As to what makes this HN worthy? I enjoyed playing with the interface, and there might be more people than just me who love LA (warts and all) and its history and architecture. So it's interesting and I'm not asking for anything in return, so for me that satisfies the "HN Show" criteria.
The deeper question for me right now is what does hacking mean when the coding is done by these systems? It's a different kind of hacking, and its makes things possible that impossible before, but it's a million miles away from 6502 assembly.
I’ve helped with a few other zoning visualization projects recently, similar workflow. The only similarity is that each city/jurisdiction makes its data available in a different way. It’s usually accessible but it does mean there’s a lot of work munging the data to a usable format.
Here’s one of the projects: https://github.com/kfarr/zoningviz
The other thing I learned is that some of the data sets use a destructive insert, so unless someone is doing a data snapshot data elements can be lost. (The vendors charge extra time-series option.)
Building products has nothing to do with technical problems, just the end result. This is in contrast with things like writing a library or coming up with a new algorithm, or doing research, or even writing a technical blog post, etc.
> or is it just pretty?
People have been sharing "just pretty" things on HN for decades. It might be interesting, thought-provoking, discussion-worthy, or whatever. Even if this wasn't vibe-coded, it wouldn't be some monumental technical achievement. Your point is absolutely moot.