                         TIERRA UPDATE
		       V4.1, August 1994:

This message contains:

0)  Network initiative
1)  Availability of Tierra V4.1 Source Code
2)  New manuscripts available
3)  Upcoming Tierra lectures
4)  Change of address for Virtual Life
5)  Tierra video animation
6)  Tierra Publications
7)  Instruction Set Definitions at Run Time
8)  Full Memory Protection Implemented
9)  CM5 Port
10) Phylogeny Failure
11) Tierra in the News
12) Bug Fixes and Other Changes in the Source Code
13) Mailing Lists
14) What Tierra Is (If you don't know what Tierra is, read this first)

0) Network initiative

Abstract:

The proposed project will create a very large, complex and inter-connected
region of cyberspace that will be inoculated with digital organisms which
will be allowed to evolve freely through natural selection.  The objective
is to set off a digital analog to the Cambrian explosion of diversity, in
which multi-cellular digital organisms (parallel MIMD processes) will
spontaneously increase in diversity and complexity.  If successful, this
evolutionary process will allow us to find the natural form of parallel
and distributed processes, and will generate extremely complex digital
information processes that fully utilize the capacities inherent in our
parallel and networked hardware.  The project will be funded through the
donation of spare CPU cycles from thousands of machines connected to the
net, by running the reserve as a low priority background process on
participating nodes.

     The concept for the network initiative is described in the following
manuscript which is available by ftp:

Ray, T. S.  A proposal to create a network-wide biodiversity reserve for
digital organisms.  In ftp site as reserves.tex

     If you do not have ftp access, let me know and I will mail you the
manuscript.

     Let me make some comments in response to frequently asked questions:

     The network system is still in the development and testing stage,
so is not ready for distribution yet.  It will initially be developed for
unix systems, and perhaps later for other platforms.  The Tierra system
will be run as a low priority background process, and so will only soak
up CPU cycles not being otherwise used by the users of the node.  Thus
the network Tierra should have a minimal impact on the performance of
the nodes where it is installed.

     Although we ask for a long term commitment by those who choose to
participate, this does not mean that the Tierra process must run continuously
for long periods.  The Tierra process on any particular node may be brought
up and down whenever it is suitable to the users of the node (the Tierran
creatures will experience down-time as a local catastrophe).  Participating
nodes must be connected to the net, but presumably any kind of connection
will be suitable, including intermittent.  We will have to deal with special
cases as they arise.

     I have received a lot of interest from people who have Macs or PCs at
home, who connect to the net via modem.  In theory, this is fine, and
adds interesting temporal-topological properties to the environment of
the digital biodiversity reserve.  However, the system will initially be
developed for unix with continuous network connections, and only after we
have fully tested and deployed the unix version will we look at including
Macs and PCs.

1) Availability of Tierra V4.1 Source Code

     The Tierra V4.1 source code; and the source code, and DOS executables
of all tools; and documentation and manuscripts is available.  Please
note that the source code in the ftp site and the source code provided on
disk will each compile and run on either DOS or UNIX platforms.  It is
exactly the same source code in either case.  The DOS executables are
available only on disk (available from Virtual Life), and can not be
freely distributed.

     The complete source code and documentation (but not executables) is
available by anonymous ftp at:

tierra.slhs.udel.edu [128.175.41.34] and
  life.slhs.udel.edu [128.175.41.33]

the file: tierra/tierra.tar.Z

To get it, ftp to tierra or life, log in as user ``anonymous'' and give your
email address (eg. tom@udel.edu) as a password.  Change to the tierra
directory and get tierra.tar.Z, a compressed tar file.  Be sure to transfer
in binary mode.  It will expand into the complete directory structure with
the following commands (Unix only):

uncompress tierra.tar.Z
tar oxvf tierra.tar

     The contents of the ftp site described above are mirrored in another
ftp site: alife.santafe.edu in the directory: pub/SOFTWARE/Tierra

2) New manuscripts available

     Several new manuscripts have been written, and are listed with
the Tierra publications below.  The most important manuscripts have
also been placed in the Tierra ftp site (see section 1 above).  These
manuscripts are in the tierra/doc directory of the ftp site.  The one in
the journal Artificial Life is available as the file Zen.tex or Zen.ps.
The one in Physica D is available as the file PhysicaD.tex or PhysicaD.ps.
The one with Thearling, was presented and published at the fourth
Artificial Life conference is available as multi_cell.ps and
multi_cell.ps.gz.  The one on the biodiversity reserve for digital
organisms is available as reserves.tex.  Unfortunately some of these
manuscripts include figures which are not available electronically.

3) Upcoming Tierra lectures


International Institute for Advanced Study, Kansai Science City,
August 22-24, 1994,contact: katsu@hip.atr.co.jp

InterCommunications Center, New School, Tokyo, Japan, September 3, 1994
contact: Yoko Kojima KFH02234@niftyserve.or.jp

From Perception to Action, Lausanne, Switzerland, September 5--9, 1994
contact: Eduardo Sanchez eduardo@lslsun.epfl.ch

Seminar on Neural Networks, Genetic Algorithms and Artificial Life;
Systems Control and Information Society, Osaka, Japan, September 29--30, 1994
contact: Katsu Shimohara katsu@hip.atr.co.jp

Seminar on Neural Networks, Genetic Algorithms and Artificial Life;
Systems Control and Information Society, Tokyo, Japan, October 4--5, 1994
contact: Katsu Shimohara katsu@hip.atr.co.jp

Bionomics Conference, San Francisco, October 20-21, 1994
contact: bionomix@well.sf.ca.us

Some others are being arranged for the Bay area in October

BIO Japan, Osaka, December 1, 1994

4) Change of address for Virtual Life

     The mailing address of Virtual Life has been changed to:

Virtual Life
25631 Jorgensen Rd.
Newman, CA 95360
USA

     Virtual Life provides the Tierra software on disk for those who
can not get it by ftp.  Virtual Life also provides a program named
Darwinian Art, which is a PC program inspired by Karl Sims' work
on evolving images.

5) Tierra video animation

     The Santa Fe Institute has produced a thirteen minute promotional
video, which includes a roughly five minute segment discussing the
Tierra research project.  The Tierra segment is illustrated with a
very high quality animation produced by the Anti Gravity Workshop
in Santa Monica, CA.  The video was produced and directed by Linda
Feferman.  To obtain the video, contact the Santa Fe Institute:

Santa Fe Institute
1399 Hyde Park Road
Santa Fe, New Mexico 87501
phone: 505-984-8800
fax:   505-982-0565
email: email@santafe.edu

or contact Linda Feferman:  fef@santafe.edu or 0005851689@mcimail.com

Linda is editing a new version of the video which will just be about
Tierra.  It will include some footage and animation that was not
included in the Santa Fe Institute video.

6) Tierra Publications

Ray, T. S.  1991.  Is it alive, or is it GA?
{\it In} : Belew, R. K., and L. B. Booker [eds.], Proceedings of the 1991
International Conference on Genetic Algorithms, 527--534.  San Mateo, CA:
Morgan Kaufmann.

Ray, T. S.  1991.  An approach to the synthesis of life.
{\it In} : Langton, C., C. Taylor, J. D. Farmer, \& S. Rasmussen [eds],
Artificial Life II, Santa Fe Institute Studies in the Sciences of
Complexity, vol. XI, 371--408.  Redwood City, CA: Addison-Wesley.

Ray, T. S.  1991.  Population dynamics of digital organisms.
{\it In} : Langton, C. G. [ed.], Artificial Life II Video Proceedings.
Redwood City, CA: Addison Wesley.

Ray, T. S.  1991.  Evolution and optimization of digital
organisms.  {\it In} : Billingsley K. R., E. Derohanes, H. Brown, III [eds.],
Scientific Excellence in Supercomputing: The IBM 1990 Contest Prize Papers,
Athens, GA, 30602: The Baldwin Press, The University of Georgia.  Publication
date: December 1991, Pp. 489--531.

Ray, T. S.  1992.  Evolution, ecology and optimization of
digital organisms.  Santa Fe Institute working paper 92-08-042.
In ftp site as tierra.tex.

Ray, T. S.  1992.  J'ai jou\'{e} \`{a} Dieu et cr\'{e}\'{e}
la vie dans mon ordinateur.  Le Temps strat\'{e}gique 47: 68--81.

Ray, T. S.  1993.  Quando giocavo a essere Dio.  Virtual
(Italian magazine), December 1993, 1(4): 40--46.

Ray, T. S.  1994.  An evolutionary approach to synthetic biology:
Zen and the art of creating life.  Artificial Life 1(1/2): 195--226
In ftp site as Zen.tex and Zen.ps

Ray, T. S.  1994.  Artificial life and real computation.
IPSJ-SIGAI Notes (Artificial Intelligence committee of the Information
Processing Society of Japan) 94--AI--93 94(20): 31--38.

Ray, T. S.  In press.  Evolution and complexity.  {\it In}:
Cowan, George A., David Pines and David Metzger [eds.],
Complexity: Metaphor and Reality.  Addison-Wesley Publishing Co.

Ray, T. S.  In press.  Jugu\'{e} a ser Dios y cre\'{e} la
vida en mi computadora.  {\it In}: Claudio Guti\'{e}rrez [ed],
Epistemolog\'{i}a e Inform\'{a}tica.  San Jos\'{e}, Costa Rica:
UNED, 1993.

Ray, T. S.  In press.  Evolution, complexity, entropy, and artificial reality.
Physica D 75: 239--263.  In ftp site as PhysicaD.tex and PhysicaD.ps

Thearling, Kurt, and Ray, T. S.  In press.  Evolving multi-cellular
artificial life.  Artificial Life IV conference proceedings.
In ftp site as multi_cell.ps and multi_cell.ps.gz.

Ray, T. S.  In press.  Biological models of evolution:
simulation and instantiation.  Proceedings of the 1992 Summer School on
Environmental Dynamics, Istitute Veneto di Scienze, Lettere ed Arti,
Venice, Italy.

Ray, T. S.  In press.  Evolution of parallel processes in organic and
digital media.  ``Natural and Artificial Parallel Computation'',
David Waltz, [ed.].  SIAM Press, Philadelphia, 1994.

Ray, T. S.  Accepted.  How I created life in a virtual universe.
Natural History Magazine, American Museum of Natural History.
In ftp site as create.tex and create.ps.

Ray, T. S.  Accepted.  A proposal to create a network-wide biodiversity
reserve for digital organisms.  For oral presentation at Artificial Life
IV conference.  In ftp site as reserves.tex

7) Instruction Set Definitions at Run Time

     One of the biggest changes in V4.1 is the manner in which instruction
sets are defined.  In V4.0 and earlier, the instruction set was defined
at compile time, and only a small and finite number were available.  With
V4.1, the definition of the instruction set happens at run time, and there
are no fixed instruction sets.  The definition of the instruction set
is determined by the opcode.map file, which determines the size of the
set (the number of instructions and by implication, the number of bits
used to define the instructions), which operations are to be included,
and which register those operations will operate on.

8) Full Memory Protection Implemented

     The memory protection options used to create the "cell membranes"
around creatures now allow full read, write or execute protection.  The
various forms of protection are controlled by three soup_in variables.

9) CM5 Port

     Kurt Thearling of Thinking Machines Corp. has completed a port of
Tierra to the CM5.  This is a true MIMD port: some processors run the
simulator while other processors run the genebanker.  The port is based
on an archipelago model, in which each Tierra processor runs a compete
Tierra soup.  However, creatures are able to migrate between processors
through the dispersal of offspring.  This can be seen as a prototype of
the network version being developed now.

10) Phylogeny Failure

     Considerable effort was devoted to developing a tool that would
generate a complete phylogeny from runs of Tierra.  However, at the
end of the project, the programmer turned in code that crashed immediately.
This code has been removed from the system, and the phylogeny project
has been abandoned for now.  ;-{

11) Tierra in the News 1993-1994

The Tierra Simulator continues to be widely reported in the media.  Below
is a list of most of the national or international reports that I am aware
of for the 1993 calendar year and beyond.  If you know of some news report
not on this list, please send me a hard copy.

Science (Faye Flam, USA) May 20, 1994: ``Ecologist plans to let
cyberlife run wild in internet reserve.''

The Economist (Anonymous, UK) May 14, 1994: ``Netlife''.

Wired (Gordy Slack, USA) August 1994: ``Revolution in A-Life Evolution''.

Pacific Discovery (Gordy Slack, USA) Summer 1994: ``Virtual Evolution''.

The Daily Telegraph (Roger Highfield, UK) June 14, 1993: ``Life, but not
as we know it.  An American academic has developed a computer program
that successfully simulates Darwinian evolution, natural selection and
all.''

New Scientist (Roger Lewin, Melanie Mitchell, Jacqueline McGlade, UK)
February 13, 1993: ``Complexity, New Scientist Supplement.  Order
for free (Standing at the edge of chaos).  Alternate ecologies.
Imitation of life.''

U.S. News & World Report (Karen F. Schmidt, US) May 3, 1993: ``Computing
the primordial ooze.  Scientists are modeling the origins of life.''

Maclean's (Mark Nichols, Canada) June 7, 1993: ``Compelling signs of
artificial life.  Digital `creatures' that clone themselves may
really be alive.''

Computer Graphics World (Diana Phillips Mahoney, US) July 1993:
``That's Life.''

Computer Graphics World (Diana Phillips Mahoney, US) February 1993:
``Artificial Life, organisms and systems created in the computer
exhibit behaviors characteristic of natural evoltuion.''

PC Magazine (Michael J. Miller, US) May 25, 1993: ``It's Alive!  Lots
of computer users give funny names to their computers.  But did you
ever stop to think that your computer programs might actually be alive?''

Focus (John Browning, UK) March 1993: ``It's life, but not as we know it...
How close is technology to creating artificial life.''

Scientific American - Japanese edition (Katsunori Shimohara, Japan)
October 1993: ``Ultimate autonomy, artificial life.''

Monthly Journal of Science, Kagaku Asahi (Tatsuo Unemi, Japan),
November 1993: ``Reproduction logic of computer viruses.''

Semanario Universidad (Eduardo Ramirez F., Costa Rica) June 16, 1993:
``Un creador de vida en computadoras.''

Esta Semana (G. Aburto and J. C. Cruz, Costa Rica) May 18--24, 1993:
``Un programa de computadora devela los misterios del origen de
la vida y la evoluci\'on.''

Courrier International (Der Spiegel, France) August 19, 1993: ``La vie
artificielle, ou les `adventistes du Huiti\`{e}me Jour'.''

Helsingin Sanomat (Timo Paukku, Finland) March 27, 1993:
``Tekoel\"{a}m\"{a}n evoluutio etenee sekunneissa.  Voidaanko uusia
lajeja tuotta my\"{o}s s\"{a}hk\"{o}ll\"{a} ja piisiruilla?
Pikaevoluutio synnytti tuhansia lajeja, loisia ja seksin.''

12) Bug Fixes and Other Changes in the Source Code

new in V4.1:

Instruction sets renamed - Instruction sets 1, 2, 3 and 4 have been
     renamed to 0, 1, 2, 3.  All reference in this file reflect the
     new names.

GetAMap() - This function had been modified in V4.0 resulting in an
     inability to run soups based on scrambled opcode maps.  This defect
     was repaired on October 25, 1992, and the repaired version was
     placed in the ftp site at that time.  No defective V4.0 were
     distributed on disk.

Flaws - On November 1, 1993, a great many new flaws were added to the
     decode functions of instruction set 0.  These changes make the
     flaws of instruction set 0 comparable to those of sets 1, 2 and 3.

MalMode - The soup_in file contains a variable, MalMode, which provides
     seven memory allocation options.  However, in V4.0, the decode
     functions pmal() over-rode the choice specified by MalMode, forcing
     option 6.  This has been fixed in V4.1.  Now all seven options are
     available, through the specification of the MalMode variable in the
     soup_in file.  This change was made on November 1, 1993.

FEPrintSI() - the second call to this function in the ttools.c file
     had one of the arguments missing.  This was corrected on November
     8, 1993.

FEPrintf() - a call to this function in the FEMenu() function of the
     tturbo.c file had an extra %s in it.  This caused junk to be
     placed on the screen when one selected the misc option from
     the menu.  This was fixed on November 8, 1993.  The implementation
     of this function in the tcurses.c file had a typo in which
     acr_a should be scr_a.  This was fixed on Aug. 2, 1994

jmp() - In instruction set 3, the jmp instruction defaults to jumping to
     the address contained in the AX register, if the jmp instruction is
     not followed by a template.  Since the AX register often contains the
     address of the daughter cell, this usually led to the evolution of
     creatures who jump to their daughter's code after the first reproduction.
     Life goes on under these conditions, but it is rather strange.  So the
     default for jmp in instruction set 3 has been changed to jumping to
     the address in the BX register (which often contains the address of
     the mother).  This required a change in line 74 of the ancestral genome,
     0082aaa, replacing popax with popbx.  Instruction sets 1 & 2 were not
     affected by this problem, because at the critical point (the jump
     after the divide instruction), the R0, AX register contains the address
     of the mother.  This change was made on November 6, 1993.
     In instruction set 0, the jump and call instructions caused the template
     size to be put into the DX register.  It was decided that this
     information was unlikely to be used and it clobbered the DX register
     creating other difficulties, so on March 4, 1994, the jump and call
     instructions were modified so as to not place the template size in
     the register.  Instruction sets 1 through 3 were not affected as they
     never placed the template size in the registers on jump and call.

pdivide() - In instruction set 0, the decode variable is.sval2 was not
     set.  This variable is used by the divide instruction to decide if
     the daughter is to be ejected from the soup.  This value was not
     set because ejections were not allowed in the first instruction
     set.  Hoever, this has been modified so that the original instruction
     set is also allowed to have ejections, so now the decode for divide
     also sets the value of is.sval2 to the value in the AX register,
     which in the ancestor, at divide time, is the address of the daughter.
     This will cause daughters at the beginning of the memory to be ejected.
     This choice is arbitrary, and you can set the value to one if you don't
     want any ejections.  The ejections are not meaningful unless you are
     running on a CM5 or in some networked configuration.

divide() - In V4.0, only in instruction set 1 was the mother allowed
     to set the position of the instruction pointer in the daughter cell,
     and to transfer the contents of the CPU registers to the daughter's
     CPU.  This is now allowed in all three new instruction sets (1, 2, 3).
     In addition, there was a real bug in the code that allowed the mother
     to position the instruction pointer in the daughter cell.  The
     problem was that the pointer was given an offset into the daughter
     cell which was determined by the value in a CPU register, modulused
     by the size of the daughter cell.  However, a conventional modulus
     operator, %, was used.  Therefore, if the register contained a negative
     value, the IP would be offset by a negative amount, that is, it would
     be outside of the cell.  To make matters worse, this IP address was
     not checked to assure that it remained inside the soup.  This has
     been fixed by using the mo() and ad() modulus macros.

     In addition, the call to Emigrate(ce) in divide should have been
     Emigrate(nc).  This has been causing the mother to emigrate, and at the
     same time, we did not remove the mother from the reaper/slicer queue,
     we just randomize her code.  Meanwhile the daughters code is left in
     the soup, but she is not entered into the reaper/slicer queues.  This
     was of little consequence, since V4.0 was a single node version, and
     the Emigrate() function should never have been called.  This was fixed
     on Aug. 1, 1994.

new in V4.0:

call(), jmp(), jmpb() - for each of these instructions, if there was no
     template following the instruction, the instruction pointer failed
     to increment, so the cpu would hang on the instruction.  This has
     been fixed in V4.0.

moviab() - (renamed to movii) this instruction looks to see if the target
     address is not in the daughter cell, in which case it calls MutBookeep()
     to keep track of genetic changes caused in the target creature.  Before
     V4.0, it did not look at changes to the byte following the daughter cell,
     this has been fixed.

break files - previous to V4.0, if the Tierra program was terminated by a
     system crash, or by the Q command, it would not be possible to fully
     recover by restarting the simulator.  The reason was that when restarted,
     the simulator would start the clock from the last system save, but would
     append birth death records to the end of the break.X files.  This meant
     that the part of the break files produced after the crash would be
     invalid.  This has been corrected in V4.0 by saving the file position
     pointer in the soup_out file.

diverse - in earlier releases, there was a bias in the calculation of the
     average age of the genotypes towards higher values.  This has been
     corrected, and it is believed that all of the statistics put out by
     this tool are now valid.

13) Mailing Lists

     There are two mailing lists for Tierra users.  The first list is for
people who only want to get the official announcements, updates and bug-fixes.
The other will carry the official postings, and are intended for discussion
of Tierra by users.  This one is distributed in digest form, when there is
enough material.  The lists are:

tierra-announce    official updates, patches and announcements only
tierra-digest      discussion, updates, etc. (digest form)

The addresses are: 

tierra-request@life.slhs.udel.edu   the list administrator (Tom Ray?). to
                                    be added, removed, or complain about
                                    problems with any of these lists.

tierra-digest@life.slhs.udel.edu    to post to the list.

tierra-bug@life.slhs.udel.edu       for bug-reports or questions about the
                                    code or installation.

     You may also be interested in the Artificial Life mailing list.
Subscribe to the list by sending a message to:

alife-request@cognet.ucla.edu

     Post to the list by sending a message to:

alife@cognet.ucla.edu

     There is a new Artificial Life news group: comp.ai.alife

14) What Tierra Is

     The C source code creates a virtual computer and its operating system,
whose architecture has been designed in such a way that the executable
machine codes are evolvable.  This means that the machine code can be mutated
(by flipping bits at random) or recombined (by swapping segments of code
between algorithms), and the resulting code remains functional enough of the
time for natural (or presumably artificial) selection to be able to improve
the code over time.

     Along with the C source code which generates the virtual computer, we
provide several programs written in the assembler code of the virtual
computer.  Some of these were written by a human and do nothing more than make
copies of themselves in the RAM of the virtual computer.  The others evolved
from the first, and are included to illustrate the power of natural selection.

     The operating system of the virtual computer provides memory management
and timesharing services.  It also provides control for a variety of factors
that affect the course of evolution: three kinds of mutation rates,
disturbances, the allocation of CPU time to each creature, the size of the
soup, etc.  In addition, the operating system provides a very elaborate
observational system that keeps a record of births and deaths, sequences
the code of every creature, and maintains a genebank of successful genomes.
The operating system also provides facilities for automating the ecological
analysis, that is, for recording the kinds of interactions taking place
between creatures.

     This system results in the production of synthetic organisms based on
a computer metaphor of organic life in which CPU time is the ``energy''
resource and memory is the ``material'' resource.  Memory is organized into
informational patterns that exploit CPU time for self-replication.  Mutation
generates new forms, and evolution proceeds by natural selection as different
genotypes compete for CPU time and memory space.

     Diverse ecological communities have emerged.  These digital communities
have been used to experimentally examine ecological and evolutionary
processes: e.g., competitive exclusion and coexistence, host/parasite density
dependent population regulation, the effect of parasites in enhancing
community diversity, evolutionary arms race, punctuated equilibrium, and the
role of chance and historical factors in evolution.  This evolution in a
bottle may prove to be a valuable tool for the study of evolution and ecology.

				Tom Ray
 *    Tom Ray
 *
 *    Biology Department
 *    University of Delaware
 *    Newark, DE  19716
 *
 *    ray@udel.edu (email)
 *    302-831-2753 (Phone)
 *    302-831-2281 (Fax)
 *
 *    or
 *
 *    Santa Fe Institute
 *    1399 Hyde Park Road
 *    Santa Fe, NM 87501
 *
 *    ray@santafe.edu (email)
 *    505-984-8800    (Phone)
 *    505-982-0565    (Fax)
 *
 *    or
 *
 *    ATR Human Information Processing Laboratories
 *    2-2 Hikaridai
 *    Seika-cho Soraku-gun
 *    Kyoto 619-02 Japan
 *
 *    ray@hip.atr.co.jp (email)
 *    (81)-7749-5-1063  (Phone)
 *    (81)-7749-5-1008  (Fax)
 *
 *    or
 *
 *    Virtual Life
 *    25631 Jorgensen Rd.
 *    Newman, CA 95360
 *    USA
