Requirements - tmptrash/irma4 GitHub Wiki

Functional

  • 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