HomeNews

Watch four billion years of humanity in a pixel shaderA long way from making armour shiny

A long way from making armour shiny

A screenshot of Humanity, a pixel shader, depicting an earth-like planet as seen from space, with half the planet in shadow and city lights visible.

Me, in 2000: ah, so shaders can make textures inQuake3 look glowy or wibbly. Me, in 2016: oh, okay, so shaders can also be used to createshoals of fish in Abzu. Me, right now: wait, so shaders canalsobe used to tell the story of a planet over four and a half billions years, from a lump of molten rock to the formation of mountains, rivers, and human cities.

If you’d rather, instead of clicking the link above, you can watch the animation with some music on Vimeo:

The animation runs through six main stages in its development of a planet: protoplanet, in which the surface is red hot; the shifting of tectonic plates to establish moutains and oceans; hydraulic erosion, which marks the terrain with rivers; global climate, which depicts the changing of seasons; the distribution of life, including plants, herbivores and predators; and finally humanity, as we construct cities.

Its creator, David A. Roberts, haswritten a lengthy explanationof how each of these stages are constructed, including the scientific models on which its based and examples of the code used to recreate it within a shader. It’s particularly impressive how the different simulations interact: climate follows from the distribution of oceans, and life, including plant growth, responds to climate.

I’m coming to all of this late. Roberts created the shader back in 2018 and it gained attention online when he wrote the breakdown of how it works last year. He’s since writtenanother post breaking down the experience of going “viral”.

A shader is just a program designed to run on a GPU and they’re typically used to give instructions for how pixels should be drawn on screen. I know that GPUs are powerful enough to do all sorts of things, but still I am knocked down every time a shader is used for something other than making a skeleton glow.