Buggers 

I'm pretty new to Framsticks, after a few days fiddling around with existing
critters and the evolution parameters, I designed my first critter from
stratch. I gave it 3 pairs of legs arranged somewhat like an ant's. The
original genome for the morphology was something like this:

Gopher's Bugger Morph1
X(CCrrX(X),MX(CCrrX(X),MX(CCrrX(X),,CCrrX(X)),CCrrX(X)),CCrrX(X))

For the neural network, I went a little crazy. On each of the muscled
sticks, I added 10 neurons. 2 are control-neurons, one for rotation and one
for bend. 4 define a cross-connected decision layer. Another 4 are what I
think of as control-relay neurons, two to each control-neuron. Each
control-neuron takes as input two of the control-relay neurons. Each neuron
in these pairs gets input from the other in their pair and the 4 neurons in
the decision-layer. The decision-layer's neurons take as input all other
neurons in the decision-layer, as well as both control neurons. This set of
10 neurons is duplicated in both muscled sticks, with one modification. The
4 decision-layer neurons in the muscle closest to the head also take as
input the 4 decision-layer neurons of the /next/ segment.
The completed initial genotype is as follows:

Gopher's Bugger Alpha
X(CCrrMX(X),MX[@0:0,2:0,3:0][|0:0,3:0,4:0][1:0,4:0,5:0,6:0,7:0][-1:0,4:0,5:0
,6:0][1:0,2:0,3:0,4:0,5:0][-1:0,1:0,2:0,3:0,4:0][-6:0,-5:0,1:0,2:0,3:0,10:0,
11:0,12:0,13:0][-7:0,-6:0,-1:0,1:0,2:0,9:0,10:0,11:0,12:0][-8:0,-7:0,-2:0,-1
:0,1:0,8:0,9:0,10:0,11:0][-9:0,-8:0,-3:0,-2:0,-1:0,7:0,8:0,9:0,10:0](CCrrMX(
X),MX[@0:0,2:0,3:0][|0:0,3:0,4:0][1:0,4:0,5:0,6:0,7:0][-1:0,4:0,5:0,6:0][1:0
,2:0,3:0,4:0,5:0][-1:0,1:0,2:0,3:0,4:0][-6:0,-5:0,1:0,2:0,3:0][-7:0,-6:0,-1:
0,1:0,2:0][-8:0,-7:0,-2:0,-1:0,1:0][-9:0,-8:0,-3:0,-2:0,-1:0](CCrrMX(X),X,CC
rrMX(X)),CCrMrX(X)),CCrrMX(X))

I was trying to design a neural net that would be good at learning to walk.
I was somewhat successful, with most of my walkers consistantly managing a
distance of 30-40 within a few million steps. However, by 10 million things
began to plateau, and now progress has slowed to a crawl.

I have a world 100x100, with 10 framsticks at a time. Selection critera is
distance 1, others 0. My population is 30% identical, 70% mutants, and 0%
crossbreeds. There's no morphology mutation, and all neural mutations are
default/5 with the exception of Change Neuron Input Weight which is set to
1. I set the other neural mutations low because I wanted to test the
effectiveness of my designed nets as much as to produce a fast walker.

I'm now at around 17M steps, and the genotypes range in distance traveled
from ~49 to ~52, and as I said earlier progress has slowed to a crawl. I
suspect this is because of the extremely large number of neuron input
weights. 20 neurons, 88 inputs.

reactions/suggestions?

Will Thomas, aka Gopher

Hi Gopher,

I like the morphology of your Bugger, but I think the brain size is
overkill. The following genotype is your morphology and muscle layout with a
three-neuron, nine connection sinusoidal central pattern generator:

X(rrCCMX(X),MX[0:0,1:2.791,2:-1.415][0:-2.414,-1:3.081,1:-4.698][0:0,-1:-2.4
18,-2:2.617][@-1:827.114][|-2:-0.641](rrCCMX(X),MX[@-3:204.385][|-4:-650.716
](rrCCMX(X),X,rrCCMX(X)),rrCCMX(X)),rrCCMX(X))

I evolved it with all initial weights set to zero, allowing mutations only
to weights, and selecting for distance. I got distances of 47 in less than
4 million steps.

Based on my own experience, a good efficient CPG can be made with no more
than 3 neurons, 9 connections and no less than 2 neurons, 4 connections.

Note too that only one creature was simulated in the world at a time. Unless
I am breeding fighters, more than that just slows down my computer
needlessly.

Your Bugger reminds me of some creatures of my own with similar
morphologies. I like the long leg approach. Below are Hexapod and Quadpod.

Hexapod
X[T:10]X[8:-2,-1:-1][-1:2][-1:2][-1:2][-1:2][-1:2][-1:2][-1:2][-1:1.093](RRc
cccccMMMMX[|-1:-3.449]MMX,llXllX(RRccccccMMMMX[|-7:100]MMX,llXllX(RRccccccMM
MMX[|-3:100]MMX,X(llX,,llX),RRccccccMMMMX[|-9:-100]MMX),RRccccccMMMMX[|-5:-1
00]MMX),RRccccccMMMMX[|-11:-100]MMX)

Quadpod
lllXlXX[8:-3][-1:2][-1:2][-1:2][-1:2][-1:2][-1:2][-1:2][-1:1.093] (rrMMX
[|-1:100](lllX,X),rrMMX[|-7:100](lllX,X),llX(llllX,,llllX),rrMMX[|-3:818.821
](lllX,X),rrMMX[|-9:100](lllX,X))

Cheers,

Pete Mandik