WOAH
The Human Terrain title over a pale 3D map where population density rises as pale green columns across California cities

On the web

The whole planet, drawn as columns of people

By The host2 min#dataviz#maps#webgl

The Pudding's Human Terrain renders global population as 3D columns on a map, built from satellite settlement data served as Mapbox vector tiles so it stays smooth.

Cities stand up off the map. Every place people live becomes a column, and the denser the place, the taller the spike, so a metro area reads as a small mountain range of population and an empty valley stays flat.

Human Terrain, an interactive map by Matt Daniels at The Pudding, is trying to solve a real problem: ten million people is a number nobody can feel. Drawn as a wall of columns you fly through, city by city, it finally has a shape. Kinshasa overtaking Paris stops being a statistic and becomes a taller pile, and a 1990 view lets you watch three decades of growth stand up out of the ground.

The data is a satellite census

The heights come from the Global Human Settlement Layer, a European Commission dataset that fuses satellite imagery, census counts, and volunteered geographic data into a global grid of how many people live in each cell, at resolutions down to 250 meters.

At that resolution the raw data runs to terabytes. Loading it all at once would choke any browser, and most desktop GIS tools besides.

So Daniels processed it in Google Earth Engine, which let him run Python against the full dataset on Google's infrastructure and export only the layer he needed, between ten and twenty TIF files, instead of downloading the world.

From satellite grid to columns on your GPU

Then the pipeline. GDAL's gdal_polygonize turned those rasters into shapefiles, the shapefiles became GeoJSON files over a gigabyte each, and Tippecanoe crunched the GeoJSON into tilesets at three resolutions: five-kilometer cells for the world view at zooms 0 through 4, one-kilometer cells for the middle zooms at 5 and 6, and the full 250-meter grid from zoom 7 up close. A tile-join pass merged them into a single tileset uploaded to Mapbox.

That tiling is the whole trick. The browser only ever downloads the patch of planet you are looking at, at the resolution your zoom level deserves. Mapbox GL then draws each cell as a fill-extrusion, a flat polygon pulled upward in proportion to its population value, and the pulling happens on your GPU. A terabyte-scale dataset, scrolling like butter.

The payoff is an argument

You think you know which cities are large. Then you watch southern China fuse into one continuous ridge of thirty and forty million people, and the abstract number lands.

Daniels published the whole pipeline as a step-by-step build tutorial on the Mapbox blog, Earth Engine script to final map style, if you want to raise terrain of your own. The companion essay, Population Mountains, is his guided tour of what the columns reveal.

More huge things rendered so you can grasp them: an endless factory floor one person keeps drawing, and a scroll wheel that goes eleven kilometers down.

Next up

Build a working CPU starting from a single NAND gate