Styling

Restyle the map at runtime, no rebuild

The palette is a setting you change while the application runs. The whole render updates on the next frame, with no tiles to regenerate, and the style holds at every distance.

Nothing is baked

The usual way to restyle a web map is to regenerate its tiles. You change a style file, a pipeline runs, and some minutes or hours later the new colours exist. Change your mind and you do it again.

There is nothing to regenerate here. Tiles carry geometry, not appearance, and colour is decided at draw time. Setting a palette is setting a value, and the frame after it is the new look.

It holds at every distance

Because the styling happens in the renderer rather than in an image, it does not stop where the detail stops. Your palette reaches the horizon, and it survives the camera pulling out to orbit and coming back down.

Time of day is part of the style

Set a date and a place and the lighting follows: the sun rises where it should, the shadows fall where they should, and the whole scene warms or cools with it.

Golden hour, blue hour, midday, night. Those are not four themes somebody drew. They are one lighting model given four timestamps, which is why they agree with each other.

Down to the shader if you want it

For most needs a single configuration object is enough: the grading stage re-tones the entire engine from it, without touching engine code.

If your product needs a look that configuration does not cover, the engine stays open: individual shader chunks are replaceable, and the post-effect chain is composable.

What this is for

Brand consistency, first: a map inside your product should look like your product, not like a map someone embedded.

Then differentiation. Every map on the web is drawing from the same data. What separates them is what happens between that data and the screen, and that part is yours here.

Read on: what you plug in: canvas, scene and camera, or from an OpenStreetMap row to a shaded pixel.

Read more

  • OpenStreetMap as a 3D globe, not a flat map

    No Mercator, no projection distortion, no broken poles. One continuous camera from a doorstep to orbit, on a world that is a real sphere at every scale.

  • 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.