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) 
  |