Software developers 

Framsticks-related software development

Maciej Komosinski's picture

How to use this forum

This forum is intended for Framsticks software developers (not for creatures developers). You can seek help here, ask other developers, and discuss software development ideas.

Szymon Ulatowski's picture

Testing new network client

First impressions:

  • in the 'could not connect' case, there is no reaction at all. Closer inspection showed the "connection refused" exception logged to the console, which is not visible when the jar is started with console hidden.
  • no "refresh" function?
  • list-type nodes do not show any information (could display a listview or, for start, the item count)
  • "disconnect" leaves the application in unusable state (NullPointerException in com.framsticks.view.FncTreeSelectionListener.valueChanged and then there is no option to log in again)

Running the Framsticks GUI on Linux with wine

Hello from Brasil!

I have a Linux Debian Etch and wine, a very helpfull program used to run windows software "as if" it was running in windows. I really use it normally to run Dreamweaver MX, perffectlly.

Actually I installed Framsticks GUI with that and was 100% well.

When I runned the .exe, the program didn't work asking for three specific dlls: OPENGL32.DLL, GLU32.DLL and SSGV.DLL.

The wine platform has a directory structure like windows has, beginning at dirve_c/ and has normally then windows/system32/*.dlls.

f1 mutation on weights

When only evolving connection weights in f1 creatures, the combination of
mutations on weights and crossover, causes a problem. Apart from the
weights, the morphology changes too.

Mutations on connection weights can change the length of the genotype, e.g.
when a weight '1' is changed into '-1.212'. After this mutation, when
crossover occurs, and the crossover point is after the location of this
weight, this can result in different morphologies.

---------------'1'-------|------
---------------'1.212'--|-----------
( "|" indicates crossover point)

A possible solution to this problem could be to have a convention that
connection weights should have fixed string lengths, so that mutation cannot
change the length of the genotype. For example '1', would be converted to
'001.000'.

How to use special user objects like the Apple (Food) ?

Can you explain how I can import some 3D objects in Framsticks :
I see the example of the Apple (Food)
When I look at his genotype (f0) : I see :m:Vtyle : food...
Can you explain this, and how to use my personal 3D objects.
I see there are some AC files in the directory : can we use other 3D
formats, and how to use them.
If not, can you tell me which software can produce AC files.

Thanks !

Maciej Komosinski's picture

development of network clients and Fred

Dear Developers,

Anyone who would like to use Framsticks simulation engine,
scripting, optimization, evolution, genetics, etc., can do it
and create their own network clients. See Framsticks server
specification at
http://www.framsticks.com/common/server.html

The Fred editor is now open-source, see
http://www.framsticks.com/dev/fred/fred.html

Yours,

MacKo

Fred 2.0b

How can I run Fred 2.0b?

Thank you.

Diploid genetics

Would it possible (for users/developers) to develop a diploid genotype
encoding?

Diploid simply means that there are two copies of each gene. If two
copies of a particluar gene are not identical, this conflict (deciding
which one is to be expressed) is resolved through a dominance operators
in the gene (dominance/recessivity mechanism).

Diploid genetic algorithms show several interesting and practical
characteristics, such as high peak performance (best in population is
very good), and robust adaptivity in changing environments, and
maintaining genetic diversity in the population. (And, ofcourse, being
somewhat biologically plausible.)

Calabretta's articles on this issue (Diploid GAs in Khepera robots):
http://gral.ip.rm.cnr.it/rcalabretta/calabretta.diploidy.pdf
http://gral.ip.rm.cnr.it/rcalabretta/calabretta.diplo2.pdf

We would like to develop such a mechanism, and investigate its
performance in a spontaneous evolution scheme. I know many parameters
and processes can be modified in Framsticks, but I can't see how to
implement diploidy in a straight-forward manner.

It shouldn't be too hard, though. It implies doubling the f1 genotype
and extending it with genes for dominance resolution (for every gene),
plus modifying the genotype-to-phenotype decoding mechanism to include
the reading out of dominance genes.

Best regards,

Walter de Back

Let's open Framsticks to other types of research

I'm a kind of new to Framsticks.

But it looks to me that Framsticks can only be used
by researchers interested on Neural Networks,
Genetic Algorithms, etc.

I suggest we open Framsticks to other type of research
(such as Reinforcement Learning) by simply creating an
interface to the "environment part of Framsticks".

This interface would allow a researcher to do the
following:

1) Tell the "environment part of Framsticks" that
we want to create an agent with the following
hardware description.

for instance: "my agent is composed of two
sticks, one rotational join and
one presure detector"

2) Tell the "environment part of Framsticks" that
we want the environment to have the following
characteristics.

for instance: "the environment should be
20X20X20 meters of water"

3) Tell the "environment part of Framsticks" what
what should be the initial position of the agent.

for instance: "initial position of the agent
is (10,10,10)"

4) Ask the "environment part of Framsticks" to tell
us what is the current state of some part of the
simulation.

for instance: "What is the current position of
the agent in the environment?" or
"What is the current reading on
the agent's presure detector?"

5) Ask the "environment part of Framsticks" to tell
one of the actuators of the agent to execute certain
command (which should cause a change on the
state of the environment)

for instance: "tell the rotational join of the agent
to rotate so the two sticks are
25 degrees apart" (this may for
instance move the agent one
meter up)

This simple interface would not only allow other types
of researcher to benefit from Framsticks but it would
also allow researchers to compare their findings in a level
field. For instance, One researcher may be able to state
something like: "A faster swimmer sneak was obtained
by making use of one of the Reinforcement Learning
methods. However, the Genetic Learning achieved
close to this performance using half the number of
training episodes"

Please, let me know what you think

Directing Evolution

Please tell me that I am missing something, and not that I'm trying to do
the impossible.

I have hand-designed a fram named George. Admittedly, I haven't fully
designed his brain as I was hoping evolution would perfect it for me. There
are a couple things that George's brain definitely needs though, which have
been strategically placed throughout his NN.

With everything set up, I send George through a NN-only run - only to find
that my hand-coded neurons have been corrupted long before George even knows
how to walk.

Try as I might, I can't find a way to preserve the contents of George's
hand-coded neurons while allowing evolution the opportunity to modify all
the others.

Any suggestions? Or is this a request for the developers?

Pages

Subscribe to RSS - Software developers