Hacker News new | past | comments | ask | show | jobs | submit login
Conway's Game of Life digital clock (copy.sh)
362 points by sieste on April 20, 2023 | hide | past | favorite | 59 comments




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.


Now contemplate that your brain that is being blown away is also just electrons and atoms.


By the way, Conway’s GoL has been proven Turing Complete. With inputs and outputs, one could conceptually write and run any software in it.

Interesting CPU designs exist for GoL.


Of course, someone did game of life in game of life: https://youtu.be/xP5-iIeKXE8


It's more impressive to have it running on your browser, with infinite levels of nesting, both "in" and "out": https://oimo.io/works/life/


Someone shared this yesterday and I didn’t get what what’s interesting about it. It just looked like a normal GoL simulator. I didn’t realize you could zoom in and out. This is so cool. Thanks for sharing.


This site is extraordinary...


Damn that's a clever implementation!


Only a question of time until it runs Doom.


> 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.


> IO is major caveat though.

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.


"receive keyboard events" or "draw pixels on screen" are not properties that arbitrary turing machine has. So it is meaningful to distinguish systems that have those properties (and/or others) from systems that do not.

Paradoxically computation is actually just small part of what computers do.


Turing initially distinguishes between ‘automatic machines’ which do not receive input, and ‘choice machines’, which do. It then describes the latter in terms of the former.

It only talks about binary choices, but keyboards are just methods for sending a few of those at once.

If you don’t abstract away that kind of stuff, it’s not obvious why you’re doing any generalisation at all.

Tetris.app on my phone cannot read from a game boy cartridge, or speak to a joystick or arcade cabinet CRT screen - is it Tetris complete?


"receive keyboard events" or "draw pixels on screen" are higher-level actions that are the result of the same computations that are used for everything else.


Relevant: Build a working game of Tetris in Conway's Game of Life: https://codegolf.stackexchange.com/q/11880/9365

You may already have been aware but sharing in case others aren't!


has anyone run Doom on it yet?


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


I read Code by Charles Petzold earlier this year and I feel like I had a similar realization. A simple switch can lead to such complex systems.


Right. A transistor (as used in most digital logic, anyway) is just a switch, and is what our most complex computers are made of.


Do we have an understanding yet of the minimum number of unique rules a system must have in order to be able to be Turing complete?


Not sure how this translates to "rules" in a cellular automaton, but: https://en.wikipedia.org/wiki/One-instruction_set_computer


This is exactly what I was asking about. Thank you!


There's also a few "one instruction" CPUs

https://en.m.wikipedia.org/wiki/One-instruction_set_computer


Here’s a white paper on how one was implemented https://www.sccs.swarthmore.edu/users/06/adem/engin/e25/fina...


You can build anything with AND and NOT gates or OR and NOT gates.

https://www.electronics-tutorials.ws/logic/universal-gates.h...


You can build anything with just NAND gates.


Well, we know that rule 110, which is like a 2d versions of Conway's game of life, is also Turing complete. So at least that simple.


Growing Artificial Societies is an interesting book that extrapolates on this.


Incredible! Is the random looking stuff at the top an oscillator for timing seconds?


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.


Looks like it, it sends out a "glider" once every second.


Why is this incredible? (Do you know "life in life"?) Is it the way the website is built?


That's nothing, have you seen CERN's LHC?


"Life in Life" is actually Conway's game of life... Directly comparable to this, arguably a lot cooler and not a new thing at all. "Incredible" should mean, at least to some extent, you didn't think the thing existed or was possible.

I'm not sure what you're trying to say. Is it "never ask anyone why they find something incredible"?


"Incredible" is commonly used synonymously with "amazing". Even though this isn't literally unbelievable (the primary meaning of "incredible"), it certainly is amazing.


It's also relevant to note that "amazing to the point of not being believable" is only the primary literal definition, while you would have a legitimately hard time finding even a single colloquial use of the word that includes the "not being believable" part. A similar case is "awful", which nobody uses to mean "full of awe".



Permutation City never felt more relevant.


Zoom sensitivity set 10000x too high by default


Yeah, looks like they didn't account for the fact that trackpads exist. Using zoom shortcuts or a mouse works fine though.


Seems fine over here. It doubles to zoom in and halves to zoom out.


I noticed the title is "Conway life clock PM only" -- does this mean AM isn't implemented?


It means it only has a PM indicator...the square box to the left of the "PM" would be an outline instead of filled when it's "AM". Similar to many old LED clocks that just had a single LED to indicate PM.

The stackexchange post has a link to a different implementation that has separate AM/PM indicators instead: https://codegolf.stackexchange.com/questions/88783/build-a-d...

Direct link to a runnable version with AM/PM: https://copy.sh/life/?gist=9d7468755dd76a35d93beeb5c0a5bdcf&...


Ah, understood, thank you. So impressive!


A right click alters a cell, it's really cool to watch the destruction that altering 1 cell can cause. The only issue is it becomes super slow due to all the irregularities requiring way more computation.


Yes, and it suggests how even a minor stroke in the brain that damages only a small region of brain tissue could potentially have personality and life altering effects.


Vacuum decay


Would love to have a physical version of this as a wall clock, provided it could al fit on a flat display that wasn't too large. Any suggestions on the display?


This is true hacker news! Amazing.


Wondering if DNA & protein folding can by synthesized by conways GoL.


Wonder no more: it can! It is Turing complete.


I wonder why the : symbol between minute and second was so stable?


The dots are acutllay made up of little squares of 4 cells each. Each cell has 3 neighbours so will never die or give life and thus becomes stable. You need to zoom in to see it.


it's all the universe is really, a blip in someone's toy digital clock screen in some other dimension


Witchcraft


Will be staring at this all day.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: