Main application is a fast 2D World of atoms. No visualizer is required for it. It may work only in RAM. It should get simple command-line arguments to set minimal configuration.
VM for 4 atom types. It will work in pair with world. Should implement 4 atom types: move, fix/unfix, if, job.
Manager should create the world and run VMs.
Organisms editor should be an independent application. Users should have the possibility to construct molecules or organisms by joining atoms by mouse. Change atoms type and parameters. Save them into the file for future loading to manager app.
Make LUCA cell
Visualizer as separate app
Zoom by mouse
Horizontal/Vertical Scroll by mouse/keyboard
Ability to load organisms to the world
Save/load state
Ability to interact with a world by mouse (add/remove molecules/atoms, pause/play, get/set atoms info)
Have a terminal to control the process as separate app
Non functional
Maximum world size (more than 4Gb of RAM)
Maximum possible speed
Huge amount of Green threads
Unlimited scalability to increase world size. No central control. The world should be totally distributed.
As simple/small as possible
Atoms should run very stable and without errors (stable VM)
Should be stable. At least should save its state from time to time