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.


GENERAL INFO

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: maciej.komosinski@cs.put.poznan.pl


Outcome:
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.


Users:
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.


Implementation:
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


FRED

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
- MDI
- windows: body, brain, f0 (single), statistics (single)
- any number of body and brain windows
- drawn links body <-> brain (?)
- f0 <-> visual: (delayed) synchronization
- toolbars, shortcuts


FAVI

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
- SDI
- windows: body, brain
- preview of genotype f0 (dialog), statistics (status)