Software developers 

Framsticks-related software development

Maciej Komosinski's picture

Development of JAVA visual editor of stick creatures

This thread is to discuss the development of JAVA visual
editor of stick bodies and NN brains for Framsticks.
Here are the initial requirements; feel free to add your
ideas and comments.

The idea is to support users with a user-friendly editor of
any stick objects and linked neural networks (body & brain).
It should output the f0 genotype for the designed creature.
Here is my initial wish list:

- drag-and-drop design of body
- drag-and-drop design of brain
- zoom/pan/rotate of the body; autozoom
- zoom/pan of brain; autozoom
- easy to modify list of properties of sticks and neurons
(possibly via an external text file)
- statistics of the designed model (number of parts etc.)
- right-click shows properties
- TAB circulates through objects, like in another object-based
editors
- validation of objects (warnings when unconnected neurons,
sticks, reduntant muscles, etc.)

The source should be modular and reusable, as possible.
Some parts may be inspired by Framsticks C++ source.

Maciej Komosinski's picture

Framsticks Developer Kits, sources, examples, docs

There is a developers area available in downloads
section, where you can download source code of some
parts of Framsticks, as well as documentation and
other advanced Framsticks-related stuff.

MacKo

Things to add

I have one request. allow some form of static neruon labeling instead
of relative links

like
X[$A |$B:1]X[$B |$A:1]

as well as
X[1:1]X[-1:1]

thanks
-zac

Things that would be good.

Hi Maciej,

My programming is not up to much and would have to be in BASIC so I don't
think I could contribute much to the development of Framsticks. But I do
have some idea's for things you could implement.

I suggested before that having a selection weight for keeping the centre of
gravity as high as possible would facilitate the evolution of better
walkers. As implemented this does not seem to be the case. It seems to be
much easier in evolutionary terms to stick your feet up in the air! I
should have seen that coming. So my new suggestion is this, it would be
good if after having built a creature you could then specify which stick or
sticks will contribute to the creatures fitness if kept up off the ground.
There could be several parameters for each stick specified i.e. Preferred
Height, Height Precision, Preferred Angle, Angle Precision, Preferred
Direction and Direction Precision. Also I feel that the inclusion of joint
constraints would be very useful, i.e. an evolvable parameter that specifies
the angle through which a join can bend or twist and even some sort of
buffer so at the end of the swing or twist the movement can come to an
abrupt or gentle stop. Maybe in the case of the gentle stop the buffer
could store energy like a spring and then return it later on.

I am sure that you have already thought of a million things that you would
like to implement and don't have the time. Anyway thanks for Framsticks.

Cheers,

Ander Taylor

Maciej Komosinski's picture

Components to do by Framsticks Developers

Here are things that developers could do:

- creature editor in f0 format (JAVA)
input data: f0 specification, general requirements
- viewer/analyzer of evolutionary data - population snapshots (JAVA)
input data: population file (.gen) specification, general req's
- world editor (JAVA)
input data: world language specification, general requirements
- povray scenario: include file (POV-Ray)
input data: 'classic' framsticks.inc file, .pov sample scene files
- genotype representations (C++)
- fn to f0 converter
input data: interface to framsticks source, f0 specification
- fn operators (check, validate, mutate, crossover, ...)
input data: specification of interface to framsticks

That is good if more people work on the same project
(together or independently).

Any of the final products mentioned above must be free.
It is recommended to make the source free and public, too.

M.

Suggested To Do list for FS developers ?

Maciej -
you mention in your newsgroup announcement email that you are open to
other people developing pieces of or extensions to FramSticks (in Java
?) Could you elaborate what kind of functionality you would like to see
implemented (that you wont do yourself already) and what API's / file
formats external developers would have access to ?
Robert

Pages

Subscribe to RSS - Software developers