SimSoup 0.3 review
DownloadSimSoup is a graphical Artificial Chemistry simulator for Linux and Windows. The program enables a Chemistry to be defined in term
|
|
SimSoup is a graphical Artificial Chemistry simulator for Linux and Windows.
The program enables a Chemistry to be defined in terms of Molecule Types and the possible Interactions between them. A simulation run involves setting up a number of Molecules of various Molecule Types in a Reactor, and then allowing Interactions to take place over a period of time. Interactions taking place in the Reactor are shown on a graphical display.
The motivation for development of the program is to enable investigations into the behaviour of networks, particularly in relation to 'metabolism first' theories of the origin of life, although the basic design of SimSoup supports modelling of any network in which interactions can take place between nodes.
Currently, SimSoup development has reached prototype stage.
What's New in This Release:
A Chemistry including Molecule Types and Interaction Types
A Reactor in which Interactions take place between Molecules
Graphical views of the Chemistry and Reactor. Interactions taking place in the Reactor are displayed in real time
Display of Simulation Statistics in real time. Statistics can be displayed in two formats:-
Data Series Plots: These show the real-time behaviour of a range of variables that are monitored as the simulation runs. The Data Series to be displayed are selectable from a list
Manhattan Plot: This shows the amount of variability in the composition of the material in the Reactor.
Simulation Control facilities, including the ability to use Predefined Scenarios to control the operation of the simulation, and a facility enabling 'Action Requests' to be setup to customise Predefined Scenarios or create user defined scenarios.
A (partly hidden) System Monitor screen - mainly for diagnostic purposes
SimSoup has an object oriented design.The main benefit of this is that it allows concepts such as 'Molecule' and 'Interaction Type' to be represented as self contained units in the program. This makes understanding the code easier, and therefore improves maintainability of the code.
I use techniques such as inheritance and polymorphism sparingly, but they are used in the case of the Interaction Types listed above. All eight Interaction Types are variants derived from a base 'Interaction' class. As a result of this approach, implementation of the six Interaction Types not yet completed should be relatively straightforward.
SimSoup is a cross platform C++ program for Linux and Windows. It has been compiled and linked using the Borland products Kylix 3 Open Edition (Linux) and C++ Builder 6 Personal (Windows). The KDE product KDevelop has been used for code navigation and editing. The code makes considerable use of the C++ Standard Template Library (STL). I believe that the benefits of using this library more than justify the effort required to learn the STL basics.
This source code distribution includes the Kylix code only. The cross platform code enables SimSoup to be compiled and linked using both Kylix and C++ Builder. If possible, a future distribution will include the cross platform code enabling 'out of the box' compilation using C++ Builder on Windows as well as Kylix.
The user interface is relatively basic, but I have tried to make it as intuitive as possible. Its worth looking at Help | Quick Start for notes on editing Interaction Types in the Chemistry view.
Installation
Your system needs to have X installed. SimSoup runs on both KDE and Gnome, but also runs fine on lighter window managers such as WindowMaker.
Extract from the file SimSoup-0.1-i386-pc-linux-tar.gz to a directory of your choice. Now copy the file libborqt-6.9.0-qt2.3.so to a library directory on your system. On SuSE 8.1 the directory /usr/lib can be used.
If for some reason the above does not work, or you want to try SimSoup without copying the file to a system directory, then you can get started by copying the file libborqt-6.9.0-qt2.3.so to any directory of your choice (eg /home/chris/libs) and then typing the following at a bash prompt
LD_LIBRARY_PATH=/home/chris/libs
export LD_LIBRARY_PATH
You can now run SimSoup. Using the -ns command line option (./SimSoup -ns) will run the program without the startup message.
SimSoup 0.3 keywords