Reading elevation…
Simulated lighting. Keeps your location, terrain and layers.
Up to six views, stored on this device.
A 3D map of Philadelphia and the Delaware Valley built only from public data: public-domain USGS aerial imagery, real elevation, optional OpenStreetMap buildings, FEMA flood zones and NOAA sea-level scenarios. The land here is subtle, about 380 m of relief across 94 km, so the vertical scale is exaggerated to make it legible. Bridges and a few landmarks are schematic shapes built from published dimensions, and the map says so wherever it shows them.
A cinematic relief map of the Philadelphia region — Center City, Port Richmond, Northeast and Northwest Philadelphia, the Main Line, and Delaware, Montgomery, Chester and Bucks Counties, across the river into Camden, Cherry Hill and the Burlington County plain.
data/historic-buildings.json) and — from
OpenStreetMap's start_date; buildings documented as newer disappear, and the
— undated ones are ghosted, because a missing date is
not a missing building. Bridges follow their opening years; railways exist from 1834;
motorways are hidden before 1950 and ghosted in the 1950s. The 1776 view adds the
approximate built-up extent of the town and of Germantown, traced by hand from William
Faden's 1777 plan (Library of Congress, public domain) and labelled approximate.
What is missing, and why: Philadelphia's assessor records carry a year built
for every parcel, but their licence reserves all rights in the database, so they are
not redistributed here; OpenStreetMap dates only a few dozen buildings. The relief,
rivers and shoreline are always today's.
This is a visualisation, not a survey. Elevations come from a ~30 m public DEM resampled to ~46 m, then vertically exaggerated by whatever the slider says — the default 2× is not a real slope. Buildings and bridges are stretched by the square root of that factor (times the structure-height slider), so a tower stays proportionate to a hill without becoming a needle; bundled footprints are simplified, while close-up extracts retain individual mapped outlines. Heights and roof dimensions without source values are estimates. Readouts are good to a few metres at best. Three source-data seams in the northwest (thin stripes spiking to 900 m in ground that is really ~260 m) were replaced with a local median during the build. Simplified vectors drop detail below roughly 25–140 m in regional layers. Local streets, address numbers and roof shapes appear where mapped; OpenStreetMap coverage varies by area. Do not use any of this for navigation, flood risk, engineering or property decisions.
Three.js on WebGL 2. The terrain is one draw call: a georeferenced USGS orthoimage and height field on a grid that is log-warped around the camera target in the vertex shader, so detail concentrates where you are looking without any LOD seams. Hillshade, contours, ambient occlusion and the atmosphere are computed per pixel from the height field. Buildings are one draw call per zone and height tier, packed tallest-first so the density slider is a draw-range prefix; whole tiers frustum-cull as a unit and rise out of the ground as you approach. The browser loads every byte from this origin: a baked regional image first, then a bounded tile mosaic for aerial detail and cached neighborhood extracts for streets and buildings. There is no browser credential, map account or API key.
The diorama follows the real elevation grid, roads and building footprints. Regional relief is enlarged up to 15× and returns to your chosen scale as you zoom in. Tree crowns are illustrative and constrained to mapped OpenStreetMap woodland, including clearings. Individually mapped trees appear near street level. Building colours and roof shapes follow available tags; additional facade finishes, bridge details and the cutaway earth layers are artistic. The cutaway does not represent geological strata. Switch to Classic map in Customize, or use Street inspection for an unobstructed aerial view.
Concept and prompt by Jez. Built collaboratively with Claude via Traycer
and GPT‑5.6 for jez237.com. See
demos/philadelphia-relief/README.md for the full architecture
and provenance notes.
| ↑↓←→ | Pan across the region |
|---|---|
| Shift + arrows | Orbit and tilt |
| + − | Zoom in and out |
| 1–8 | Jump to a cinematic preset (1 is the diorama) |
| Space | Play or pause the tour |
| [ ] | Previous / next shot in the tour |
| H | Home: back to aerial Philadelphia |
| C | Show or hide the control studio |
| L | Show or hide labels |
| V | Cinema mode: hide every panel, keep the captions |
| F | Fullscreen |
| P | Save the current view as a PNG |
| / | Focus the search box |
| ? | This list |
| I | Enter or leave street inspection |
| Esc | Close a card or dialog, leave cinema mode, or stop the flythrough |
| Click | A landmark or building opens its sourced information card |
The link carries the camera, light, layers and era as a delta from the current scene. Give it a name and the name heads the readout for whoever opens it.