Newbie Design Questions 

Hello all, I have been fooling around with framsticks for a couple weeks now
(and am still unable to explain why to my roomates...) and am running into
some problems.

After reading the newsgroup a couple times, I realized that the reason none
of my evolved frams were doing anything interesting was that I wasn't
attempting to guide evolution enough - so, like everyone else, I've taken to
just letting Fram work on either the body or brain and turned my back on
coevolution for the time being. I will probably return to it when I have
some good designs and see if heavily restricting mutation will tighten them
up a bit.

One of my current projects is giving me fits, though. I have been trying to
design the rudiments of what will eventually look like a sea-monkey. To
date this has consisted of a sine/square-wave network driven fram with 2
"arms" and a tail that is _supposed_ to swim with a modified breast-stroke
with the tail rearward.

I'm guessing some explanation is in order:

Forwardswimmer, a bad work-in-progress
XXX[6:-4][-1:4][-1:4, -2:-3.8][-1:4, -2:-3.8][-1:4, -2:-3.8][-1:4, -2:-3.8][
-1:4, -2:-3.8](X[@G:1,-3:-1][|-7:5](RX[|-3:-5]),(X[@G:-1,-6:1][|-10:-5](RX[|
-6:5])))

You'll notice that the 7 neurons set before the branching are linked up
into somethat that vaguely resembles the sine-wave network from other.gen.
This is intentional. I _suck_ at neural network design, and this seemed the
only way to get some sort of rythym into my fram.

My questions are thus: how do I go about simulating an efficient breast
stroke? Optimally, I want to have the outer part of the arm "tucked in"
during the forward stroke, but anything vaguely efficient would work. Let
me explain what sort of motion I am looking for in steps:

1. (ideally) starting with the 2-segment arms branched off at a 90-degree
angle from the 3-segment body, the entire arm should swing back until it is
parallel with the 3-segment body. A smooth, curving motion would be nice,
but not neccesary for the prototype.

2. The inner segments should pause all bending movement while up close to
the body while the outer segments in each arm fold themselves into the
inner. (from the fram above, "(X[@G:1,-3:-1][|-7:5]" should ideally have
something to make it pause until "(RX[|-3:-5])" folds itself completely in.

3. The arms should now bend completely the other way (remaining folded in
half) until they are parallell with the main body again and directly (or as
close as possible) in front of the main body.

4. The outer arms should then unfold completely, turning the entire fram
into one long stick.

5. Finally the 2-segment arms should swing back towards the main body,
propelling the entire thing forward and repeat form step 2.

sorry if I'm a bit wordy, but I figured erring on the side of caution would
save some reposting.

Forums: 

> Forwardswimmer, a bad work-in-progress
>
XXX[6:-4][-1:4][-1:4, -2:-3.8][-1:4, -2:-3.8][-1:4, -2:-3.8][-1:4, -2:-3.8][
> -1:4, -2:-3.8](X[@G:1,-3:-1][|-7:5](RX[|-3:-5]),(X[@G:-1,-6:1][|-10:-5](RX
[|
> -6:5])))

but a good start. if you can manage to link a few together i think you will
have a seamonkey.

> My questions are thus: how do I go about simulating an efficient breast
> stroke? Optimally, I want to have the outer part of the arm "tucked in"
> during the forward stroke, but anything vaguely efficient would work. Let
> me explain what sort of motion I am looking for in steps:

I've found that by starting with no input, I could manualy pull the muscle
inputs(or is it output) to test what was needed for the direction I was
looking for. for instance :

X[|:1]X[|-1:-1]

run simulation in slowest scale
then go to the neural net window, double click on each neuron listed to open
the input window and pull the slider on each one till you see where things
will go with positive or negative imput. start playing with values to
increase or decrease the resitance or amplitude...this takes lots of time
but is worth the knowledge.

I tried doing the same thing but with a walker
(ArrX(,,X),BrrX(,,X),,CrrX(,,X),DrrX(,,X))

basically you want to have A1 and C1 moving opposite but linked and the same
for B1 & D1.

A2 & C2 should "lift"..that is bend out to raise off the ground in a linked
but opposite direction at the begining of the A1,C1 sweep and *before* the
end of the sweep, there by touching down on the ground at the end of the
sweep. that's the hard part because framsticks don't have great range
limiters so in order to keep the X2 legs from reaching the top of their bend
(which is a fold) you have to limit the rage of motion with ,
(rrX[|](,,X[|],),rrX[|](,,X[|],),,rrX[|](,,X[|],),rrX[|](,,X[|],))

now before you think about making a critter with a few muscles and neurons,
remember that the sea slug, a beautiful ocean swimmer with sinewave flying,
has 830 something neurons. A sine wave framstick snake needs a neuron for
each link you put in. to create a "breast stroke" you will have to use more
neurons just to get the extra apendages to move in the correct direction and
even more to get the timeing right. so each muscle will need several
indexing neruons ahead of the trigger.

so basically, just go through your list and start adding pieces one by one
and adding more neurons one by one. testing as you go untill you have the
base legs moving in the correct motion then add on the additional legs and
test their input adding more neurons in between the trigger and the effect
to get you desired motion.