These include 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 features are new in release 0.3.0a?

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:

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 other features are available in STEM?

A full implementation of the STEM graph based simulation engine for spatiotemporal modeling

Geographic visualization of the spread of disease using internally implemented graphics

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.