Skip to main content
Jump to: navigation, search


Revision as of 12:52, 10 September 2008 by (Talk | contribs) (What are the features of release 0.3.0?)

What is the STEM project release schedule?

Release 0.3.0 will be released in September 2008, (Windows only) Release 0.2.0 was released on June 8th, 2007. Release 0.2.1 was released on December 17th, 2007.

This includes the current STEM source code and downloadable executables for Windows, Linux and Mac OS X.

What platforms are supported?

In theory, STEM will run on any platform supported by Eclipse. The current downloads are for RCP versions of Windows, Linux, and Mac OSX. Note that Java 1.6 is required for MacOS.

If a downloadable RCP version is not available for your platform, you must download the STEM source from CVS and run from the source.

What are the features of release 0.3.0?

  • Experiments. An Experiment is a combination of a Scenario and a set of Modifiers. A Modifier is a definition of how to systematically change the value of some element of a Scenario in a specific manner. The intent is to be able to specify how to create a sequence of derivative Scenarios from the base Scenario referenced by the Experiment. These derivative Scenarios are created by applying the Modifiers to the base Scenario. An Experiment can be executed like Scenario creating a Batch which then spawns off separate Simulations from each of the derivative Scenarios. Currently, the Simulations in a Batch are run sequentially. Parallel execution is planned for a future release.
  • A preliminary implementation of Triggers (Predicate & Action). A Trigger is a combination of a Boolean Predicate and an Action. At each cycle in the simulation, if the Boolean expression is True, then the Action is "triggered". An action is a "Modifier" and can change arbitrary components of a running simulation including things like the values of labels in the graph (e.g., to close an airport) or the parameters of a disease model. Currently, the predicates are limited to testing the absolute or elapsed time value. This limitation will be removed in a future release.
  • Various improvements to the visualizations including display of the graph edges
  • A new Analysis Perspective

The Analysis and Validation Perspective is a new STEM Perspective that supports a variety of analysis, fitting, and comparison functions across multiple simulations and data sets.

Model Parameter Estimation View

Given a set of data (SI, SIR, or SEIR) as a function of time, this perspective provides an estimation of the model parameters for a standard compartment model of the corresponding type. The view provides estimates for:

beta, the disease transmission rate
alpha, the recovery rate
epsilon, the incubation rate
gamma,the immunity loss rate 

Dynamical Systems View (Lyapunov Analysis)

This view displays the rate of separation in phase space (I vs. S) of the trajectories representing two different data sets or disease models. The rate of separation is then plotted vs time in a second chart. The rate of spread of any infectious disease defines a dynamical system. The Lyapunov exponent of any dynamical system describes the rate of separation of infinitesimally close trajectories in phase space.

Cross Model Comparison (RMS compare)

Given a data set and the results of a model (or two model generated data sets), the Root Mean Square (RMS) comparison function shows the RMS difference between the two as a function of time.

The Epidemic View

This view displays the aggregated data (e.g., S,E,I,R, births, and deaths) as a function of time. It also creates a summary file integrating over the data from all locations in a previously run scenario. It also shows the incidence or "newly infectious count" for the aggregated data.

What are the features of release 0.2.0?

  • A full implementation of the STEM graph based simulation engine for spatiotemporal modeling
  • Geographic visualization of the spread of disease using internally implemented graphics
  • Geographic visualization of the spread of disease using Google Earth
  • "Wizards" to create Projects, Graphs, Models, Scenarios, Sequencers, and Diseases
  • Visual editors to edit Graphs, Models, Scenarios, Sequencers, and Diseases
  • A complete data set that defines all of the countries specified by the ISO-3166 standard, this includes area land mass and recent human population data
  • An extensive set of predefined "Graph" fragments that can be reused in user Models
  • An extensive set of predefined "Models", one for each country, that can be reused in user Models and Scenarios
  • A set of predefined "Scenarios" that illustrate disease spread models around the Earth
  • A predefined SEIR disease model for the Spanish Flu
  • Deterministic implementations of SI, SIR and SEIR disease models.

What features are planned for future releases?

  • Business Intelligence and Reporting Tools (BIRT) integration
  • History recording and playback
  • Stochastic SI, SIR and SEIR disease models
  • New experimental disease models
  • Enhanced editor functionality (better Drag'n Drop)
  • Enhanced visualizations including multiple views, hover, and many bug fixes
  • Improvements in the interface (menu layout wizards, etc.)
  • Improved documentation
  • Improved build environment
  • Lots of bug fixes.

Can STEM be used for more than just disease modeling?

Yes. The core components of STEM implement a graph based spatiotemporal simulation engine. The components that extend it to disease modeling are in separate plug-ins and integrate themselves using Eclipse extension points.

What is the most novel extension to STEM?

The idea of creating a "pandemic game" out of STEM has been discussed by its developers for some time. The basic idea would be to have "players" use their copies of STEM to connect to a central server with a single shared model. The players would make (or not make) decisions based upon their geographic assignment and these would be communicated to the server which would then update and propagate the changes to the model to the distributed player machines.

Can STEM be used for "situational awareness"?

Yes. Basically, you can run a simulation in "real-time" with a Decorator that interfaces to the outside world. That Decorator can access data from outside of the simulation (e.g., from a database or a web service) and then "inject" it into the canonical graph that holds the state of the simulation.

It should be possible to extend STEM to use an existing simulation to initialize other simulations so that users could monitor the world and then spawn off different identically initialized Scenarios that simulate different options given the current world state.

Back to the top