This is simply… incredibly impressive. I wasn’t expecting they would build a computer all the way up from a CPU and memory to an assembler to a compiler, all in the game of life.
It reminds me of people building computers in Minecraft, but for Game of Life they had to go another abstraction level lower and build the basics like wires and transistors out of GoL constructs.
I was actually a tiny bit disappointed - I was hoping for a closer coupling of tetris-logic to life-logic :-) Per https://conwaylife.com/wiki/Universal_computer the first turing-machine-in-Life goes back to 2000, and "building a CPU to run code" is at this point the "obvious" way to do it. See https://nicholas.carlini.com/writing/2020/intro-to-circuits-... for a tutorial with a (circular) "final goal of designing an Intel 4004 and using it to simulate the game of life."
Right, they made the odd choice to use Life to simulate a different cellular automaton and then built logic gates in that automaton. But you can in fact build logic gates directly with gliders in the Game of Life itself. The extra level of abstraction multiplies the area of the final result by about 20000.
I love how projects like this can give folks a chance to understand and derive computer mechanics from scratch, in a visual way. I feel like living in the land of bits and high level constructs for too long really creates black boxes and fear that it’s too complicated to ever understand the metal. Projects like that dismistify things in clean 2d space. Props, and great write up!
Struggling to wrap my head around how this is possible. Seems others are too [0]. A computer made in, say, minecraft can be given inputs. But since GoL is a zero player game (the player only selects the initial states), how can it possibly compute anything other than the static inputs it's originally provided? Perhaps that's sufficient for Turing Completeness? (when I click 'Run' on the provided link, my chrome tab becomes unresponsive; was hoping to disprove my own disbelief by playing Tetris in GoL but thus far unsuccessful, yet remaining hopeful!).
> how can it possibly compute anything other than the static inputs it's originally provided? Perhaps that's sufficient for Turing Completeness?
Yes, the basic Turing machine model isn't "interactive", it takes some initial input and runs from there.
Edit: Maybe a better way of putting this:
Since you can build a Turing machine as a GoL pattern that will interact with another pattern (its input), analysis of GoL patterns includes analysis of Turing machines, generally.
The basic Turing machine model isn't interactive, but Turing also discussed "choice" machines that were. They're a variant of what we now call non-deterministic turing machines where the decision is determined by a human oracle instead of some other method.
Game of life is no different from other computers in this regard. You can make it have no inputs (just disconnect your mouse/keyboard in the case of your computer), or you can make it have inputs (just have a few GoL cells be controlled externally).
The obsession with technical things is a reflection of how divorced we have become with the natural world. As we need to attend less and less to basic needs, the mind turns inwards, and not always for the better.
I see it as a sort of computer programming equivalent of god. It's so fundamental, beautiful in its simplicity and diversity. The people doing this work are like extreme devotees.
I see it as a better Physics - current Physics as we understand it is messy, continuous, unintuitive, and contradictory. Kinda frustrating for computer science folks.
Game of Life on the other hand is so simple it can be written up in a few lines of code, and still can give rise to endless complexity.
Easy to implement, but much room for optimization.
The rules are simple, but give rise to complexity.
Despite conservation of mass and such not being a part of the rules, what appear to us to be "objects" arise, and can even exhibit velocity! Physics-lite results out of nowhere.
It's an ugly and stupid computer and the "display" is barely visible. It also doesn't have a cache, or MUL/DIV/MOD instructions. Not very impressive. It wasn't even actually made in the Game of Life.
Also, if I had 1p for every time someone saw a hobbyist CPU and asked "can it run Doom", I'd be a zillionaire.
Kudos.