Compute shader workshop assignments

Sun Apr 18, 2021

I’m taking part on the Bio-inspired Simulations Compute Shader Workshop by @arsiliath. Every week we get assignments which I post on this page.

Week 1 - Cyclic Cellular Automata (CCA)

01:06 Watch in Vimeo

In my implementation I created a simple chess-board-like grid in which black and white locations implement two different sets of parameters for the CCA. I also gave each cell an age. While the cell state doesn’t change it darkens, producing gradients. Finally, when each cell scans for neighbors it sums the vectors pointing towards those neighbors, then uses the sum vector to simulate light resulting in a bevel effect.

Based on “Cyclic Cellular Automata in two dimensions” (1991) by Fisch, Gravner, Griffeath.

Music by Floating Spectrum - vimeo.com/floatingspectrum

Week 2 - Edge of Chaos

In week 2 we are implementing the paper titled “COMPUTATION AT THE EDGE OF CHAOS: PHASE TRANSITIONS AND EMERGENT COMPUTATION” by Chris G. LANGTON (1990).

All the following images were created with the same program I wrote using compute shaders in OPENRNDR.

This is chaos. It happens when there are too many random rules to drive the simulation.

And this is not chaos, which occurs when there are too few, too simple rules.

I will explore the edge of chaos, where intersting things happen. You can see the colored pixels at the bottom. That is the initial state. The simulation progresses upwards line by line. I look for simulations that converge towards interesting patterns, usually where not all colors (states) are equally common.

Next I changed the rules in the middle of the simulation to observe what happens. Notice how some simulations converge towards simpler states while others can grow out of simplicity and become chaotic. It all depends on the set of rules governing the simulation.

To me each of these images tells a story. In the next one for example, randomness decided to create two worlds separated by a white wall. Little white trees growing on the surface cast a shadow upwards at an impossible 45 degree angle. The shadow makes moss grow on the wall.

Here we can see a geological fracture.

I find the combination of mathematical perfection and the organic fascinating. If you observe closely maybe with a magnifying glass you can see that between the growing plants perfectly repeating patterns leak out in some places, for example on the upper half of the right plant, something resembling a triangle. Also those vertical lines, which are sometimes single lines, double lines or dotted lines, everything emerging from a set of rules. Simply beautiful.

At some point I implemented fading, so if a cell (a pixel) has the same state (color) as its closest parent, it becomes slightly darker. This was an attempt to add some depth and make it less flat.

In this case the fading made it look like a photograph of a CRT / old TV. Again a captivating arrangement full of repeating patterns and specific sizes for triangles, everything born from a set of rules specifying which cell to produce depending on its 3 ancestors.

White rust parasite growing between perfectly aligned triangles.

Rotting bit wood.

A world of triangles stuck on a more primitive stage of evolution.

At some point the triangles leave their home and start looking for new experiences.


Frozen tree marionette.

Typical Berlin sky.

The Chaos Nebula.

Temple surrounded by followers and a few spies.

The great migration.

Signs of growth at the edge.

The organic origins of life are now a conspiracy theory.

Space elevators in Egypt.

First successful attempt to leave.


Dreaming of simplicity.

Early stages of the singularity.

Cold lava flowing on a hot planet.

Triangle street view.


Edge of Chaos.

Finally symbiosis.

Designer spring Chaos.

Trails forming in the system.

Cherry blossom computation.

Matryoshka containers.

Categories: text Tags: shaders programming math Places: virtual

left arrow down arrow right arrow