CCA2D Compute Shaders

Designer, Developer


An ongoing series of real-time compute shader explorations in Unity. As if Vert/Frag shaders weren't annoying enough :) compute shader's leverage the power of the GPU to run large, super fast calculations. This first series explores 2D Cyclic Cellular Automata.

I'm also using this opportunity to experiment with different areas of Unity, such as building custom interactive GUI's.

2D Cyclic Cellular Automata

In CCA, neighboring cells update themselves depending on the rules defined in the implementation (how far to look around, where to look, at what point to update itself, etc). From these basic rule sets, complex visual patterns arise.

In the examples below, I'm varying these rules in the compute shader which in turn drive the output to a texture map on a simple polygonal mesh. It's awesome to see the emergence from "noise" into interesting patterns — sometimes only visible at different resolution sizes (from 8 — 2048). 

CCA2D/ Vertex Displacement

CCA2D/ Texture


As part of this exploration, I wanted to dive into creating custom interfaces in Unity for the first time.

I extended the basic UI components like buttons and text with my own designs as well as implemented custom animations and interactions that affected other scene elements.

This scene uses the HDRP workflow with models I designed in Cinema4D.


© Roberto Brambila