Table of Contents

Algorithmic art on GPUs

Here are some artworks produced by algorithms I find interesting. The algorithms are implemented as compute shaders within the Unity game engine.

The videos here are compilations of results with different input parameters and other control schemes. The compute shaders were controlled with custom tools I developed for Unity.

These were mostly developed as part of Arsiliath's compute shader course in december 2020. The course is a pure gem and highly recommended for anyone interested in these things.

Cyclic cellular automata

Based on the 1991 paper Cyclic Cellular Automata In Two Dimensions by Fisch, Gravner and Griffeath.

This automaton rule updates a cell when it has a neighbour (or a sufficient amount of neighbours) with a modular (wraps around modulus) value exactly one higher than the cell's current value. The update copies the value of the neighbour, causing this rule to often cascade into a race where different values spread across the grid. The modular arithmetic causes this race to become cyclic which often results in different kinds of spirals.

I especially enjoy watching how things evolve when playing around with the parameters while the automaton is being updated. With good tools, one can search for sweetspots or nice ranges to randomize within and constantly be surprised by the results.

Edge of chaos

The idea of the edge of chaos implies that complex systems have a phase between chaos and order, in which the systems exhibits characteristic of both. In the context of cellular automata, this concept was showcased in the 1990 paper COMPUTATION AT THE EDGE OF CHAOS: PHASE TRANSITIONS AND EMERGENT COMPUTATION by Christopher Langton.

Langton describes one dimensional automata rules and a parameter called lambda, that describes what percentage of the rules result in a "live" cell in the next iteration. A lambda close to 0 implies a set of rules that results in most cells ending up "dead" while a lambda close 1 would result in more "live" cells. The edge of chaos is somewhere in between.

One dimensional automata iterations can be stacked on top of each other to create beautiful visuals describing the evolution of a system. In the video here, you can see various systems and rule sets found by driving rulesets towards certain lambda values that felt close to the sweetspot at the edge of chaos.

More soon

I'll be adding content related to some of my experiments with agent based algorithms (physarym, boids, dla) soon. I'm also going to write down some plans for continuing these adventures towards unexplored directions.