FRED - Framsticks Visual Editor 

FRED & FAVI in details

This section contains more precise overview of what Fred and Favi are to be. It's split into three parts:
- in the first one you can find what is the scope of the project, what are the expectations, and who is likely to benefits from it.
- second one concerns FRED, which is the main goal of this project
- and finally third part, will guide you throughout the Favi's future duties.


Visual editor of virtual organisms:

The idea is to support users with a user-friendly editor of any stick objects and related neural networks (body & brain). The editor should load the Framsticks f0 genotype, present it in visual way, allow for modification, and output the f0 genotype.
  Questions to:

2 programs:
- editor "FRED": 'big' application in current Java, swing+java3d(?)
- simple applet "FAVI" (only body & brain viewer : java1.1?)
...having as much common parts as possible.

Amateurs and professionals from the domain of simulations, physics, mechanics, biology, artificial intelligence and computer science. Language for user interface and documentation will be English.

The source should be modular and reusable, as possible. Some parts may be inspired by Framsticks C++ source. Some parts should be based on existing C++ classes: part, joint, neuro, neuroclass, model, neuronlayout. Most documentation needed concerns SDK and is available here.

Suggested Release Schedule
#1. java-sdk - whole functionality of existing C++ classes (pt3d+orient+) part+joint+neuro+neuroclass+model (+param?)
#2. GUI object interface - viewer and it's first implementation (simple drawing of model and schema). Interface defines calls of type e.g."show_model" and possibly generates events.
GUI object interafce - editor and it's implementation (a subclass of simple viewer object). Interface generates events of type "element of model selected", "element of model moved" etc.
#3. editor using GUI classes from #2 point (both classes linked + property windows and typical edit functions)
#4. alternative implementation of drawing - java3d/idx3d, user-friendly, nice-looking interface


Some features of Fred:
  • one genotype at a time
  • loads description of some elements/properties from XML files:
    • additional atributes of classes part/join/neuro (extraproperties from sdk)
    • min/max/default values of these attributes
    • sequence of all attributes
    • definitions of neuron classes (same as in neuroitems.h file)
  • shows correspondence f0 genotype parts <=> visual model parts
  • understandable and clear 3D visualization (perhaps inspired by some existing applications, like 3DStudio)
  • predefined set of views (top, bottom, left etc.)
  • user friendly camera control:
    • zoom
    • pan
    • rotate
    • autozoom (fit to screen)
  • user-friendly, drag-and-drop design of body and brain:
    • zoom/pan/rotate of the body; autozoom
    • zoom/pan of brain; autozoom
    • right-click shows properties
    • TAB circulates through objects, etc.
  • animate NN flow
  • statistics of the designed model (number of parts etc.)
  • validation of objects (warnings when unconnected neurons, sticks, reduntant muscles, etc.)
  • cooperation with external program(s)/Internet (helper apps):
    • testing in various environments (tester)
    • genotype format conversion (converter)
    • genotype mutation
  • copy & paste (in f0 format), duplicate elements
  • user fills in "properties": creature name, creator name, contact data, description...
  • connect and down/upload genotypes from remote database (http/html standard)
  • menu web: submit, visit news etc.
Fred GUI
- windows: body, brain, f0 (single), statistics (single)
- any number of body and brain windows
- drawn links body <-> brain (?)
- f0 <-> visual: (delayed) synchronization
- toolbars, shortcuts


Some features of Favi:
  • simple viewer
  • accepts one genotype at a time
  • understandable and clear 3D visualization (body and brain)
  • predefined set of views (top, bottom, left etc.)
  • user friendly camera control:
    • zoom
    • pan
    • rotate
    • autozoom (fit to screen)
  • statistics of displayed model (number of parts etc.)
  • paste from clipboard (in f0 format) to view
  • preview of visualised genotype's code
Favi GUI
- windows: body, brain
- preview of genotype f0 (dialog), statistics (status)