AUTOVERSE

The AUTOVERSE is a WebGL accelerated 2D cellular automaton engine which allow users to randomly explore the full space of rulesets for these automatons and the beautiful patterns which can result from them.

Explore the AUTOVERSE


The main petri dish of the AUTOVERSE consists of a 400x400 grid of cells. Each cell can be black or white, and the color of a cell in the next step of the simulation depends upon its current color and the colors of its four cardinal neighbors (the so called Von Neumann Neighborhod).

A neighborhood thus consists of 5 cells, each of which may be black or white, resulting in 2⁵ or 32 different configurations.

A ruleset is simply a mapping between each of these configurations and a new resulting color; essentially a deterministic pattern through which a new grid of cells can be generated from a previous one. Since each of the 32 neighborhood configurations can map to either black or white, there are 2³² or 4,294,967,296 possible rulesets. To give a sense of the immense scale of the space of rulesets: at a rate of 1 per second it would still take one more than 130 years to see them all!

Rulesets entirely determine the behavior of the resulting AUTOVERSE simulation, and the diversity of forms they create is staggering. Some rulesets result in patterns which quickly die out or reach stable oscillating configurations, while others seem to yield complex never-ending scintillations and shifting botanical looking structures.

The AUTOVERSE can be seen as a toy analogous to certain cosmological views of the multiverse, in which each universe contained within operates according to differing sets of physical laws and constants.

The name of this project was inspired by the cellular-automaton based simulated reality of the same name from the novel Permutation City by Greg Egan.


The AUTOVERSE began life as a Processing application I wrote for the SPAWN exhibition back in 2019. This primitive version ran entirely on the CPU, and thus, in spite of my attempts to optimize it, ran very poorly for even moderately sized petri dishes.

In the summer of 2022 I rewrote the app from scratch with two goals in mind: First, to free the piece from the confines of the gallery and make it accessible to view from a browser, and secondly to massively increase performance by offloading computation onto the GPU.

This new version utilizes the P5.js library, allowing the application to run as a single page webapp. The simulation algorithm itself is embarrassingly parallel, and was easily expressed as a WebGL fragment shader. Because the simulation computation is now handled by the GPU, even large petri dishes render quickly now on older devices.

The new version also includes a small UI which allows users to randomize both the ruleset and petri dish contents, control the speed of the simulation, copy/paste rulesets for easy sharing, and even save screenshots.

Check out the source code