One of the most fascinating (and least commercially-developed) fields of computing research is that of artificial life (AL). Essentially, AL is the practice of modeling and simulating a live ecosystem or biosystem on a computer. Since almost the beginning of computer science, the concept of AL has fascinated programmers and non-programmers alike, but it has been oddly under-developed, with nearly all AL programs being very poorly-known and not widely distributed; Simple experiments which are usually confined to a single computer lab. Of course there are a few exceptions, most notably the vastly over-hyped "Game Of Life", but by and large, most AL programs are underdogs.
AI (Artificial Intelligence) is a much more commonly-discussed subject, and it has been developed quite a bit, both in academic/scientific and commercial settings, although commercially it is used largely for games; Whether it's a chess game trying to figure out the best moves to make to beat you, or a first-person shooter trying to calculate the best actions for a squad of enemy soldiers to use to shoot you down, AI has long been used in computer games, but it has applications in other fields as well. The most interesting forms of AI, however (in my opinion at least), and the point where the field of AI starts to overlap with that of AL, is when neural networks come into play.
A neural network, as the name suggests, is a computer "network" that models itself after the neurons in the human brain. This is not a network in the traditional computer sense, because a typical network is intended to allow different computer systems to communicate with each other. A neural network, however, sets up many, many tiny virtual "nodes" which are actually all just part of the same system, and each of them forms up a small part of the overall "brain". Basically, the idea is that a neural network will learn mostly through sheer repetition (something which computers are good at!) If you want to teach a neural network how to recognize the color red, for example, you might have it try to recognize several dozen (or hundreds, or thousands) of shades of colors, and instruct it which shades might be considered "red" and which might not be. Eventually, the neural networks starts to modify itself as it is "taught" what looks like red and what does not; It tries different combinations of its internal neurons, retaining neural configurations that are "correct" (that actually match its own internal idea of "red"). It sounds simple in theory, but as you might guess, neural networks are an enormously complex subject in practice. Nonetheless, they are fascinating, and there are a few notable programs that create small neural network structures that you can test out on common desktop microcomputers, although like other forms of AL, these programs tend to be not well-known and under-developed.
This page is a humble attempt at listing a few of the most outstanding software programs I've found that actually attempt to create a virtual living world within your computer, either in the form of tiny organisms (as with AL), or neurons (as with neural-networking software).
By far the most famous and commonly-cited "game" mentioned when discussions of artificial life come up, the game of Life, originally invented by John Horton Conway and brought to the public mainly by an article in the October 1970 issue of Scientific American magazine by Martin Gardner, is a very simplistic simulation of living organisms and their absolute most basic needs for population concentration. Note that this game should not be confused with the "Game of Life" board game; If you think of the board game instead of the AL simulation, then you're not acquainted with hacker culture. :)
In Life, the world is a normal grid of rows and columns, divided into little squares. In each cell of the grid can be a living organism, usually represented by a simple dot. In Life, these life forms are binary; They are either alive, or nonexistant. They have no intermediary states. The basic rules of the game are very simple:
1. If an organism has less than two (2) neighbouring life forms, it
will die of loneliness.
2. If an organism has more than three (3) neighbouring life forms, it will die of starvation.
3. If an empty cell has exactly three (3) neighbouring life forms, a new organism will be born in that cell.
4. In all other cases, the cell will continue to the next time period without any change in state (whether it be alive or not).
(A neighbouring life form is an organism living in an adjacent cell; As with any plain grid, every cell has eight (8) adjacent cells.) As should be fairly obvious, Life is a very simple game, and it's hard to take it very seriously as a real simulation, or to maintain interest for very long. It might surprise you, then, to learn that many hackers have gone through prolonged obsessions with this silly little program, some of them to the point where they could do nothing else for literally months on end except try different patterns of organisms on the grid and watching how they evolve. For many years, Life was famous, commonly used as something to create by programming students (who very often practice programming by creating simple games) and you could hardly read any book or magazine article on the subject of computers simulating science without seeing at least a passing mention of Life.
Why all the fuss over such a simple program? Well, it must be understood that in the 1970s, although mainframe computers had been around for years, the realm of computer software was still very much an underdeveloped field, and most of the software that existed was very practical in its purposes; There were simply not many programs that tried to simulate living things. Back in those days, Life was all that hackers really had if they wanted to try an artificial life simulation. Also, it should be remembered that the early computer hackers were not exactly esteemed as the most mentally stable or reality-adjusted people in the world, and so they did not have a hard time identifying with a dot on a computer screen. Today Life seems primitive and almost laughable, but there are still many today who regard it with a certain odd reverence, as though those little shifting grids of dots really were living things.
In the relatively crowded field of artificial life simulations, DarwinBots stands out from the crowd because it's a relatively complete and open-ended product (rather than being simple one-trick experiments like many AL sims), with its own programming language that you can use to program your bots; In this respect, it at first seems more like numerous "programming games" like Core Wars in which simulated creatures, which are actually small computer programs, battle it out in a simulated memory space. However, DarwinBots has a more biological than programming focus, as the little "bots" are given more lifelike features rather than being reduced to just a source code file. DarwinBots has been around for quite a while, and in that time it's developed a vibrant online community. Like most free programs that do so, it's changed so much over the years that the original versions are now virtually unrecognizable. The program was originally mostly a one-man job, maintained by Carlo Comis on a website at http://digilander.libero.it/darwinbots, but as with many other such projects, the program eventually developed a life of its own and became too large for one person to look after. Comis no longer updates that site frequently, and the main DarwinBots site has moved to a new wiki-style homepage at www.darwinbots.com, where people chat about DarwinBots and post tutorials and bot code. You can also download the latest version of the program there.
Although it's not a deep product, Ned's World is one of the best introductions to neural network simulations that I've found; You control the eponymous Ned, a little insect-like protagonist whose main role in the game is to look for food. The game actually takes the form of a small maze filled with bits of food, similar to the mazes given to mice who are trained to find their way to a piece of cheese somewhere in the maze. At first, Ned's World seems like just a simple guide-the-robot-around type of game, but the real trick comes when Ned starts learning the behaviours you've taught him and acts on his own, without your prompting. For example, if there is a wall in front of him, should he turn left or right? He'll make that decision based on what you've told him before in similar situations. As time goes on, Ned will increasingly make his own decisions, although the game will still prompt you to train him when he's faced with a decision that he can't make up his mind about. Ned's World is shareware that doesn't seem to have been updated in a while, but it's still readily available on the web, and a good beginning for those who want to experiment with neural net concepts.
The one artificial life program that was commercially viable, mainly because it was part of Maxis' lucrative (well-known, popular, and best-selling) series of "Sim" games. Although it lacks the everyday real-world sensibilities of other such games like SimCity and SimFarm, SimLife is a genuinely fascinating product that allows you to set up a miniature world of critters and control how they interact with each other. In typical Maxis fashion, several options and controls are given to you to adjust the world and the creatures according to your fancy, so you can try several different things. It's not something you can get into and get out of for just 5 minutes at a time, but SimLife is a great game for when you want to go deep and lose yourself in something for 5 hours or so at once.
Bitozoa (and its sequel, Bitozoa 2) are programs that actually combine elements of both AL and neural networks; However, its focus lies much more on the AL side of things. "Bitozoa" is the plural of "bitozoon", which in turn is the name for the little critters that populate this simulation. The anatomy of a bitozoon is very simple: They have eyes, glucose sensors, flagella (the primitive tail-like appendages that microorganisms use to propel themselves, like fish waving their tails to push themselves through water), and a spinal column which is actually a neural network in the program. The really deep part of what happens in the program lies in the workings of that neural network: The learning experiences that the bitozoa go through, as they develop, through trial and error, strategies for finding and catching food. However, the neural network aspect of the program is not brought to the forefront; Instead, the program focuses mainly on the purely physical activities of the bitozoa (whether they are carnivores or herbivores, where they are, the angles of their flagella, etc.) As a result, Bitozoa is a fairly simple AL simulation which makes a good introduction for anyone who's not familiar with the field but would like something simple to experiment with for a start. Get it from the official homepage at http://www.bpp.com.pl/bitozoa2/bitozoa2.html.
Rudy Rucker is best known for his work as a science-fiction author, famous for his *ware novels, like Software and Wetware. But Rucker is also a university professor, and has been one for about 30 years. As such, he takes an interest in several academic subjects; During a stint at Autodesk (yes, the same company that makes AutoCAD, the de facto standard for CAD), he created some software to simulate Cellular Automata theory. One of these was Boppers: Artificial Life Laboratory. Although it never actually amounted to a very popular commercial software package, it is a reasonably interesting little program which is worth checking out. Rucker has set up pages for his AL programs at the place where he loves to teach: San Jose State University (SJSU). The page for Boppers is at http://www.mathcs.sjsu.edu/faculty/rucker/boppers.htm.
Back to the main page