
 --------------------------------------------------------------------
  CoreLife 1.0    Freeware   (c) 1997  Erik de Neve  erik_at_usefuldreams_dot_org
 --------------------------------------------------------------------


 INTRODUCTION

CoreLife implements an artificial-life environment based on - and
compatible with - Tierra, Tom Ray's well-known alife project, which
displays open-ended evolution using a world of assembly-language
creatures running on simulated parallel processors.

I decided to offer CoreLife as freeware to the online community since
there are still many people interested in doing experiments with
Tierra-like systems. I no longer have time to maintain it; but it is quite
user-friendly, with a full-featured context-sensitive help system. Being
a resource-modest 16-bit MSDOS program, it should run on any old PC as
well as on Pentiums with Windows95.

A-Life approaches like this, where code fragments can be compared
to self-reproducing RNA molecules in a test tube, facilitate
'open-ended' evolution, where the evolutionary goal is defined only
by the creatures themselves and their interactions, and may change over
time. Typically, from a single cell, a complex community emerges
in which evolutionary arms races can be observed.

This is the origin of the excitement over Tierra, and the reason I
created CoreLife. Enjoy !


 RUNNING THE PROGRAM

Unpack the files and start the executable file CORELIFE.EXE;
all relevant documentation is contained in the on-line help.

In addition to displaying phenomena like those observed in Tierra and
similar projects, CoreLife has an optional 320x200 VGA interface
enabling you to use a mouse pointer to manipulate 'live' cells during
the simulation, like a 'syringe' to inject more creatures and an 'axe'
to kill them, or use it to spray mutations (random code) directly
into the cells so you can watch the population recover and diversify,
all within a fraction of a second.

Every instruction of the self-replicating machine-code creatures is
visible as a pixel on the screen as they reproduce themselves, and the
instruction pointer of each cell is represented by a bright dot that
glides across them, so you can see it vibrate when it is executing a loop.
The mouse pointer can also be used to single out individual cells,
so you can debug, save or load them. For saved cells Corelife uses a simple
plain-text format, so you can edit them with your favorite editor.

On certain points Ray's Tierra specifications were open to multiple
interpretations. This prompted me to make a slightly different, somewhat
more consistent version of the Tierran CPU, as well as one that's as
compatible as possible with Tierra. Either of these 'plug in' virtual
processors can be loaded at runtime from inside CoreLife.


 EXPERIMENTING

The bidirectional-scrolling debugger/editor makes it easy to hack
your own creatures.
I've done a lot of interesting experiment, for example I created a cell
that turns its code back to front when it replicates - it simply consists
of a 'normal' self-replicating program with a copy of itself appended
backwards. The two halves were then able to evolve almost independently
when mutations were enabled, and very strange programs evolved from it,
smaller than I'd imagined possible.
Sometimes, instead of evolving into something intricately palindromic,
they found a completely different solution: each generation the cells
made lifeless, inverted copies of themselves, only to use these in turn
as templates for a second, 'normal' copy made with the same inverting
replication routine.
In two other experiments I discovered cells that seemed to continually
evolve even when there were no mutations forced upon them; they actually
managed to mutate themselves.
Of course the classic Tierran battle of size-80 ancestors and size-45
viruses can be played out, in many varieties. Many creatures from Tom
Ray's documentation can even be loaded directly as plain ASCII files.


 HISTORY OF CORELIFE

Alerted about Tierra by an article in Nature ( Maynard Smith, J.  1992.
Byte-sized evolution. Nature 355: 772-773. ) I found some documents about
it on a local BBS, which contained a more or less complete description
written by Tom Ray himself. These turned out to be a draft of the paper
included in the " Artificial Life II" proceedings from the Santa Fe
Institute. I started hacking CoreLife and by the end of 1992 I had a
reasonably fast version - written in assembler - running on my
10Mhz 286 XT.

The challenge was to create a more user-friendly program
than Tierra, but especially one that could achieve speeds where things
became more interesting.  This final version of CoreLife easily runs as
fast old 286 PC's as Ray's program ever ran when it got ported to a Cray,
approximately at a 40,000 Hz throughput of simulated instructions.
Pentium PC's can run the CoreLife universe in the Megahertz range !
There are several options to slow down the virtual processor if needed -
see the online help for this.


 REFERENCES

You can find a lot about Tierra and NetTierra on the web, including
Tom Ray's homepages at ATR Japan. Any good search engine will take you
there, but the best thing is to start surfing at the Santa Fe institute
pages:

http://www.santafe.edu

Whatever else you do, be sure to beg, borrow or steal a copy of
"Artificial Life" by Steven Levy.

There used to be another program called CoreLife floating around
on BBS-es and ftp sites; this was actually a cool 2-D CoreWars
variant.


 IN CLOSING

Please understand that I'm not maintaining CoreLife any more,
and I really don't have time to help anyone use it. If you want
to discuss CoreLife, possible places to try are the
COMP.AI.ALIFE and REC.GAMES.COREWARS newsgroups.

A big Thank You to the people who tested Corelife for me back-in-da-dayz:
among others, Emanuel Gruengard, Thomas Telkamp, and Klaus Koch.


Peace

Erik de Neve    erik_at_usefuldreams_dot_org

http://www.usefuldreams.org


