The Game of Life

What does it mean to create life in a computer? In 1970, John Conway built a simple computer game where a user decides which boxes in a grid are populated and then hits start, letting the computer "evolve" depending on the initial conditions. Each "cell" of the grid can be "alive" or "dead" and has eight neighbors that determine its survival into the next "generation". The rules are pretty simple:

  • If a live cell has fewer than two (underpopulation) or more than three (overpopulation) live neighbors, it will die
  • if a dead cell has three live neighbors, it will come to life
  • and if a live cell has two or three live neighbors it will survive

This "Game of Life" captivated computer scientists, and has influenced many other computer programs like it, called cellular automata, as well as the awesome design of my banner by my boyfriend Nick.

I'll use my banner to show you a little bit of how the program evolves over multiple generations. Most initial conditions lead to a total breakdown of the shape into a chaotic jumble:

i-e1b24cd2e9e5fb6e2fc383700ad8b4b6-gameoflife-thumb-525x404-25403.png

There are also some initial conditions that end up making beautiful patterns that float across the screen or oscillators that cycle back through to their original conditions after a few generations, like these ones from the wikipedia page:

There are hundreds of other patters that people have discovered, all archived and described in detail in the LifeWiki, but you can also play around with the game and make your own patterns here, or even program your own using the python script over at Science After Sunclipse.

Computer programs like the Game of Life that use ideas and principles from biology--genetic algorithms, neural networks and machine learning--are fascinating and represent an interesting parallel to synthetic biology. While synthetic biologists try to make living systems more like designed systems and specifically electronic systems, many computer scientists and engineers are trying to make designed systems more like living systems, more evolvable, adaptable, and robust.

More like this

Todays entry isn't so much a pathological language itself as it is a delightful toy which can be used to *produce* pathological languages. I'm looking at Chris Pressey's wonderful language [ALPACA](http://catseye.mine.nu:8080/projects/alpaca/), which is a meta-language for describing different…
Many synthetic biologists cite one of Richard Feynman's many famous quotations as the inspiration for their work: "What I cannot create I do not understand." For synthetic biology the interpretation is clear--only by designing and building living systems will we truly understand the principles…
One of my fellow ScienceBloggers, [Karmen at Chaotic Utopia](http://scienceblogs.com/chaoticutopia/2006/11/puzzling_at_a_simpleminde…) pointed out a spectacularly stupid statement in [Casey Luskin's critique of Carl Zimmer][lutkin] (*another* fellow SBer) at the Discovery Institutes "Center for…
This is just awesome: A strain of Escherichia coli bacteria can now solve [sudoku] puzzles [...] "Because sudoku has simple rules, we felt that maybe bacteria could solve it for us, as long as we designed a circuit for them to follow," says team leader Ryo Taniuchi. The mechanism is ingenious and…

The really interesting thing about the Game of Life is how the game Turing complete. Thus, a game with very simple rules ends up able to mimic any algorithmic procedure we can conceive of.

I was not helped by Paul Callahan's shutting down his 3 websites. There is just so much I can do zooming up the pics on the home page of one. It USED to have links to applets, but now all I get is "no button" and blank boxes with x's in the upper left corner. Zooming up a pic blurs the focus.

I am also limited by the size of my graph paper. Some oscillators are just too huge and complex for me to graph properly. I constantly foul the pattern.(Herschel loops -except the 256g glider gun- are just too huge).

By Paul R Wilson (not verified) on 01 May 2010 #permalink