MERCATOR GRIDDED EARTH DATA AS MAP TILES
A few years ago I wrote here about generating current-flow animations on map tiles from sparse vector data. That little tile-by-tile animation experiment never quite left me alone. I have spent the last while turning the idea into a real product, and it is now live: mercator, a gridded earth data API that serves weather, ocean, air quality and elevation as map tiles.

The problem
There is an enormous amount of earth-science data on the internet, and almost none of it is shaped for a map. Most commercial weather APIs answer one question well: what is the value at this latitude and longitude? You send a coordinate, you get a number. That is perfect for a “weather in your city” widget and useless if you want to draw temperature as a continuous field across a continent, or animate wind as flowing particles over an ocean.
If you want the continuous surface, a point API forces you to make thousands of requests and then interpolate between them yourself. You end up rebuilding a grid the provider already had and threw away at the API boundary. What you actually want is the grid. The raw model output (NOAA’s GFS, ocean state from HYCOM, air quality from Copernicus CAMS, elevation from GEBCO) is already a regular array of values over the globe. The real job is just getting that array into a browser efficiently enough to render it at 60fps.
Values baked into pixels
Map tiles already solved “deliver a huge raster to a browser, lazily, at the zoom and region the user is actually looking at, cached hard at a CDN”. Every mapping library on earth speaks that protocol. The only twist mercator adds is that its tiles do not carry colours. They carry values.
The bytes in each pixel are the actual physical quantity, scaled and offset to fit the 8-bit channels of an ordinary PNG, and a fragment shader decodes them back to real units on the GPU at draw time. This is the same idea as Mapbox’s Terrain-RGB, which packs elevation into RGB, generalised to scalars like temperature and to vector fields like wind and currents.
The payoff is that the developer controls the visualisation entirely on the client. Swap the colour ramp, switch from a filled raster to streamlines to contours, change the value range, all without refetching a single byte, because the bytes are the data and not a picture of it. The current-flow animation from that old article is now just one of the things you can render, except the heavy lifting happens in a shader instead of being baked into a GIF.
What it does
mercator has two halves. The first is the tile service: an HTTP endpoint serving the value-encoded tiles plus a metadata.json that fully documents the encoding, so any developer can decode the pixels without my code. The second is an open-source SDK that ships the shader decoders and ready-made visualisations (colormapped rasters, animated wind and current streamlines, arrows, contours, value labels) for MapLibre, Mapbox, Leaflet, OpenLayers, deck.gl and React. Six lines of JavaScript get you an animated wind field on a map.
The catalogue spans atmospheric weather, ocean currents and waves, air quality and elevation, and the forecast datasets refresh on a six-hourly cycle. The whole thing follows the same shape as Mapbox GL JS or Deck.gl: the SDK is free and open (Apache-2.0), and the paid part is the data API, with a free tier of 10,000 tiles a month. Because the tile format is documented, you are never locked to my renderer.
Have a look
There is a live interactive globe on the homepage with wind streaming over it, a live playground for each framework, and the full tile-encoding and API docs if you want to decode the tiles yourself. The free tier needs no credit card.
It started as a tile-animation hack in a C# project, and it has grown into a proper gridded-earth-data service. If you build maps and have ever wanted real weather or ocean data on them without wrestling a point API, I would love for you to try it and tell me what you think.