Color DNA

To generate these colorful patterns, I start with a colorful photo. The photo is sampled randomly and each unique color is placed in its location in color space. Once this is finished, the result is a colorful cloud of points inside of a cube; each color has a unique position, and similar colors sit beside each other.

Once we have this cloud of colors, an algorithm called a Growing Neural Gas is used to map out the shape (well, the topology) of the cloud. The algorithm tries its best to approximate the cloud's shape by setting down individual nodes and connecting them together. The nodes are repeatedly repositioned and reconnected until they settle into a suitable layout. The algorithm is limited to only being able to use a certain number of nodes, so it does its best given the restrictions; those restrictions are what actually lead to these interesting patterns!

Here's a rendering of the color points in the cloud, the Growing Neural Gas nodes (cyan dots), and their connections (red lines)

I know, this is all pretty abstract so far. Take a look at one of the patterns below. Each circle represents one of the nodes laid down by the Growing Neural Gas algorithm. These nodes are actually connected together, but I've hidden the connections. Their positions here are laid out by a program called Dot -- a program designed to organize a set of connected nodes onto a flat surface so they can all be seen easily in 2D. A circle's color represents where the node lived in the color cloud, and their size shows how crowded that color is.

That's really it. So, here's a bunch of color DNA!




Deep Woods



Hot Spring


Morning Bay



Orange Butterfly





The Band

Train Station