When I look at this, it's hard to grasp just how it's possible. But then I imagine I'm looking at electrons, atoms, small atomic particles. And I think, "These are kind of cool - some pretty simple concepts and they can do stuff!"
Then someone shows me a simple 555 timer that blinks an LED every second that's all built from electrons and atoms. And I "get" how it works, but I'm still blown away how amazing it all is.
> With inputs and outputs, one could conceptually write and run any software in it.
IO is major caveat though. And there is also real-time to consider.
I've been long wondering if we should define more interesting computer models in addition to Turing machines. Games make interesting milestones as an example; you could define a system to be e.g. "Tetris-complete" if you could run a playable version of tetris on it, or more advanced would be "Doom-complete" and simpler could be "Chess-complete" or "Zork-complete". Each model would imply something about not just pure computation, but the practical capabilities in terms of inputs and outputs and also something about performance. Of course it doesn't need to be games, you could use anything as a basis for a model.
> IO is major caveat though. And there is also real-time to consider.
I think you're missing the point here. No one would use Conway's Life to do anything practical (at least no sane person would). The point of this is to serve as a visceral illustration of the fact that computational completeness can emerge from very simple mechanisms.
Why? It would seem very simple to implement IO in game of life - simply allow the user to change the content of a number of cells dedicated to input. If you think about it, that's the same thing we do with keyboards and mice at some level.
Any machine which is Turing complete is Tetris-complete and all the other -complete you list. At the end, all of it is just binary values somewhere and trapping instructions which you can perfectly run on anything Turing-complete.
I'm constantly blown away by the fact that such a simple rules can lead to complex systems such as this. Changed my perspective on a lot of things after that
It is more than that, it is essentially the entire clock containing the primary oscillator and dividers respectively counters. Watch closely, when several digits change at once, then it emits multiple pulses. Also note that the pulses are emitted from different places, there are essentially three counters, 0 to 12, 0 to 5, and 0 to 9. The three structures above the display are essentially just seven segment decoders, you can see the digit patterns encoded in them similar to mask ROM. There is one column for each digit and two rows for each segment, one to turn the segment on and one to turn it off. If you zoom in on the right of a decoder, the rows are actually labeled with [S]et and [R]eset and a letter A-G for the segment controlled by that row.
Then someone shows me a simple 555 timer that blinks an LED every second that's all built from electrons and atoms. And I "get" how it works, but I'm still blown away how amazing it all is.
Interesting CPU designs exist for GoL.
IO is major caveat though. And there is also real-time to consider.
I've been long wondering if we should define more interesting computer models in addition to Turing machines. Games make interesting milestones as an example; you could define a system to be e.g. "Tetris-complete" if you could run a playable version of tetris on it, or more advanced would be "Doom-complete" and simpler could be "Chess-complete" or "Zork-complete". Each model would imply something about not just pure computation, but the practical capabilities in terms of inputs and outputs and also something about performance. Of course it doesn't need to be games, you could use anything as a basis for a model.
I think you're missing the point here. No one would use Conway's Life to do anything practical (at least no sane person would). The point of this is to serve as a visceral illustration of the fact that computational completeness can emerge from very simple mechanisms.
Why? It would seem very simple to implement IO in game of life - simply allow the user to change the content of a number of cells dedicated to input. If you think about it, that's the same thing we do with keyboards and mice at some level.
You may already have been aware but sharing in case others aren't!
Deleted Comment
https://www.electronics-tutorials.ws/logic/universal-gates.h...
Source code for the platform: https://github.com/copy/life