home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / misc / devo.anc < prev    next >
Internet Message Format  |  1992-07-24  |  5KB

  1. Date: Tue, 26 May 92 13:56:08 EDT
  2. From: Richard Clark <richard@TIS.COM>
  3. Subject: Another Artificial Life Program
  4.  
  5. Re: Artificial Life Programs
  6.  
  7.     After perusing through the Tierra documentation, I find that the
  8. artificial life system I wrote at home performs many of the same functions,
  9. but in real-time with a colorful and much more extensive operator interface.
  10.  
  11.     DEVO is a program written under DOS, for a VGA color monitor. It
  12. consists of a number of cell types, each with its own set of behaviour
  13. characteristics and functionality, which group together to form various
  14. organisms. These organisms vie for artificial energy in an ongoing life
  15. and death struggle. Once a particular level of energy is reached, the
  16. organism may reproduce.
  17.  
  18.     DEVO functionality includes:
  19.  
  20.     1. The ability to alter running parameters on the fly.
  21.     2. The ability to partition the life space.
  22.     3. The ability to examine, modify, and kill organisms.
  23.     4. A viewing window to move around through the virtual life space.
  24.     5. The ability to save and restore running life-cycles.
  25.     6. Runs in real-time with a rather interesting organism display.
  26.  
  27.     DEVO was written for fun in my spare time at home. If there is any
  28. interest, I may be persuaded to continue its development. Additionaly, if
  29. there is any interest in the source code, please let me know. It's not a
  30. piece of software to stop the world, but I think it's a good start in one of
  31. the many directions.
  32.  
  33.     Required hardware: AT under DOS. 640KB RAM. Color VGA monitor.
  34.  
  35.     If only I had the time to combine this with my neural net project...
  36. Or to create a general-purpose cell type which mutates during reproduction
  37. occaisionaly... Or who knows...
  38.  
  39.  
  40. Just to pique your interest a little more:
  41.  
  42.     A few more bits and pieces of info on the DEVO program...
  43.  
  44.     The cell types currently defined:
  45.  
  46.     1. Energy - unit of life.
  47.     2. Motion - adds momentum to the structure in the direction
  48.         from which the energy was aquired.
  49.     3. shield - protects against energy transfers from:
  50.     4. attack - steals energy from cells of foreign organism.
  51.     5. fat - stores energy for later use.
  52.     6. reproduction - causes organism reproduction when filled.
  53.  
  54.     Cells all have a different number of possible links with which to
  55. stick together to form an organism. For instance, a reproduction cell
  56. will establish up to
  57. four links with other cells. Two cells may link together if first, they
  58. occupy the same virtual space grid point, and second they both have a link
  59. available. When cells link, the total energy of the two organisms is averaged
  60. and becomes the new total energy of the new organism.
  61.  
  62.     The upper left corner of the life space is where energy is disseminated
  63. in random direction and velocity. Thus very little energy ever makes it to the
  64. furthest point in the life space (the lower right corner).
  65.  
  66.     The user may build barrier walls to alter the form and shape of the
  67. life space. One such use is to capture an organism near the energy source
  68. to force its reproduction.
  69.  
  70.     Two types of wall blocks are defined:
  71.  
  72.     1. bounce - cells bounce off back in the direction they came.
  73.     2. death - causes instant death of entire organism.
  74.     
  75.     Organisms continually lose energy and velocity. Energy is continually
  76. pumped into the system. Velocity is created via the motion cells.
  77.  
  78.     When an organism's energy level hits zero. It is killed. All the
  79. links between its cells are broken, they are given random small amounts
  80. of energy, and random directions and velocity. The organism literally
  81. explodes. (Fun to watch!)
  82.  
  83.     Inactive cells are kept on a free list. When the free list gets
  84. below a certain level, killed cells are placed here. When an organism
  85. wishes to reproduce, the new cells it needs are taken from here.
  86.  
  87.     The devo program provides a viewing window into a virtual life space,
  88. the life space being much larger than the screen. The user may move
  89. this viewing window around in the life space while the program is running
  90. to see what is going on in different areas.
  91.  
  92.     The virtual life space is composed of a two dimensional array of
  93. grid points. Each grid point represents an 8*16 patch of real spatial points.
  94. Cells within the same grid point are kept in a linked list for that grid
  95. point. When a cell moves enough to change grid points, it is relinked into
  96. the appropriate new grid point linked list. This enables
  97. extremely fast neighbor checking. I.E: I don't have to search through the
  98. entire set of cells to find who is next to whom for interactions, I already
  99. know who the neighbors are.
  100.  
  101.     A status screen is provided to track number of births, deaths,
  102. number of cells on the free queue...
  103.  
  104.     A screen is provided to alter a number of the running parameters,
  105. such as the amount of energy in an energy cell, the maximum size of an
  106. organism, how fast to remove velocity from the system...
  107.  
  108.     A file save/restore screen is provided so that a life space may
  109. be saved and restored.
  110.  
  111.     A single-step or free-running option is available.
  112.  
  113.     A cursor is provided so that one may view the contents of any cell.
  114.  
  115.     DEVO runs in real-time, in graphics mode on the VGA. And since the
  116. life space is always changing, and there is no disk access while the
  117. program is running, if nothing else it makes for an interesting screen
  118. saver. :)
  119.  
  120.     There are many more things I'd like to add. But theres that nagging
  121. little problem of finding the time... :(
  122.  
  123.                         Richard H. Clark
  124.                         rclark@tis.com
  125.  
  126. ------------------------------
  127.