# Biota

Biota is a little project I put together for PROCJAM in November. It’s currently implemented as a Chrome extension which takes over the new tab page and fills the screen with cellular automata visualisations.

The visualisations are heavily randomised so the underlying patterns and structures might not be immediately obvious—though this becomes more apparent over time.

Here’s an inventory of the different kinds of cellular automata that are included:

## Elementary cellular automata

The fundamental 1D ticker-tape automata corresponding to the Wolfram classification. Because the rule sets can be easily expressed in binary numbers or strings, it’s very straightforward to randomly generate rule sets for each of the 8 possible inputs. The most obvious way to animate these is to scan line-by-line which is quite tedious to look at, distracting from the interesting larger visual patterns.

## Turmite

Turmites are variations of Turing machines, based on a single pointer to a cell (or ‘drawing head’) that has a state and direction. On each tick, the Turmite can either change direction or move one step in the direction its facing, depending on the given rule that applies to its current state.

These are fun to animate. In order to make more interesting sprawling glitch patterns, a large number of generations are needed. I ended up working in the range of 250,000–3,000,000. When it runs for long enough, the drawing head starts overwriting itself, which leads to some of the most distinctive effects.

## Cyclic automata

Cyclic automata are super-interesting to me. I discovered them while researching and experimenting with terrain generation and particle effects for 2D roguelike games, and I loved it so much I’ve had one as the cover of my website for more than a year.

Cyclic automata work in a similar way to 2D automata like Conway’s game of life. Instead of defining state transitions as rules (eg: Cell A -> Cell B), cells are labelled with an index referencing a position in an integer sequence. When a neighbouring cell is exactly 1 ahead in the sequence from that of the given cell, the cell increments to the value of the neighbour. After reaching the length of the sequence, values wrap around back to 0, which is why they’re called cyclic.

It turns around that the length of the sequence has a big impact on resulting behaviour. There’s a magic cycle length—16—where the resulting patterns are remininscent of dissipative structures, going through multiple phase transitions before settling into a rhythmic spiral pattern remininscent of the BZ reaction. This is only visible directly when the automata is animated.