Skip to content

djreiss/xNeoterics

Repository files navigation

XNEOTERICS, v0.90

xNeoterics is an old program that I wrote as to introduce myself to
neural networks and X-Windows programming. It is a port of the neat
little Macintosh alife program written in 1995, "Neoterics" by Kevin
Coble, from the Macintosh to X-Windows.  It is a cellular automaton
simulation containing agents with fixed-structure neural net brains
that process input signals into responses allowing the agents to
forage and interact in a changing environment of resources. The nets'
weights and thresholds evolve via standard genetic operators
(mutation, crossover, etc.) while they try to survive and reproduce by
ingesting enough "energy" to survive.

For all of the original info about the structure of the nnets and the
evolution, please see the original Neoterics documentation in the
archives at http://surf.de.uu.net/zooland/download/packages/neoterics/

Other than porting this to X-Windows using the (now LGPL) XForms
library (required to compile), I added a large number of improvements
and enhancements that: (1) significantly speed up the simulation, (2)
add more features and controls, and (3) enable a more thorough
investigation of the effects of various environmental parameters on
the evolution.

TO COMPILE:

Download and install the open source v1.0 version of the xforms
library (get the source or binary packages from
ftp://ftp.lyx.org/pub/lyx/contrib/, or for Mac OSX, use Fink).

Edit the Makefile if necessary (probably not necessary).

Type "make" to build the "neo" binary.

TO RUN:

"neo -h" lists the various command-line options, most of which can
also be modified during runtime using the "Options" dialog:

-A: do not allow asexual reproduction
-S: do not allow sexual reproduction
-H: do not give the creatures a head start
-K: keep a minimum population at desired level (default is zero)
-U: use remaining survivors to clone if at minimum population (for -K)
-s: set terrain size (default is 128)
-c: set display scale (default is 7)
-p: set default probability of mutation (default is 0.008000)
-P: set default probability of crossover (default is 0.002000)
-I: set default probability of insertions/deletions (default is 0.002000)
-f: set number of initial food locations (default is 2000)
-F: set number of initial meat locations (default is 1000)
-m: set maximum population (default is 1000)
-i: set initial population (default is 200)
-a: set age factor (default is 9)
-d: set carcass decay rate (default is 16384)
-w: set waste decay rate (default is 50)
-W: set poison decay rate (default is 50)
-D: do not start off updating the display (faster)
-R: do not show the display at all (for running remotely or on a text console)
-V: continuously vary the total energy available in the environment
-v: start the varying after desired number of time steps
-x: set the food +/- button increment size (default is 100000)
-k: keep trying until a viable population is reached (more than 50000 steps)
-B: read initial bugs from a creature file (default is creature)
-b: number of bugs to seed from initial creature file (default is 1)
-o: output global stats once every n steps (default is 50)
-n: automatically save to file every n timesteps (default is none)
-N: name of file to save/load simulation to (default is ./neo.out)
-X: also print all creature genome characteristics to the file ./neo.out.stats
-Q: automatically quit when the population falls to zero

Individual creatures may be selected and their neural nets displayed
during runtime. They may then be saved to a file to be used as seeds
for later simulation runs. Statistics may be written at regular
intervals to a text file, and other statistics may be displayed via
histograms during a run.

Additional information:

I am not currently developing this program anymore. It still has some
bugs and may crash for no particular reason. Use at your own risk.

However it does run pretty stably for me. The graph/statistics window
may be particularly buggy. Although I rarely have any problems and it
does not cause any system-wide problems, use at your own risk.

I wanted to release the software so others could play with it, perhaps
modify it, and use it to learn about artificial life and neural
nets. The source code is distributed under the GPL (see COPYING).

Though not required, I would be eager to hear about any ideas or
modifications that anyone chooses to make to the software.

About

My x11-based alife program, an update to the evolving neural network-based Neoterics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published