MaSTRI
Modeling and Simulation Technology Research Initiative


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:
DependencyTested with
A C++ compilerg++ versions 3.2.x and 3.3.x
makeGNU make 3.79 and 3.80
OpenGLXFree86 versions 4.2.1 and 4.3.0
pangoVersion 1.25
GTK+ version 2Versions 2.2.2, 2.2.3, and 2.2.4
gtkglextVersions 1.0.3, 1.0.4, and 1.0.5

Installation Instructions

  1. First, take a look at the documentation, which is available here: [PDF] [HTML]
  2. Next, download the components, either as one bundle (55 KB) or one at a time:
  3. Extract the archives (e.g. "tar xzvf visModule.tar.gz").
  4. 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.
  5. 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.
  6. 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!


Department of Computer Science
University of Virginia
Charlottesville, VA

No frames:
Home | Members | Projects | Publications | Related Links | Sponsor | Internal
Frames: Home

Copyright 2004 by the University of Virginia Department of Computer Science
151 Engineer's Way, P.O. Box 400740 Charlottesville, VA 22904-4740
E-mail: mrm@cs.virginia.edu