An event/update based version of Conway's Game of Life. Only once a cell changes state, all of it's neighbor cells update as well. This is in contrast to the traditional CGoL, where all cells in the grid are updated at once based on the states of their neighbors in the previous grid. Here, the updates spread like waves through the 2D grid. One tick in CGoL updates all cells in the grid. however, here one tick updates all the queued cells that should be updated if their neighbors updated.
After a certain time the automaton
- either gets to a stable state where no more cells update
- the updates in the grid grow exponentially over time (especially when the grid is bigger)
- or (most commonly) the updates begin to spread out all over the grid over time. Then on average more or less all cells update at once and approach a classic CGoL like situation.
Even though the automaton is a very chaotic system, there seem to be some stable "zebra" looking regions on the grid, where no changes seem to occur for some time. I haven't seen other specific patterns yet (other than "gliders" like in normal CGoL) but these might still exist in a different form.
Parts of this code are highly inefficient and not well thought through (as of February 2020). JS is definitely not a good fit for this problem, but it was sufficient enough to get something to visually experiment with the cell automaton.