I have had a side interest in emergent behaviour ever since reading about various forms in nature, so when a co-worker sent me a link to Conway’s Game of Life, I was immediately intrigued.
Long story short, I just had to implement it (albeit a simple version) in JavaScript. The result is available on my website and I suggest you give it a try; a good pattern to start out with is the F-pentomino.
The reason I find emergence so interesting is that it provides a possible framework or explanation for the complexity and order seen in our universe, based on a fairly simple or rudimentary set of rules.
One to rule them all
The interactions seen in Conway’s Game of Life can be fairly complex and are not straightforward to predict. However, they all result from a simple set of rules:
- Each square is labeled as a cell, and has eight neighbours.
- A cell can either be “dead” or “alive”.
- A dead cell turns alive on the next turn if it has exactly three alive neighbours.
- A live cell continues to live on the next turn if it has 2 or 3 alive neighbours.
Thus, during each iteration, the state of a cell (alive or dead) is determined from the state of its neighbours on the previous turn.
Complexity from simplicity
Despite this limited ruleset, complex behaviour can be seen in the interaction between cells. In fact, quite a lot of study has been put into understanding the interactions and categorizing the various “structures” that have emerged in game.
Simulating the game on a large scale can take a lot of CPU power, so some interesting dynamic programming techniques have been utilized to increase the iteration speed. One of them is Hashlife, which exploits the repeatability and determinism in the game.
For example, if a pattern shows up an in an early stage of the simulation, it’s “evolution” can be tracked and stored so that if the same pattern ever shows up again, it’s long(er) term fate will already be known, since it was already computed earlier. This prevents unnecessary iterations in the simulation. This sort of technique is called memoization.
In Real Life
Obviously, our universe is probably more complex than the Game of Life. (It would likely have to be, since the simulation exists within our universe) But it’s also likely that all the complex interactions and structures observed in our universe boil down to some set of rudimentary rules. The point of science, in many respects, is connecting the dots that allow us to understand how these higher-level properties emerged from lower-level interactions. I’m not saying that it will provide all the answers or explain things like self-awareness, but to me, that sort of emergence is the real beauty of our universe.