Cellular Automata

The most basic sort of digital life. I was immediately fascinated. Of course, Cellular Automata (CA’s) are really just models of computation. A grid of independently independent cells, each with a computed state, affected by the states of neighboring cells. The most famous example of this is probably Conway’s game of life.

Gosper’s Glider Gun

Here cells are born or die based on the number of alive neighbors. Four simple rules define the entire game. You set an initial state, and the world just follows the rules. Some elements will rapidly die off, while others can move about, or generate elements that can move, and interact with others. This game is actually turing complete, meaning that with just these 4 rules, you can simulate an entire Universal Turing Machine (computer)!

I’ve been interested in agent independence and cooperation for a long time. Like many of us, sci-fi has always inspired wild dreams for me. One of my favorite examples were Hiro’s microbots in Big Hero 6. Small devices that could cooperate and form into shapes and structures on command.

microbots

In university I tried my hand at playing Hiro and built a simulation which I called the Distributed Intelligence Experiment, where cellular elements would arrange themselves in patterns. Having no education in artificial intelligence at the time this became more of a web development project (not nearly as exciting as Hiro’s project).

DIE Screenshot

Years later, and now with a greater understanding of AI, I came across the idea of Neural Cellular Automata. A wonderful paper on distill.pub has an incredible example of this. My goal here is to explore this concept and hopefully replicate the functionality explained through this paper!

Neural Cellular Automata

Updates to come!