About Diorambo
Stylised 3D city models, built in the browser from OpenStreetMap data.
Diorambo turns any place on Earth into a stylised 3D diorama. You search for a city, a district or a street; the map data for that area is fetched from OpenStreetMap, turned into a three-dimensional model on the spot, and drawn in front of you. Nothing is installed, nothing is rendered on a server, and there is no account to make.
The idea comes from the paper massing models architects build to study cities: a whole district reduced to blocks and surfaces, seen at a glance from above. Diorambo does the same thing with online map data, and lets you take the result away as a 3D file.
How it works
Everything happens in the browser tab, in four steps.
- Find the place. A name is resolved to coordinates by the OpenStreetMap geocoders — Photon for the suggestions that appear as you type, Nominatim for the search itself. You can also drop straight onto a point with coordinates in the URL.
- Fetch the map data. A square region around that point — anywhere from 400 m to 10 km across — is requested from a public Overpass server, which is the query service that hands out raw OpenStreetMap features. This is the slow step: a few seconds for a small crop, up to a minute for a large one on a busy server.
- Build the model. The raw features are imported into a city model: a compact description of buildings, roads, rails, water and land cover in plain metres, split into tiles. Once that exists, nothing downstream knows OpenStreetMap was involved — the renderer only ever sees the model.
- Draw it. The model is turned into geometry and rendered with WebGPU, the modern graphics interface built into browsers. The sun, shadows, sky, haze, colours and building style are all live settings, so the scene can be restyled without rebuilding anything.
The ground is not flat. Elevation comes from public terrain tiles, resampled into a height grid for the region, so a city in a valley sits in its valley and the coast meets the sea at sea level. Where the sea is involved, only the coastline itself is mapped — the water surface is assembled at import time against the edges of your crop.
What ends up in the model
- Buildings, extruded from their footprints. Where a building states its height or its number of storeys, that is what you get; where it states neither — which is common — the height is estimated from what kind of building it is, so a block of flats and a garden shed do not come out the same size. Roof shapes and floor lines are drawn where the data supports them.
- Roads, paths and railways, as a network of ribbons whose width follows the road class, from motorway down to footpath.
- Water: rivers, streams, lakes and the sea.
- Land cover: green land in several shades, farmland, sand, car parks, squares and pedestrian precincts, industrial and railway land, and institution grounds.
- Labels for the places and features worth naming, laid out so they stay readable as the camera moves.
Taking it away
3D models
The whole loaded region can be exported as one file in glTF (.glb),
Wavefront (.obj) or FBX (.fbx). glTF opens straight in Blender and
carries its texture inside the single file; FBX is the format most other packages take.
You choose the scale — 1:100 by default, because a city at 1:1 is kilometres across and most
3D viewports clip it long before you have seen it — whether the ground comes through as
geometry or as a baked texture, and whether the model arrives split by layer or by tile,
with one material per kind of surface or a single material carrying colours per vertex.
Pictures
The view as it stands can be saved as a PNG or JPEG, either at your screen's own framing and up to three times its resolution, or at a fixed size such as 1920 × 1080.
Where the data comes from
- Map features — OpenStreetMap, © OpenStreetMap contributors, licensed under the Open Database Licence (ODbL) 1.0. See the OpenStreetMap copyright page.
- Elevation — Mapzen terrarium terrain tiles hosted as an AWS Open Data set, derived from public survey data (SRTM, NED).
- Search — Nominatim and Photon, both built on OpenStreetMap.
If you export a model, the credit travels with it. A model built from OpenStreetMap is a derived work of an ODbL database, so wherever you use it — a render, an animation, a game, a printed piece — it should carry the notice © OpenStreetMap contributors. Every file Diorambo writes already has that notice embedded in its metadata; what the licence asks is that it stays visible to whoever sees the result.
What you need
A browser with WebGPU: Chrome or Edge 113 and later, Firefox 141 and later, or Safari 26 and later. A recent phone will run it, though a large region asks a lot of one. There is nothing to install, and on a phone you can add the page to the home screen, where it opens full screen with no browser chrome at all.
Privacy
There are no accounts, no cookies and no analytics. Nothing you do is stored anywhere but in your own browser, and the models you build never leave your machine — the import, the rendering and the export all run locally.
Three things do leave the tab, because they have to: what you type into the search box goes to the geocoders, the coordinates of the region you open go to an Overpass server, and the terrain tiles covering that region are fetched from the AWS terrain dataset. Those are ordinary requests to public services, and they carry nothing but the query itself. If you write to the author through the contact form in the app, that message goes to a forwarding service and then to an inbox — nothing more.
Where it is
Diorambo is in beta, and it shows the map as the map is: a district nobody has mapped in detail arrives sparse, and a building with a wrong height in OpenStreetMap arrives wrong here too. The fix for both is to improve the map — which anyone can do, and which everyone else then benefits from.
It is built and maintained by one person. Bugs, missing features, and the odd hello all go through the contact form behind the Diorambo nameplate in the corner of the app — and if it is useful to you, there is a support button beside it.
If you like it
Diorambo is free — no ads, no accounts, no paywall — and it will stay that way. It is built and paid for in one person's own time, so if it has been useful, or just good fun, there are two ways to help. One of them costs money and the other costs nothing, and the second one is worth as much as the first.
The free one: send diorambo.org to someone who would enjoy building their own city — an architect, a mapper, anyone who makes things in Blender — or post the link wherever you post. A project with no advertising budget travels on exactly this and nothing else.