How MapWorld works

Every search turns into one video. The world plays it and rebuilds a small patch of the real world from what is in the frames.

1. Finding the place

Coordinates typed as lat,lon are used as they are. A place name or address is looked up (geocoded) with Azure Maps, which returns up to five candidates; MapWorld builds the best one and lists the rest on screen. The answer is remembered for a while, so everyone who sends the same search, including players who join later, gets the same place rather than a fresh lookup that might differ.

2. Building the tile

A tile is a square about 64 m across, centred on the place. If nobody has visited it recently, MapWorld builds it on demand from open data, choosing the best source available for that spot:

  • Lidar and national elevation models where a country publishes them, for detailed ground and rooftops.
  • Copernicus GLO-30, the Copernicus programme's worldwide 30 m elevation model, everywhere else.
  • National aerial photography (orthophotos) for the ground colour where it is openly licensed, and a drawn map style where it isn't.
  • Overture Maps and OpenStreetMap for building footprints and heights, roads, water and land use.

A build runs as a separate process on the server and takes anything from a few seconds to a few minutes, depending on the sources. Many players searching the same place share a single build.

3. One video per destination

Each video frame is split into three panels side by side:

  • Colour: the map or aerial image, with the place name and data credits drawn on it.
  • Height: brightness encodes the height of the ground and buildings at each point, which the world turns back into terrain.
  • Collision: a small data packet the world decodes, carrying the tile's position, height scale, up to 16 box colliders for the ground and buildings, the destination name and a checksum.

While a tile is being built, or when something stops it, the same URL plays a short status video instead. Status frames are marked in the packet, so the world shows the message and never mistakes it for terrain. Ready destination videos are kept for 24 hours; after that the next request rebuilds them.

Limits

MapWorld is a free service on a single server, so it shares its capacity:

  • each player's address may make about 20 requests a minute and start about 10 new builds an hour;
  • only a couple of tiles are built at once, with a short queue behind them;
  • place-name lookups have a fixed daily budget. When it runs out, name search pauses until midnight UTC, while coordinates and the prebuilt places keep working.

When a limit is reached the world shows a status screen and, where it makes sense, retries by itself.

Built with

The server is written in C# on ASP.NET (.NET Framework), with SQL Server for its small amount of state and ffmpeg for video encoding. The tile builder is a separate C# program that reads the open data with GDAL and DuckDB and draws with SkiaSharp.

Privacy · Terms