Cédric Colas Cédric Colas logo

Breeding Visual Universes

Evolving worlds of colors

The Idea

A few years ago I discovered Picbreeder: you see a grid of images, pick your favorites, and the computer breeds new variations from them. Repeat, and you end up with images neither you nor the machine would have created alone.

I wanted to build my own version and push it further. What if each image was a window into a mathematical universe, and instead of breeding images you could breed entire worlds?

How It Works

The images come from small networks called Compositional Pattern Producing Networks (CPPNs). A CPPN does two things. It maps pixel coordinates to colors — feed it a position, it returns a color; feed it all positions and you get an image (left). And it builds complexity by composing simple functions (sine, cosine, gaussian) into a deeper computational graph (right).

Generating an image from a CPPN CPPN computational graph diagram

A CPPN maps each pixel's (x, y) coordinates through composed functions to produce a color. Left, Right.

Windows Into Other Worlds

But why stop at pixel coordinates? In this project, each CPPN takes geographic coordinates too; latitude, longitude, altitude, on top of local pixel positions. The same CPPN produces a different image depending on where you open a window into it. Nearby locations produce similar views, distant ones reveal different patterns. A single CPPN defines an entire visual universe: you just need to decide where to look.

I opened windows at my own place and at friends’ houses closer and further away, creating a set of viewpoints into each universe.

Breeding Universes

I start with a population of random CPPNs, each one encoding a small, unique universe. For each of them I look through the 9 windows, then I pick my favorites. The selected networks reproduce: their structures combine, mutations add new nodes or connections, and the next generation appears. Repeat over many generations, and the patterns become increasingly intricate and beautiful.

This is interactive evolution: I act as the selection pressure, and the algorithm handles variation and reproduction.

Eighteen evolved universes, each shown through nine windows placed ok at different locations: