hckrnws
Build a working game of Tetris in Conway's Game of Life (2014)
by wxw
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.
Kudos.
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.
Related. Others?
Build a Working Game of Tetris in Conway's Game of Life - https://news.ycombinator.com/item?id=38760965 - Dec 2023 (2 comments)
Build a working game of Tetris in Game of Life (2013) - https://news.ycombinator.com/item?id=32907893 - Sept 2022 (1 comment)
Build a Working Game of Tetris in Conway's Game of Life (2014) - https://news.ycombinator.com/item?id=22871417 - April 2020 (11 comments)
Building a Working Game of Tetris in Conway's Game of Life - https://news.ycombinator.com/item?id=15247935 - Sept 2017 (2 comments)
Building a working game of Tetris in Conway's Game of Life - https://news.ycombinator.com/item?id=15246348 - Sept 2017 (46 comments)
Building larger switching squares out of smaller ones reminds me of the infinite zoom recursive life game: https://oimo.io/works/life/
Thank you for posting this, I never saw this before. This is seriously impressive, and it would make a nice screensaver.
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!
TIL that Conway's game is turing complete. Wow.
then you will be even more impressed by Rule 110 being turing complete with a specific background pattern.
It gets even funnier, some folks implemented a version in geometry nodes within Blender.
https://www.youtube.com/watch?v=iSoqddxoCl8
One could do all sorts of fun abstractions with the simulation data. =3
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!).
[0] https://stackoverflow.com/questions/394957/why-can-conway-s-...
> 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.
If you think about it, a Turing machine is also Turing complete, and also is a zero player game where one only sets initial inputs...
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).
Right. The principled way to interact with a GoL computer is to implement yourself in the game.
it turns out it CAN play Doom. That's impressive
This is the first stackexchange answer that I see that starts with accomplishments like a essay.
I only have one word to say about this.
Doom.
I wonder why nerds are obsessed with Game of Life. I know I am one of them, but I still don't quite get why it hits the spot so well
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.
Finally, nerds like simulations.
Something to do with the name perhaps!
Game of Death doesn’t sound half as fun ;)
That's what we spend the rest of our time playing
I woke up to this article and now I feel profoundly inadequate.
Comment was deleted :(
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.
Crafted by Rajat
Source Code