Tierra (was Re: virus: Re:virtuality)

David McFadzean (david@lucifer.com)
Sat, 4 Jan 1997 14:51:30 -0700

> From: Alexander Williams <thantos@alf.dec.com>
> Date: Friday, January 03, 1997 11:17 AM

> Tierra is an ALife environment in which strings of code reproduce, breed
> and die within a simulated environment. The latest work on Tierra has
> been in creating `virtual links' so that Tierrans from one machine can
> migrate to others to compete and spread their genetic code. Tierra's
> always been available on the Net; it should be easy to find scads of
> references to it.

Here's what I wrote about Tierra in my masters thesis:


The Tierran simulator [Ray 92] is a virtual environment that supports
the evolution of digital organisms. The organisms themselves are programs
written in a specialized machine language. In runs executing billions of
instructions, entire ecologies made up of thousands of self-replicating
species were seen to evolve.


A Tierran creature is a sequence of machine instructions implementing a
replicating program. The language was specially designed to be robust
under evolution. This was accomplished by two unique features: a truly
small instruction set (32 including operands) and a special addressing
mode analogous to molecular template matching[2]. Other than these
features, the language is typical of most machine languages, consisting
of instructions like MOV, PUSH, POP, etc.

Each creature maintains cellular integrity by virtue of the memory
services built into the operating system. A creature is allowed to read
or execute any memory location, but it is only allowed to write to
addresses falling within its own limits. This mechanism has the effect
of giving creatures a "semi-permeable membrane".

A creature reproduces by allocating a block of memory adjacent to itself
and copying instructions from itself into the new memory. In Tierra, the
phenotypes are identical to the genotypes. At the moment of division the
daughter creature is given its own virtual CPU. The mother creature is
then prevented from writing into the new memory, though it is allowed to
allocate a new block.

The World

The Tierran world is a virtual block of RAM known as the "soup". In the
original simulations, the soup consisted of 60,000 bytes which held the
same number of Tierran machine instructions. At the start of each run, a
single hand-crafted self-replicating program is inserted into the soup.
Parallelism is simulated by time-slicing: each virtual CPU gets a slice
of time on the real CPU as it comes up in the queue.

Eventually all available memory fills up with creatures. This triggers
a process called the "Reaper" which kills the creatures. Older creatures
and programs which generate more errors while running are more likely to
be reclaimed by the Reaper.


Variation is introduced into the population with two types of mutation.
Bits are randomly selected from the entire soup and flipped at some
background rate (typically one bit every 10,000 instructions executed).
In addition, bits are randomly flipped during copy instructions.

Mutations alone cannot alter the size of an organism but they can change
an instruction so that the creature reproduces incorrectly, creating a
daughter that differs in size from itself. Similar mutations inevitably
lead to the evolution of a class of creatures called parasites. Parasites
cannot reproduce on their own, rather they rely on executing the copying
routines of proximal creatures.

The simple evolutionary mechanism of Tierra is complex enough to support
an arms race not unlike those between competitive species studied by
biologists in nature. In most observed runs the arrival of parasites
led to an adaptation in the original population which resulted in a
resistance to parasites. The parasites responded with a circumvention
to the immunity. Another class known as hyper-parasites evolved which
effectively parasitized the parasites.

The Tierra system is available[3] on both UNIX and DOS and is written in C.

[Ray 92] T. S. Ray. An Approach to the Synthesis of Life. In Artificial
Life II, ed. C. G. Langton, C. E. Taylor, D. J. Farmer, S. Rasmussen.
Addison-Wesley, 1992.

[2] A molecule matches another by having a complementary configuration
which fits the other molecule like two pieces of a jigsaw puzzle.

[3] ftp://tierra.slhs.udel.edu/

David McFadzean                 david@lucifer.com
Memetic Engineer                http://www.lucifer.com/~david/
Church of Virus                 http://www.lucifer.com/virus/