Preamble
I have been thinking about cellular automata ever since I read a fascinating and important book, Three Scientists and Their Gods, during the summer of my sophomore year of college. This book changed my life.
After reading this book ferociously on the drive home from Oberlin college to Boston, for summer vacation, I became obsessed with the idea of digital physics – and particularly with the work of Ed Fredkin, (and later Stephen Wolfram) as well.
In fact, this idea captivated me so much that I thought about it night and day, until one afternoon, I actually had what I can only call “a vision” about it.
I had come back from lunch with my father, where our conversation had been about whether a cellular automata could model a mouse brain. After lunch I went upstairs and tried to write some code to model a simple brain this way. Then, to take a break, I decided to go outside and paint (another interest of mine at the time). It was a hot summer day in Boston. My subject was a simple nondescript raspberry bush in my front yard.
As I painted, I entered a kind of non-conceptual state – a trance of concentration. And gradually, instead of seeing the leaves, I saw the spaces between them. So I painted around the spaces, instead of trying to paint inside the leaves. I was focusing on the spaces, not the leaves, painting the spaces…
When suddenly – instead of seeing the bush – I found myself in a kind of infinite black timeless space – and before me was the universe — all of it.
It was a God’s-eye perspective — in which I saw everything all at once – on multiple levels from the smallest to the largest.
And what appeared before me was a vast multi-level system of intricate emergent behavior – the behavior of cellular automata rules – forming subatomic particles, atoms, molecules, complex proteins, and even higher levels, all the way up to living things, the scale we inhabit, and then planets, galaxies, galaxy clusters, superclusters… and beyond …. all moving together in synchrony, inconceivable intricacy, complexity and beauty.
I suddenly intuitively understood how it all fit together. How it all worked. It was massive, overwhelming, inconceivable!
And then before I could form a single thought, I was suddenly back in my body, in the garden, painting the raspberry bush — it was a total shock!
For nearly a week after this my visual experience was profoundly different. Everything appeared like a cellular automaton. I saw the mathematical structure, the beauty, of everything, no matter how small, no matter how mundane. I literally was seeing what we now might call “the Matrix.”
Gradually the visual changes subsided and things began to look “normal” again. But the insights of that week stuck with me, and this fueled an even greater fascination with cellular automata.
From that experience I became convinced that cellular automata must be at the root of physics. I could not stop thinking about this.
And so I decided I had to find a way to get into Ed Fredkin’s lab at MIT. This became my mission in life.
Finally, after many attempts, I did managed to finagle a summer internship in his lab at MIT, thanks to the kindness of Professors Norman Margolus and Tommaso Toffolli, two of the great minds in the field. They had authored an MIT Press book that I had found and read countless times, Cellular Automata Machines, which at the time was the bible in the field.
They had developed CAM-6, a PC-compatible parallel cellular automata supercomputer for digital physics simulations. I spent every minute of that summer in that lab on CAM-6, exploring the computational universe.
For years after that internship, I filled dozens of journals with detailed ideas and theories about digital physics. I wrote code, I tested ideas, I learned and explored. But nothing really came close to the richness and complexity of our actual world.
These digital models were lacking something, but I wasn’t sure what.
Then, years later, it became more clear.
The topology of spacetime is not a fixed set of locations, it’s a graph.
I needed a new kind of model, one where the shape of space could evolve, one where the shape of space could affect matter, and where matter could affect the shape of space, because after all, according to Einstein, they are really the same thing.
And from this insight I then undertook decades of exploration into the idea of a new kind of cellular automata — one in which the cells had links to each other, which could also figure into their states. Both the cell states and link states could interact, forming complex topologies and geometries.
Decades went by, along with many experiments that did not bear fruit.
But last year, I actually built something that demonstrates this new class of CA rather nicely.
Now I’m finally getting around to posting it…
Introducing LACE: The Link Automata Computing Engine
LACE is a new experimental platform written in python, for exploring a class of cellular automata in which both the states of cells and their connections (links) to each other are subject to the rules.
In LACE, the state of a cell is a function of both its neighbors AND the links it has to them, and link states in turn are a function of the cells they connect.
This enables rules in which virtual neighborhood topology (the links) affects neighborhood states — rules in which topology can both evolve and shape the behavior of the system, and in which the behavior of the system can shape topology.
LACE rules range from link-aware variants of Conway’s famous Game of Life, but where edges have varying degrees of influence, to completely new kinds of rules that use topological metrics in their neighborhood calculations.
What is fascinating about these new link-aware “LACE rules” is that they exhibit amazing new forms of stability and periodic structure. They produce new kinds of periodic gliders, oscillators, puffers, and other kinds of phenomena. Some of them even have behaviors that resemble forms of “artificial life.”
The Code
You can read more about LACE here.
You can get the LACE python code repo here.
The Gallery
First, let’s take a look at Conway’s Game of Life, but with links visible. This simply shows the links and their states, but in this example the links do not affect the states of cells. In other rules, we will actually modify the behavior of the Life rule based on the links
And here are some Life gliders, doing their thing, with links visible…
And here is a stable pattern in Life… with links….
Now, here is a version of Life, where edges influence rule behavior…
Here’s a variant of Life where edges play even more of a role…
Above, we looked at some traditional Life rule cellular automata. These rules show varying levels of link-awareness (from none, to strong). But they are still not utilizing the full capabilities of the LACE platform.
Next, we turn to more advanced rules that fully utilize the capabilities of the system…
The Realm of LACE: LACE Rules
Now, take a look at the “Amazing Dragons” rule in LACE, one of the more interesting rules in this universe.
This is not a life rule – it’s a LACE rule – a topological rule.
Here links play a major role in the behavior of cell states and cell states modify the states of links as well.
…and look what happens!
LACE also supports an optional high-performance, GPU-accelerated mode using Taichi, for large-scale simulations…
And here’s another interesting LACE rule…
and check this out…
and this one….
And now a gallery of many other interesting LACE rules…
This has been a preview of the Realm of LACE … an incredible new class of cellular automata rules, where links matter and topology evolves.
Learn more by playing with the repo, and please share your discoveries 🙂