Machines in Motion
with Jonathan Mccabe

Generating mind-altering visions from computer and code, Jonathan McCabe explores the secrets of the natural world, going under the skin and beyond the eye.


Jonathan McCabe is a generative artist and designer who is inspired by pattern formation in the natural world. Writing computer programs which generate “Turing patterns”, he mimics the process of pattern formation in nature by replacing cells with pixels.

In the 1952 paper, “The Chemical Basis of Morphogenesis”, Alan Turing demonstrated how a simple system of substances, reacting with themselves (and each other) and diffusing based on varying concentrations, can lead to stable patterns of concentration such as spots and stripes.

Subsequent research and experimentation support this process, revealing it to be the way in which these kinds of patterns appear in plants and animals—the stripes on a tropical fish, for example, or even how a hand develops a kind of stripe pattern to distinguish between its five fingers.

Generating algorithms to represent Turing’s concepts in colour and code, Jonathan has created a body of work that is as organic and familiar as it is methodically derived. We let Jonathan walk us through his mind-melting work, operating on scales and timelines that go under the skin and beyond the eye.

Jonathan McCabe's Website
Jonathan McCabe's Flickr


↥ Simple Turing Pattern

Each pixel starts in a random state with a numerical value between 0 and 1, represented by a level of grey between black and white. Two averages of the values of the pixels are calculated in regions around each pixel, which represent the diffusion of the concentration of an “activator” and an “inhibitor”. The activator is calculated over a shorter distance and the inhibitor over a longer distance (usually two or three times longer).

If the value of the activator is higher than the value of the inhibitor, the pixel value is increased slightly (the pixel gets whiter)—otherwise the pixel value is decreased slightly (the pixel gets darker). This process is repeated hundreds or thousands of times. A stable pattern of spots and stripes develops from the initially random starting point. This system is simpler than Turing’s but produces the same kind of pattern.


Turing Patterns with 6 Morphogens

In the simplest example of Turing patterns there are two substances, an “activator” which increases the amount of itself and also the amount of an “inhibitor”, which decreases the amount of the activator and of itself. These substances are sometimes referred to as “morphogens”, things that give shape or form.

The activator diffuses over short distances and the inhibitor diffuses more easily to larger distances. The scale of the patterns generated depends on the distances that the activator and inhibitor travel. By using more than two virtual substances which all interact with each other, patterns with simultaneous structure at multiple scales can form.


Discrete State Turing Patterns

I have been pursuing the idea of using the pattern forming process behind Turing patterns for art and design. For these “discrete state” Turing patterns each pixel starts off in one of a few possible states, which are represented by a particular color. The pixels then check what state the ones around them are in, and based on that each pixel “decides” what state it will be for the next time step of the simulation.

This is very much a “cellular automata” type of model, with a large neighbourhood of influencing cells. The basic idea is that a pixel wants to be the same colour as its neighbours, but a different colour than pixels further away. This leads to spots and/or stripes being stable states of the system.


↥ Multi Scale Turing Patterns

Although simple Turing patterns begin to emulate natural formations, they only produce structures on one scale which is rare in nature. By mixing Turing pattern-forming processes at several different scales, we start to approach a level of complexity and detail that is seen in nature.

This is another multi-scale system where a large scale Turing pattern is laid down and then one with smaller details is generated, influenced by the larger one. The process is repeated a few times to make the small details.


↥ Flow Pi

Turing pattern generating systems can be used as parts of more complicated systems. In the above, a multi-scale Turing pattern generating process is mixed with a two dimensional compressible fluid flow model. The results look strangely 3D to me, a bit like paintings of landscapes, which was a surprise when I first made this program and looked at the output.


↥ Turing Flowers

In these ‘Turing Flowers’, multi-scale Turing patterns are generated in a space that is slowly inflating, and which has a cyclical symmetry imposed. Small details get bigger and are decorated with finer patterns that expand in their turn.


Jonathan McCabe is a generative artist and designer living in Canberra, Australia.

Jonathan McCabe's Website
Jonathan McCabe's Flickr