SimEx Visualization Module
The first completed and released component of SimEx 2.0 is the
visualization toolkit. This toolkit is designed to support simulation
coercion by allowing the user to visualize the internal behavior of a
running simulation.
The eventual goal of SimEx is to facilitate simulation coercion by
providing a single tool that combines optimization, visualization, and
flexible-feature extraction tools into a single package with a simple
and consistent user interface and (perhaps more importantly, from the
developer's perspective) a single interface to any running simulation.
In the meantime, however, it will be possible to link any individual
component of SimEx to an existing C or C++ simulation as a library.
In addition, each module may contain some amount of standalone
functionality, as appropriate: For example, even when the
visualization module is not linked to a running simulation, it can
still be used as a standalone plotting tool.
Technical Information
The SimEx visualization module is a C++ library which has been
developed under Linux and which provides the following:
- A set of classes which can be linked to a simulation in order to
provide static or dynamic 2D or 3D visualization of an arbitrary
number of simulation variables and their relationships
- A standalone application called visModule, which can be
used to examine and manipulate graphs that have been created by the
SimEx visualization library
The toolkit depends on the following tools and libraries:
| Dependency | Tested with |
| A C++ compiler | g++ versions 3.2.x and 3.3.x |
| make | GNU make 3.79 and 3.80 |
| OpenGL | XFree86 versions 4.2.1 and 4.3.0 |
| pango | Version 1.25 |
| GTK+ version 2 | Versions 2.2.2, 2.2.3, and
2.2.4 |
| gtkglext | Versions 1.0.3, 1.0.4, and 1.0.5 |
Installation Instructions
- First, take a look at the documentation, which is available here:
[PDF] [HTML]
- Next, download the components, either as one bundle (55 KB) or one at a time:
- The SimEx data-interchange API:
- The visualization code itself:
- Example data files for use with visModule:
- An example simulation which uses the visualization library:
- Extract the archives (e.g. "tar xzvf visModule.tar.gz").
- Try building and running the standalone graphing tool,
visModule:
cd visualization
make
./visModule -h
./visModule -i ../example_data/graphs/manydata.2d
./visModule -i ../example_data/graphs/manydata.3d
cd ..
These are just static plots, but you can play around a bit to get the
hang of the visualization module's GUI, like using the "Edit" menu to
modify axes, add and remove grids and plots, and change or hide
individual plots on the graph.
- Try building and running the example simulation:
cd example_sim
make
./example_sim
This is a (silly) simulation of a coin being flipped, and the
visualization is set up to give you an oscilloscope-like display of
the simulation as it is running. You can start, stop, and resume the
simulation by clicking the button in the upper-right corner of the
window, and you can use the "Edit" menu to make changes to the graph
just like you were able to make changes to the static graphs.
- Try linking the visualization module to your own simulation. The
visualization module API is covered in the documentation ([PDF] [HTML]), and naturally, you should look at
the example simulation as a template.
If you have comments, questions, problems, or anything else to pass
along, please send email to Joe Carnahan at carnahan@virginia.edu.
Thanks!
|