Users 

Seek help here, ask others and help if you can. Before asking questions, please search this site and read available documentation.

Frams 2

Hi,

Just wondering, would any fix(es) in the new Frams version enable me to use
this?:

/*0*/
p:0,x=0,y=4,z=0.3
p:1,x=4,y=0,z=0.3
p:2,x=0,y=-4,z=0.3
p:3,x=-4,y=0,z=0.3
p:4,x=0,y=4.5,z=0,fr=1
p:5,x=0.5,y=3.5,z=0,fr=1
p:6,x=-0.6,y=3.5,z=0,fr=1
p:7,x=4.5,y=0,z=0,fr=1
p:8,x=3.5,y=-0.5,z=0,fr=1
p:9,x=3.5,y=0.5,z=0,fr=1
p:10,x=0,y=-4.5,z=0,fr=1
p:11,x=-0.5,y=-3.5,z=0,fr=1
p:12,x=0.5,y=-3.5,z=0,fr=1
p:13,x=-4.5,y=0,z=0,fr=1
p:14,x=-3.5,y=0.5,z=0,fr=1
p:15,x=-3.5,y=-0.5,z=0,fr=1
p:16,x=1,y=1,z=3
p:17,x=1,y=-1,z=3
p:18,x=-1,y=-1,z=3
p:19,x=-1,y=1,z=3
p:20,x=0,y=0,z=2.5
p:21,x=0,y=0,z=4
j:0,4
j:0,5
j:0,6
j:4,5
j:5,6
j:6,4
j:1,7
j:1,8
j:1,9
j:7,8
j:8,9
j:9,7
j:2,10
j:2,11
j:2,12
j:10,11
j:11,12
j:12,10
j:3,13
j:3,14
j:3,15
j:13,14
j:14,15
j:15,13
j:0,16
j:16,1
j:1,17
j:17,2
j:2,18
j:18,3
j:3,19
j:19,0
j:16,17
j:17,18
j:18,19
j:19,16
j:16,20
j:17,20
j:18,20
j:19,20
j:20,21

... it seems OK, until it hits the ground :/

Thanks,
Kieren Johnstone

Forums: 

Gyro Walkers

Below are some land creatures that empoy the mechanism from Miron Sadziak's
"Gyroscope and Pendulum" into a means of walking. All three creatures
(GyroSpyder, GyroDeathWalker, and GrapeGoose) have some, but not great, food
finding ability. GyroDeathWalker, created by a student in my cognitive
science class, Shawn Gaston, is part of an attempt to create a bipedal
walking creature. All three have very interesting means of locomotion.

Cheers,

Pete

GyroSpyder (created by Pete Mandik)

lffffw(RRRffffX(LLfffffX[S:2.817],),LLffffX(,LLffffX),rrX[|-1:10,5:-10]MMMX[
|!:0.246,/:999.000,2:-10](X[@0:0.637,G:-3.415],X[!:0.211,G:2.174]),LLffffX[|
-1 :-1.983,1 :-2.641](LLffffX,),RffffX(LLffffX[S:-2.396],))

GyroDeathWalker (created by Shawn Gaston)

(rSSSSIIX(lllllllllllllllllSSSSIIX,,SSSSIIX(SSSSSSMIIX[S:10],SSSSSSIIX[|-1:-
1,5:1])),(SSSSIIXSSSSIIMMMX[|!:1,1:10,2:-10](SSSSMMMIIX[!:1,G:1],SSSSMMMIIX[
!:1,G:1])),RSSSSMMMIIX(SSSSIIX(SSSSSSIIX[|1:1,-5:-1],SSSSSSMIIX[S:10]),,llll
llllllllllllllSSSSIIX))

GrapeGoose (modification of GyroDeathWalker by Pete Mandik)

(rSSSSIIfffffX(lllllllllllllllllSSSSIIfffffX,SSSSIIfffffLX(SSSSSSMIIFX[T:1][
S:10][|-1:1,9:-1,-2:-1,10:1],,SSSSSSIILLLLLLLLLLLLLLLLLLLX[|-2:-1,8:1,-3:1,9
:-1])),(SSSSIILXSSSSIIMMMMMMMMMMMMLX[|!:1,2:10,4:-10](SSSSMMMMMMMMIIlllllX[|
!:1,1:-10,2:10][!:1,G:2],,,,,SSSSMMMMMMMMIIlllllX[|!:1,1:10,2:-10][!:1,G:2])
),RSSSSMMMIIfffffX(SSSSIIfffffLX(SSSSSSIILLLLLLLLLLLLLLLLLLLX[|2:1,-8:-1,3:-
1,-9:1],,SSSSSSMIIFX[|1:-1,-9:1,2:1,-10:-1][S:10][T:1]),llllllllllllllllllSS
SSIIfffffX))

--
___________________________________________
P E T E M A N D I K
Assistant Professor and
Associate Director, Cognitive Science Laboratory
Department of Philosophy
William Paterson University of New Jersey
265 Atrium Building
300 Pompton Road
Wayne, NJ 07470
(973)-720-2173
mandikp@wpunj.edu
http://www.wpunj.edu/cohss/philosophy/faculty/mandik

Forums: 

Food Finding Frogs

I followed Pete Mandik's proposal of developing highly connected neuron
arrays and the result was great. Previously I had attempted to measure and
solve motion and direction changes manually through analog design. I even
tried using split brain control, but usually just got frustrated with not
solving the problem manually. Using large random brain connections was
always an idea in the back of my brain but I couldn't keep the direction
minimized. I was never able to get the success I acheived with Pete's idea.
This took two days. I'd like to see what others can do with different
designs. I'm sticking with the "frog", because I love to watch it hop :)

simulation configuration is at the end. ball energy must be 1000 for this
to work.

here is the starting genome. it should be easy to read.

3x3-array-frog

(X[S:1][|5:0][@5:0],

X[S:1][|2:0][@4:0],

X[1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0][-1:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0][-8:0,-2
:0,-1:0,1:0,2:0,3:0,4:0,5:0,6:0,12:0][-3:0,-2:0,-1:0,1:0,2:0,3:0,4:0,5:0][-4
:0,-3:0,-2:0,-1:0,1:0,2:0,3:0,4:0][-5:0,-4:0,-3:0,-2:0,-1:0,1:0,2:0,3:0][-9:
0,-6:0,-5:0,-4:0,-3:0,-2:0,-1:0,1:0,2:0,5:0][-7:0,-6:0,-5:0,-4:0,-3:0,-2:0,-
1:0,1:0][-8:0,-7:0,-6:0,-5:0,-4:0,-3:0,-2:0,-1:0],

X[@-4:1][|-2:1][S:1],

X[@-5:1][|-5:1][S:1])

And here is #46020 (just hops in right hand circles but maybe some more work
will get me left turns )

(X[S:2.549][|5:-4.307][@5:2.745],X[S:-0.709][|2:4.837][@4:1.967],X[1:-940.28
2,2:4.319,3:-1.170,4:-2.753,5:2.990,6:-3.702,7:546.450,8:-2.261][-1:2.608,1:
4.475,2:994.061,3:-0.673,4:-0.418,5:-1.868,6:-1.027,7:0.766][-8:2.687,-2:1.5
17,-1:-0.886,1:-3.607,2:-1.182,3:2.942,4:1.585,5:467.428,6:-2.159,12:-2.736]
[-3:1.075,-2:2.002,-1:-107.619,1:-606.327,2:-0.982,3:-2.646,4:2.481,5:3.018]
[-4:-1.387,-3:-2.697,-2:1.411,-1:0.698,1:1.234,2:4.168,3:1.040,4:-0.485][-5:
0.894,-4:2.095,-3:1.203,-2:-3.348,-1:0.301,1:-1.279,2:-2.534,3:4.617][-9:1.6
67,-6:3.096,-5:-1.507,-4:-4.053,-3:1.877,-2:2.319,-1:-413.892,1:0.982,2:1.84
1,5:-428.160][-7:-1.828,-6:-564.315,-5:-0.836,-4:-2.225,-3:1.243,-2:3.121,-1
:-2.908,1:4.560][-8:-2.323,-7:2.052,-6:2.405,-5:-943.026,-4:1.697,-3:1.279,-
2:-1.344,-1:744.677],X[@-4:1][|-2:-1.038][S:-0.932],X[@-5:0.643][|-5:1.470][
S:-836.992])

as a comparison..here is a single neuron array frog that also finds food..
(mostly)

(X[|5:1.324][@4:985.403][@S:-2.868],X[S:-4.397][|1:-0.450],X[=:-0.617,-2:21.
341,-3:-261.030,-4:248.531,-5:-4.340,!:0.599,=:0.970,1:-392.186,2:267.372,3:
1.072,3 :-2.272,5:-4.865],X[|-1:1.150][S:-1.930],X[S:3.585,1
:5.858][@-4:-1.549][|-5:-322.309])

change-neuron-weight-only.sim

# created Fri Oct 12 17:48:03 2001
# by Framsticks simulator (30-May-00) [MS Windows]
sim_params:
model:1
oldneurons:0
capacity:200
delrule:0
descol:0
debug:0
AutoKill:1
cr_c:0
cr_life:0
cr_v:0
cr_gl:0
cr_nnsiz:0
cr_di:1
cr_vpos:0
cr_vvel:0
cr_norm:1
fitfun:0
fitm:2
fitma:5
enablestats:2
cr_simi:0
testvel:9
cr_energ:0
MaxCreated:1
p_nop:10
p_mut:90
p_xov:0
xov_mins:0
Energy0:100
grow:0
corpsen:0
e_meta:1
aging:0
em_stat:0
em_dyn:0
sun:0
feed:4
feede0:1000
autosave:20
overwrite:1
filecomm:0
wrldtyp:0
wrldsiz:50
wrldmap:
wrldwat:-1
wrldbnd:0
mut_str:0
mut_neu:20
mut_exmod:eE
mut_exrec:S
mut_exctl:
gm_repair:1
gm_xosegm:1
geno_f1_sm0:0.05
geno_f1_sm1:0.02
geno_f1_sm2:0.02
geno_f1_sm3:0.02
geno_f1_sm4:0.1
geno_f1_nm0:1
geno_f1_nm1:0
geno_f1_nm2:0
geno_f1_nm3:0
geno_f1_nm4:0
geno_f1_nm5:0
geno_f1_simNN:1
geno_f1_simSN:1
geno_f1_simSS:1
geno_f1_simNS:1
geno_f1_simStr:4
geno_f4_mut1add:0.5
geno_f4_mut1del:0.2
geno_f4_mutAdd2div:0.2
geno_f4_mutAdd2link:0.2
geno_f4_mutAdd2rep:0.1
genkonw0:1
genkonw1:1
genkonw2:1
genkonw3:1

Forums: 

New Idea for Frams :)

Just an idea, why not have a stick property "floatyness" or "bloatedness" :)
It would be like bend or rotate, only it would fill a stick (or attached
"sack") with air... on land, this would let it bounce along, and with water,
it could float, or be drawn to the surface (if it needs to move up).

As I say, just an idea...

-Kieren Johnstone

Forums: 

Fabulous!

Whilst idly surfing I stumbled across the Framsticks program. It looks like
quite a promising piece of software indeed.

In addition to simulating the physics of each creature's motion is it
possible to set up an ecosystem consisting of different "creatures" and have
it evolve over time?

Also, how realistic is the physics model? If you developed for example a
snake creature with its accompanying neural controller how well would this
translate into a real robotics implementation consisting of a set of servos
and microcontrollers?

Forums: 

Foodfinding with Big Brains

Hi All,

I just wanted to share some techniques that have been pretty reliable for
getting foodfinders. The gist of my approach involves starting with a
pretty massively connected neural network with all weights set to zero, do a
neuralweight change only run, select for distance in a world with a bunch of
food. Since this connectionist approach really jacks up the brainsizes, I
call it "The big brain technique".

Here's the longer version.

Creature design:

Start with a creature that has what seem to you to be an approriate amount
of muscles and sensors (there better be one or more smell sensors!). One or
more sticks should have high ingestion. Add three or more interneurons (the
"hidden layer"). Make every muscle receive inputs from every neuron in the
hiddenlayer. Have every neuron in the hidden layer receive inputs from every
muscle, every sensor, and maybe even every other interneuron. Have all
weights set to zero.

Simulation parameters:
You will be doing a neuralnetwork only run which means crossovers=0 and
Morphology mutation intensity=0. Additionally, all neuronnet mutation
probabilities will be set to zero except for "change neuron input weight"
which should be 1.
Set world size to 50, activate teleport, autofeeding=4, ballenergy=1000.
Select for distance (distance=1, all else = 0). Raise water to 1 or 2 if you
like, but most of my foodfinders so far have been land critters.

I think that you will be pleasantly surprised at how soon you will get
creatures with decent velocities . (Central pattern generators will evolve
from these initial conditions pretty rapidly.) That should happen within the
first 10 or 20 million steps. in about one or two hundred million steps your
creatures should should be pretty reliable foodfinders meaning that they are
able to double or triple their lifespans.

Below is one of my sample creatures, "Tripod". (Tripod has both feedforward
and feedback connections between every neuron in the hidden layer and every
neuron in the sensor and motor layers.) Check him out in a world like the
one described above. He has a velocity of only 0.0131976 but acheives
distances over 400 by finding that food and increasing lifespan.

I'll be sharing more foodfinders soon.

Have fun evolving,

Cheers,

Pete Mandik

Pete Mandik's "Tripod":

(RRMMMIIIX[|1:2.602,2:0,8:0.671,9:0,15:-2.347,16:2.663][2:0,4:-1.861,5:0,9:-
29.633,11:-17.987,12:2.009,16:-0.796,18:3.807,19:0,-1:-1.166,3:-748.579,6:0,
10:-2.380,13:1.669,17:0][1:0,3:0,4:0,8:0.788,10:-2.862,11:0,15:1.872,17:0,18
:0,-2:0,2:0,5:0,9:0.510,12:0,16:2.349][G:1.442,-2:-2.341,-1:0,5:-2.190,6:-2.
308,12:0,13:1.693]MMMX[|-3:0,-2:0.589,4:0,5:0,11:2.426,12:0][S:0,-4:-1.500,-
3:-1.269,3:-1.633,4:-2.054,10:0,11:2.366][T:1.459,-5:1.232,-4:1.371,2:3.104,
3:-2.571,9:0,10:2.881],RRMMMX[|-6:-266.762,-5:-4.896,1:-2.808,2:-0.957,8:-45
5.355,9:-1.248][-5:-904.673,-3:-1.437,-2:-2.924,2:0,4:846.870,5:1.872,9:2.18
5,11:2.127,12:0.758,-8:0,-4:2.682,-1:-307.614,3:1.528,6:-2.674,10:1.107][-6:
-0.686,-4:-402.307,-3:-4.531,1:-2.860,3:-675.837,4:-2.460,8:0,10:144.875,11:
-2.298,-9:0,-5:0,-2:-1.684,2:4.243,5:-1.067,9:-0.945][G:2.426,-9:2.942,-8:-2
.012,-2:-2.261,-1:2.881,5:0.921,6:1.263]MMMX[|-10:-2.253,-9:4.580,-3:1.527,-
2:2.338,4:0,5:31.889][S:-4.613,-11:-3.403,-10:0,-4:0,-3:-1.945,3:0,4:1.942][
T:0,-12:-1.003,-11:-0.908,-5:0,-4:0,2:-1.739,3:0],RRMMMX[|-13:2.477,-12:-1.1
40,-6:445.660,-5:0,1:0,2:0][-12:-2.066,-10:-1.932,-9:-0.612,-5:-1.035,-3:1.1
06,-2:-0.900,2:1.916,4:-2.199,5:32.987,-15:-0.489,-11:1.114,-8:1.196,-4:271.
945,-1:1.213,3:-0.590][-13:4.297,-11:0,-10:2.090,-6:-0.416,-4:-2.183,-3:2.10
8,1:-778.579,3:1.809,4:0,-16:-2.815,-12:2.437,-9:3.254,-5:4.770,-2:-919.185,
2:-2.012][G:2.997,-16:0,-15:0,-9:1.419,-8:-3.013,-2:851.565,-1:1.326]MMMX[|-
17:-4.641,-16:0.690,-10:0,-9:3.453,-3:0.815,-2:0][S:0,-18:0.771,-17:-0.979,-
11:745.774,-10:835.833,-4:-0.952,-3:0.348][T:4.428,-19:0.700,-18:-0.572,-12:
0.445,-11:2.070,-5:-2.848,-4:0.897])

Forums: 

Observations from a newbie and 1 Question

a quick observation i've found that a restricted population(10-25) with no
cloning and deletion of only the worst is a quick way to get early
results...at least for directed evolution. I also have been inducing what i
call 'plaques' on the population at random times where i delete all but the
best few. Especially usefull when your population has grown fairly
stagnant.

Their are only a couple of things on my 'wish list' for V2

1. electric fences: boundraries that give off negative energy this would
hopefully induce object avoidance in foodseeking creatures since touching
them would decrease lifespan

2. better smell receptors(i think this is being worked on)

3. Genome Cleanup option: unless i'm mistaken RRRFFrrfX[@1:1][@1:3] is the
same as RFX[@1:4] The reason i say as an option is because i can see the
benefits of having the 'messy' version and its more in keeping with the
biological nature but cleaning it up for posting examples etc.....

okay for my one question is the how are the modifiers applied in this
example. example cleaned up for clarity

XRMI(X,X,X) =?
X(RMIX,X,X) or
X(RMIX,RMIX,RMIX) or
some other way i'm too dense to see?

thanks for your time and look out for my two legged upright walker thats
evolving as we speak.....right now it's acting like a drunken chicken but
i'm working on it

Forums: 

Some futuristic (maybe unrealistic) improvements

I thought a lot about Framsticks and what could be made with the idea of
Framsticks. To get a realistic simulation of life we would need to simulate
each atom or molecule interacting with each other and even more. That's a
thing of impossibility, therefore we would need faster computers. But there
could be a bit more
specialization.

Here are some suggestions:

Each stick, bone can have several parameters:
* hardness (1: hard, but brake easy, 0: very flexible, elastic, brakes
hardly ever)
* friction (as in Framsticks)

Some stick's-ends (at least 3) can build up a skin. These are needed to make
birds fly, mantha's swim or other animals. Therefore Framsticks would a need
a complete new physics-engine (also 3d-engine) and much more cpu-power but
the possibilities are also much higher.

Skin can behave like:
* leather (very robust, hard to destroy)
* bird-like skin (feathers)
* fish-like skin
* human-like skin (not very robust)
* hairy (warmer)
and even more

Muscles can have such parameters:
* strength (is stronger, but needs more energy)
* behavior (0: is very quick, but not strong, 1: is very slow, but also
strong)

What do you think about it?
Please post your comments.

Wolfgang Fercher

Forums: 

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: 

optimal genepool size

Has anyone done any experiments in Framsticks to find the optimal
genepool size for a given amount of evolution time, or anything similar?
As Mucha suggested in an earlier post, a small genepool may be a very
important factor limiting evolution. I'm not a biologist, but from the
info I can find on natural evolution, a population as small as 1000
individuals is usually considered an "extreme bottleneck". Does increasing
the genepool size dramatically produce faster evolution, or does it just
take longer to simulate all of the new individuals?

Forums: 

Pages

Subscribe to RSS - Users