
Release Notes for Evolve4
About
If you downloaded 'Evolve4' from the app store, these notes cover the differences between the software and the documentation.

Modes
This section explains some of the mode fields. If you are having problems getting a simulation to work it could be because of these settings. I recommend good settings to use.

-
Diagonal Mode:
0 or 1. When diagonal mode is 0, the creatures are constrained to up-down-left-right connectivity. When mode is 1, then any of the 8 directions is sufficient for connectivity. This setting affects ROTATE too. 0=90 degree units, 1=45 degree units. I recommend keeping this value at 1. -
Bones Mode:
0 or 1. Keep 1. -
Eat Mode:
The mode flag documentation is accurate. I highly recommend using 640 for good sims. -
Strain Visibility:
This has nothing to do with strain visibility. This number forces the organisms to never exceed this many cells. A value of 0 turns off this limit. I recommend using numbers between 10 and 30. Otherwise you may end up with giant blob creatures. -
MAKE-SPORE mode:
This is not a mode bit field. It is the minimum number of energy units required to make a spore with the MAKE-SPORE instruction. I recommend setting playing with these values: 1, 10 and 100 with various level of energy in the universe. -
GROW mode:
This is not a mode bit field. It is the minimum number of energy units required to grow a new cell with the GROW instruction. I recommend setting playing with these values: 1, 10 and 100 with various level of energy in the universe.
The rest of the mode fields are more or less accurate with the documentation. However none of the interups are working yet.
MAKE-BARRIER & SPAWN
For most of your simulations you will want to protect the MAKE-BARRIER and SPAWN instructions. Otherwise you will see a lot of cluttered simulations with unwanted barrier blocks.
The SPAWN instruction does not mutate the program. It should be protected in most simulations, otherwise evolution may stumble upon replication using SPAWN, and then evolution would stop.

The easiest thing to do is modify the 'Default' strain profile. But you can also modify your simulation after it has been created.
Files
The application comes with a bunch of resource files in the directory called ev5stuff'.
This directory will be somewhere like this:
/Applications/Evolve4.app/Contents/Resources/ev5stuff/ |
This explains the files provided:
-rwxr-xr-x@ 1 jkj staff 2095 Jan 8 2007 cmove.kf -rw-r--r-- 1 jkj staff 125954 Dec 30 11:15 evolve5rc.txt -rw-r--r--@ 1 jkj staff 1984 Nov 28 08:34 evolved_shooter_seed.kf -rw-r--r-- 1 jkj staff 2152 Dec 1 20:20 evolved_shooter_seed2.kf -rw-r--r-- 1 jkj staff 3316 Dec 18 10:01 kforth_bubble.kf -rwxr-xr-x@ 1 jkj staff 124 Mar 2 2006 kforth_example_add.kf -rwxr-xr-x 1 jkj staff 170 Jun 7 2006 kforth_example_bigints.kf -rwxr-xr-x 1 jkj staff 191 Mar 5 2006 kforth_example_cube.kf -rwxr-xr-x 1 jkj staff 169 Feb 15 2006 kforth_example_factorial.kf -rwxr-xr-x 1 jkj staff 234 Jun 7 2006 kforth_example_factorial_loop.kf -rwxr-xr-x 1 jkj staff 230 Jan 31 2006 kforth_example_foobar.kf -rwxr-xr-x 1 jkj staff 263 May 5 2006 kforth_example_goo.kf -rwxr-xr-x 1 jkj staff 83 May 26 2006 kforth_example_infloop.kf -rwxr-xr-x 1 jkj staff 220 Feb 12 2006 kforth_example_junk.kf -rwxr-xr-x 1 jkj staff 220 Feb 13 2006 kforth_example_junk2.kf -rwxr-xr-x 1 jkj staff 18 May 26 2006 kforth_example_mul.kf -rwxr-xr-x 1 jkj staff 121 Jan 7 2007 kforth_example_mycall.kf -rwxr-xr-x 1 jkj staff 114 Jan 2 2007 kforth_example_myfirstprog.kf -rwxr-xr-x 1 jkj staff 278 Jan 7 2007 kforth_example_myif.kf -rwxr-xr-x 1 jkj staff 437 Jun 12 2006 kforth_example_pack.kf -rwxr-xr-x 1 jkj staff 547 Jan 7 2007 kforth_example_repeat.kf -rwxr-xr-x 1 jkj staff 2327 Jun 17 2006 kforth_example_saveregs.kf -rwxr-xr-x 1 jkj staff 193 Feb 15 2006 kforth_example_simple.kf -rwxr-xr-x 1 jkj staff 124 May 12 2006 kforth_example_small.kf -rwxr-xr-x 1 jkj staff 172 May 29 2006 kforth_example_table.kf -rw-r--r--@ 1 jkj staff 2685 Oct 6 12:13 nibbler.kf -rw-r--r-- 1 jkj staff 2687 Oct 6 00:01 nibbler2.kf -rw-r--r-- 1 jkj staff 79 Nov 15 11:33 nullseed.kf -rwxr-xr-x 1 jkj staff 1733 Sep 30 09:35 seed.kf -rw-r--r-- 1 jkj staff 1628 Sep 30 08:16 seed2.kf -rw-r--r-- 1 jkj staff 79 Nov 15 11:33 seed_halt.kf -rw-r--r--@ 1 jkj staff 2160 Dec 11 03:45 seed_shoot.kf -rw-r--r-- 1 jkj staff 2201 Nov 15 16:50 seed_shoot2.kf -rw-r--r-- 1 jkj staff 2101 Nov 16 20:19 seed_shoot4.kf -rw-r--r-- 1 jkj staff 2160 Dec 11 03:45 shoot.kf -rw-r--r-- 1 jkj staff 2201 Nov 15 16:50 shoot2.kf -rw-r--r--@ 1 jkj staff 2293 Dec 23 12:36 shoot3.kf -rw-r--r-- 1 jkj staff 2101 Nov 16 20:19 shoot4.kf -rw-r--r--@ 1 jkj staff 485059 Nov 23 09:33 terrain_f.txt -rw-r--r--@ 1 jkj staff 143698 Dec 10 11:07 terrain_field.txt -rw-r--r--@ 1 jkj staff 10124297 Dec 1 20:39 terrain_hand.txt -rw-r--r-- 1 jkj staff 288761 Nov 22 19:19 terrain_maze.txt -rw-r--r-- 1 jkj staff 167400 Nov 23 08:31 terrain_mazec.txt -rw-r--r--@ 1 jkj staff 244421 Nov 22 17:58 terrain_perlin1.txt -rw-r--r--@ 1 jkj staff 256358 Nov 22 17:58 terrain_perlin2.txt -rw-r--r-- 1 jkj staff 262281 Nov 22 17:58 terrain_perlin3.txt -rw-r--r--@ 1 jkj staff 255703 Nov 22 17:58 terrain_perlin4.txt -rw-r--r-- 1 jkj staff 236806 Nov 22 19:10 terrain_world.txt -rw-r--r-- 1 jkj staff 4867 Nov 28 14:27 towers_of_hanoi.kf -rw-r--r-- 1 jkj staff 5804 Dec 23 17:55 utank.kf |
These are all text files you may look at.
Seed Files
The files precceeded by 'seed' can be used to overlay some interesting terrain for your new simulations. I recommend 'seed.kf' for a good simulation.
Terrain Files
The files precceeded by 'terrain' can be used to overlay some interesting terrain for your new simulations.
Kforth Program Files
Files that begin with 'kforth' can be used in the kforth interpreter. Actually any kforth program will compile in the kforth interpreter. These particilar files demonstrate different features of kforth.
Not Implemented
This is list of features that are not implemented yet:
- Interrupts - ability to configure interrupts modes bits
- MOUSE-POS - ability to use the right click tool 'mouse-pos' to set a mouse position
- MOVE ORGANISM - the right click tool 'move organism'
- Tweak Energy - the right click tool 'tweak energy'
- Edit Organism - kool new feature where can edit the organism from the View Organism Dialog
- Strand Length - mutation setting. change hard coded value to allow user changeable. (Strand Length is fixed at 10 right now)
- SAY instruction - need to implement the SAY instruction
- READ/WRITE instructions - need to implement these instructions
Tips and Tricks
Here are things to help with using the simulator that may not be obvious from the documentation.
- Towers of Hanoi Example - Make sure MAKE-SPORE mode is set to 1, otherwise it cannot create spores.
- CBEM checkbox - The CBEM checkbox (on the New Universe Dialog) stands for cell based energy model. Leave this unchecked. It is a feature i am removing.
- Max Code Blocks - (On the mutations tab) The default of 100 might be too large. I recommend a smaller value like 20 or 30. It keeps the size of the evolved code down. Which means mutations act on a smaller area size resulting in more mutations that "do something" and less junk code.
- Deletion Mutation Rate - (On the mutations tab) The default of 6.0 % might be too high. I recommend a smaller value like 4.0 % to 4.5 %. It's not a big deal, but i feel it keeps the genome from shrinking too fast.
Sandboxed Application
I had to enable "sandbox" mode for Evolve in the app store. This is good, as the user is in control of what the application does. Only files that the user explicitly selects can be read/written. I am still learning the rules and trying to make the application smoother to use in this mode. Expect some clumsyness when selecting files and such.
If you get an error about not being able to read a file, then just use the [BROWSE] button to reselect the file again.