home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Unsorted BBS Collection
/
thegreatunsorted.tar
/
thegreatunsorted
/
misc
/
devo.anc
< prev
next >
Wrap
Internet Message Format
|
1992-07-24
|
5KB
Date: Tue, 26 May 92 13:56:08 EDT
From: Richard Clark <richard@TIS.COM>
Subject: Another Artificial Life Program
Re: Artificial Life Programs
After perusing through the Tierra documentation, I find that the
artificial life system I wrote at home performs many of the same functions,
but in real-time with a colorful and much more extensive operator interface.
DEVO is a program written under DOS, for a VGA color monitor. It
consists of a number of cell types, each with its own set of behaviour
characteristics and functionality, which group together to form various
organisms. These organisms vie for artificial energy in an ongoing life
and death struggle. Once a particular level of energy is reached, the
organism may reproduce.
DEVO functionality includes:
1. The ability to alter running parameters on the fly.
2. The ability to partition the life space.
3. The ability to examine, modify, and kill organisms.
4. A viewing window to move around through the virtual life space.
5. The ability to save and restore running life-cycles.
6. Runs in real-time with a rather interesting organism display.
DEVO was written for fun in my spare time at home. If there is any
interest, I may be persuaded to continue its development. Additionaly, if
there is any interest in the source code, please let me know. It's not a
piece of software to stop the world, but I think it's a good start in one of
the many directions.
Required hardware: AT under DOS. 640KB RAM. Color VGA monitor.
If only I had the time to combine this with my neural net project...
Or to create a general-purpose cell type which mutates during reproduction
occaisionaly... Or who knows...
Just to pique your interest a little more:
A few more bits and pieces of info on the DEVO program...
The cell types currently defined:
1. Energy - unit of life.
2. Motion - adds momentum to the structure in the direction
from which the energy was aquired.
3. shield - protects against energy transfers from:
4. attack - steals energy from cells of foreign organism.
5. fat - stores energy for later use.
6. reproduction - causes organism reproduction when filled.
Cells all have a different number of possible links with which to
stick together to form an organism. For instance, a reproduction cell
will establish up to
four links with other cells. Two cells may link together if first, they
occupy the same virtual space grid point, and second they both have a link
available. When cells link, the total energy of the two organisms is averaged
and becomes the new total energy of the new organism.
The upper left corner of the life space is where energy is disseminated
in random direction and velocity. Thus very little energy ever makes it to the
furthest point in the life space (the lower right corner).
The user may build barrier walls to alter the form and shape of the
life space. One such use is to capture an organism near the energy source
to force its reproduction.
Two types of wall blocks are defined:
1. bounce - cells bounce off back in the direction they came.
2. death - causes instant death of entire organism.
Organisms continually lose energy and velocity. Energy is continually
pumped into the system. Velocity is created via the motion cells.
When an organism's energy level hits zero. It is killed. All the
links between its cells are broken, they are given random small amounts
of energy, and random directions and velocity. The organism literally
explodes. (Fun to watch!)
Inactive cells are kept on a free list. When the free list gets
below a certain level, killed cells are placed here. When an organism
wishes to reproduce, the new cells it needs are taken from here.
The devo program provides a viewing window into a virtual life space,
the life space being much larger than the screen. The user may move
this viewing window around in the life space while the program is running
to see what is going on in different areas.
The virtual life space is composed of a two dimensional array of
grid points. Each grid point represents an 8*16 patch of real spatial points.
Cells within the same grid point are kept in a linked list for that grid
point. When a cell moves enough to change grid points, it is relinked into
the appropriate new grid point linked list. This enables
extremely fast neighbor checking. I.E: I don't have to search through the
entire set of cells to find who is next to whom for interactions, I already
know who the neighbors are.
A status screen is provided to track number of births, deaths,
number of cells on the free queue...
A screen is provided to alter a number of the running parameters,
such as the amount of energy in an energy cell, the maximum size of an
organism, how fast to remove velocity from the system...
A file save/restore screen is provided so that a life space may
be saved and restored.
A single-step or free-running option is available.
A cursor is provided so that one may view the contents of any cell.
DEVO runs in real-time, in graphics mode on the VGA. And since the
life space is always changing, and there is no disk access while the
program is running, if nothing else it makes for an interesting screen
saver. :)
There are many more things I'd like to add. But theres that nagging
little problem of finding the time... :(
Richard H. Clark
rclark@tis.com
------------------------------