OpenStreetMap as a 3D globe, not a flat map
Web maps are flat because tiles are square. Ours are not: the world is a real sphere at every scale, so the same scene runs from a doorstep to orbit without ever changing what it is looking at.
A flat map imposes a projection
A flat web map has to pick a projection, and the usual pick stretches everything toward the poles. Greenland ends up the size of Africa. Distances stop meaning anything above the mid-latitudes, and anything you draw on top inherits the distortion.
CityMap3D never projects. Coordinates land on a sphere, and the camera looks at that sphere. There is no flattening step to correct for, because there is no flattening step.
One continuous range
Street level, rooftop level, city level, country level, orbit. It is one camera moving through one scene, not a set of zoom levels swapped underneath you.
That matters most at the two ends. Pull all the way out and the planet is a planet: you see its curve, its terminator, its lit rim against black. Push all the way in and you are between buildings, with the same lighting model that was rendering the whole hemisphere a second earlier.
The poles are not a special case
On a flat map the poles are where the maths breaks: infinite stretch, unusable tiles, a hole. On a sphere they are ordinary places. Fly across one and nothing changes.
Curvature you can see
The horizon curves because the world curves. From altitude the far edge of the scene bends the way it does out of an aircraft window, and the sky thins into a rim rather than stopping at a wall.
This is the part people notice first, and it is not a filter. It falls out of drawing a sphere instead of a plane.
What it changes for your product
If your scenes are ever wide (a fleet across a country, a flight path, a network, a satellite footprint, a globe view on a landing page), a flat map distorts those scales; a sphere respects them.
And if your scenes are always local, you still get the lighting and the depth that come with a real 3D world, without paying for a second renderer when the brief widens.
Read on: from an OpenStreetMap row to a shaded pixel, or which OpenStreetMap tags become 3D geometry.
Read more
- The map updates itself no refresh
A tile that does not exist yet answers 202, not an error. The client subscribes over WebSocket and the tile lands in the running scene the moment it is ready. No polling, no refresh.
- Restyle the map at runtime, no rebuild
Colour is decided at draw time, not baked into tiles. Set a palette while the scene runs and it reaches every pixel, at every distance, including the sky.