1. General architecture on which several different virtual processors can be implemented. Each processor-architecture has its own instructionset and can work with any subset of that whole set. Due the generality of this structure, all the variant types of machine-code languages can be tested in order to acquire the features which enable evolvability. For example pure stack-based, pure register-based and all possible processortype between them can be built.
    The base architecture should support the interaction between individual processors (parasitism).
    The package (physis.core.virtualmachine) should be independent enough to be used in other systems and experimental tools.
    As reference implementation the system should contain one functioning virtual processor with all important biological operators.

  2. The internal datastructure of storing the digital organisms and the neighbourhood relationships between them are hidden by a general interface (physis.core.LifeSpace) So the topology of lifespace can be chosen arbitrary by implementing the interface. As reference implementation the system should contain a 2-dimensional toroidal lattice lifespace.
    Other possible implementations: 3-dimensional cube (or 4D), fully connected lattice...
    These implementations can hide the distribution of the system through the network. The data-transfer and synchronization have to be performed behind the interface. In this way several nodes can run one experiment concurrently. As the language of the implementation (Java2) is platform-independent the working nodes can use different operating systems.

  3. Detailed statistics about all levels of the system: observing individual processors, gathering information on the interaction of processors, keeping track of the population's parameters and the completed tasks. (physis.core.statistics) The generated raw data cna be interpreted by several different tools (e.g. gnuplot).

  4. The evolutinary process's different parameters can be visualized dynamically. Easily understandable charts, graphs are updated real-time.
    These features helps to get the big picture and the details are in the exact statistics. Because of performance reasons this must be developed totally independently (physis.visualisation).

  5. Predefined triggers (physis.core.triggers) can affect the evolution (injection of organisms, killing of organisms, changing parameters) and help with the gathering of information (writing organisms into the filesystem) during the whole experiment.
Helsinki July 17, 2000