I’ve been interested in The Game of Life ever since I heard about it back in the 70s/80s. It was some time around when my dad bought us our first personal computers. The Game of Life was invented by the mathematician, John Horton Conway, as he worked upon a way of modeling life-like behaviors within a simple field of rules. Conway’s Game of Life was popularized by Martin Gardner — theÂ well-known writer of a popular science column in Scientific American.
Tons of hobbyists and computer programmers cut their eye-teeth byÂ playing theÂ Game of Life through programs copiedÂ out of magazines onto their PCs. I recall copying one of these programs out of a computer magazine into either our Timex-Sinclair 1000 or Commodore 64. I can’t recall whether it was Dr. Dobb’s or one of the myriad specialty Commodore zines that my dad was always buying.
Anyway, my aunt Amelia recently gave me a book for Christmas from my Amazon want list – it was New Constructions in Cellular Automata (Santa Fe Institute Studies in the Sciences of Complexity Proceedings) — a few different papers all nicely bound up by the Santa Fe Institute. (I’m a big fan of quite a few theories regarding Complexity, Economics, Biology, etc which have come out of the Santa Fe Institute.) After looking over the papers from various researchers that have studied different aspects of Cellular Automata, I started thinking that it could be worthwhile to set up the Game of Life with some color/display elements which can help with predictive display of Life grouping evolution. I’ve written a little program that does this, so read on if you’re interested.
The Game of Life
As you may know, the Game of Life is elegant in its simplicity. On a “field” of squares called “cells”, you initially select a few cells to be occupied. For each “generation” or iteration, rules are applied which will decide whether occupied and unoccupied squares will “live” or “die”.Â An occupied cell is considered “live”, and the occupied/unoccupied state of each of a cell’s surrounding cells decide whether that cell will “give birth” if it’s empty, stay “alive” if it’s already occupied, “die” if it’s occupied.
The rules are simple:
Any live cell with fewer than two live neighbours dies, as if by loneliness.
Any live cell with more than three live neighbours dies, as if by overcrowding.
- Any live cell with two or three live neighbours lives, unchanged, to the next generation.
- Any dead cell with exactly three live neighbours comes to life.Â
Conway originally created the rules of the Game of Life by experimenting around with different types of game pieces, different fields of cells, and different rules. The rules he arrived at seemed to have the best balance for discovering interesting behaviours and evolving development without supersaturating the playing field with live cells, or all dying off too quickly. Conway apparently experimented around with a number of different playing boards and game pieces, finally developing it using a Go game board and pieces.
Much like naturally occuring phenomena such as bacteria cultures in a petri dish or growth of species in ecosystems, if a living organism or groupingÂ (frequently referred to as a “pattern” in the Game of Life) is crowded out by overpopulation, or if there are insufficient numbers to reproduce, it will die off. Further, if you set up a particular pattern of occupied cells, they can show various interesting behaviours over time. Groupings can be set up in such a way as to cause cells to die on one side, while birthing on another, producing a sort of movement effect as the grouping moves across the grid over time.
Progression of Methusaleh Pattern over Time
I’ve added color gradations which indicate where new cells will “give birth” in subsequent iterations. So, it now shows which cells are currently occupied or “live” in dark green. Cells which will give birth in the next few generations are shown in regular green. Those cells giving birth in the next few iterations after that are shown in light green. Another few iterations after that are shown in lighter green. Finally, the generations furthest out which will give birth to new cells are shown in lightest green.
I thought that it would be cool to be able to see ahead a short ways in order to tell how current cell configurations might grow or move across the grid field. I was inspired a bit by “heat maps” which can be used to zones or regions of increasing/decreasing activity of various types. This current version of the program looks forward 20 generations into the future. I may go back and add in another function which could show cells which were previously occupied in past iterations — I haven’t decided yet. There seems to be a happy medium in enabling the visualization shadings to easily show future growth without over-cluttering of the field.
One of the cool results of my variation is that one can rapidly see the ultimate effect of setting up a couple of groupings to collide. Colliding groupings which show lots of spreading and growing pale greens indicate birthing of cells for a number of generations out from the current configuration. You can take a stable, static grouping and add a single pixel to it and you’ll immediately see how it’s going to react from being destablized.
After developing this, I wondered if others had come up with the same sort of twist on the Game of Life, and I’m pleased that in my limited searches around the internet I don’t see anything really comparable. Some folx have used color with the Game of Life — perhaps showing different colors for different commonly-occuring shapes or randomly applied for decoration as animations for a screensaver or something. So, I’m pleased that my version is apparently a unique innovation on the Conway classic.
The Game of Life is the most famous example of the concept of “Cellular Automata”. Cellular Automata are systems (be it programming code, machines, etc) which could be composed of small, discrete units which operate under extremely simple rules, but when assembled in various patterns may exhibit self-regulated behaviours and greater complexity in the macro view.Â Cellular Automata are one method used for modelling Artificial Life.
The Game of Life is the most famous example of the concept of “Cellular Automata”. Cellular Automata are systems (be it programming code, machines, etc) which could be composed of small, discrete units which operate under extremely simple rules, but when assembled in various patterns may exhibit self-regulated behaviours and greater complexity in the macro view.Â Cellular Automata are one method used for modelling .Cellular Automata has potential application in a number of fields. Cellular Automata has been taken as a piece of evidence that Artificial Intelligence (“AI”) might be attainable. The idea that one might be able to create some basic building blocks for AI which could then self-organize themselves in some way into a more complex and intelligent system is very compelling. This is very nearly a description for Neural Networks.
Cellular Automata are also inspiring to people in Nanotechnology fields. Imagine being able to assemble a “seed” of molecules which you could plant in the ground and which would then self-assemble surrounding media into objects we need for everyday use, like a cellphone or something. This is essentially what plant seeds do – an acorn is a very small object which can reassemble the “simple” media of dirt, water, and sunlight, into a very large oak tree.
I earlier wrote about the recent awards given to Dr. Paul W.K. Rothemund and Dr. Erik Winfree — they have worked upon programming DNA strands to assemble other DNA snippets into complex, organized objects. Those guys are very aware of Cellular Automata, and are looking for practical applications of the concept by using DNA. Other chemists are applying similar methodologies to stoichemetric molecules to explore how crystal growth structures might be manipulated by people towards useful outcomes.
Anyway, try out my Chromatic Game of Life and let me know what you think of it, and if you see ways that it could be made more useful.
Possible Related Posts