An Interactive Simulation Environment for Personal Computers and Workstations
What Is ModelWorks?
1 - What Is ModelWorks?
ModelWorks is a modeling and simulation environment programed
in Modula-2 (Wirth 1985, 1988) specifically
designed to be run interactively on modern workstations and personal computers
Fischlin et al. 1994
ModelWorks offers a handy user interface allowing for efficient
alterations of model and simulation run parameter values and other
specifications interesting for executing simulation experiments.
Moreover it supports modular modelling by featuring
a coupling mechanism between submodels and an unrestricted number of so-called model
objects, such as state variables, model parameters etc.. This allows to build
models of any complexity in a well structured way. The software imposes no
limits on the number of models, nor model objects, nor on the structure of the
model equations or the model architecture; limits are solely determined by the
physical memory and execution speed of the used computer.
Yet, rigorous mathematical formalisms are available and provide a solid basis,
despite the pitfalls lurking because of the complexity of the system structure.
2 - Features
Several features make ModelWorks unique:
Support of modular modeling.
With ModelWorks you can formulate and integrate models of
the three standard model formalisms, i.e. systems of coupled ordinary
differential equations (DESS - Differential Equation System Specification),
difference equations (SQM - Sequential Machines),
or continuous-time discrete event systems (DEVS - Discrete Event System Specification).
Hence models of a single or mixed type in any combination, such as continuous time or
discrete time alone, or continuous and discrete time mixed with each other can be easily implemented.
Each model can have its own integration routine, functioning on a different time step,
depending on precision and efficiency requirements. Furthermore it is possible to
declare or remove dynamically models and model objects in the middle of a simulation run
(models can generate new models with a structure depending on the obtained simulation
results and can be added to the simulation experiment without having to interrupt the ongoing runs etc.).
Open system architecture.
This allows you to extend ModelWorks freely in any way.
not feature a simulation language, but offers the means to formulate models and to
control simulation experiments within a high level programming language.
The hereby gained access to the power of an ordinary programming language is
particularly important if you work with non-standard model formalisms,
e.g. recursively defined model equations, or if you want to customize the
display of simulation results, or if you wish to perform a particular sensitivity
analysis or parameter identification at the end of a modelling and simulation study.
With ModelWorks your investments are protected, since you will
not have to switch to completely new simulation tools in order to accomplish such tasks.
Based on the Dialog Machine.
The Dialog Machine, a user dialog controlling software
layer between application and system software, substantially facilitates the programming of
interactive programs on modern computers and guarantees a consistent
Thanks to the open system architecture of ModelWorks
and the underlying Dialog Machine,
you can freely customize the user interface by extending the provided standard user
interface or by completely replacing the latter with your own, satisfying your specific needs.
This may facilitate the controlling of simulation experiments or the programming of special
purpose animations, or allow you to quickly transform a research model into a demo version
with a simple and robust user interface, which may then be used by practitioners and
extension services. Thanks to the Dialog Machine, a port of
ModelWorks to a new machine where the Dialog Machine
is available is relatively simple. Currently it is possible to port - without having to change
the source code at all - large computer models developed on either a Mac, an IBM PC, or a Unix
machine among all three platforms.
Sister application Easy ModelWorks.
Easy ModelWorks is a simple tool
for full interactive modeling of DESS and SQM systems. It
provides only a small subset of the functionality of the full-fledged
ModelWorks, but the latter is often only needed by the
sophisticated simulationist. Since Easy ModelWorks models
can be transformed into an ordinary ModelWorks model with a
single command, Easy ModelWorks provides also an easy and
efficient entry into the world of ModelWorks.
Simple models can be realized with a minimum programming knowledge.
Simulations are written in Modula-2 so that sophisticated programers may
combine the advantages of a structured high-level programming language with
maximum flexibility in the formulation of the model systems.
Arbitrary number of simultaneously integrated continuous, discrete time,
discrete event and mixed models of any order limited only by the available
memory and the modular formulation of the model systems.
Interactive simulation environment with graphical user interface.
Windows, menu technique, buttons and pointing device (mouse) allow the
simulationist to interactively
change settings, such as integration method or step length, model parameters,
initial values of state variables, attributes of curves etc. within predefined ranges,
reset settings to given default values, e.g. as initially defined,
control the display and monitoring of simulation results
(ModelWork manages output onto a table, a text-file with well-defined syntax
or into a graph-window containing 2D line- or phase space-charts),
execute simple or predefined structured simulations,
print graphs, copy them to the clipboard, or store them onto file in
RTF interchange format,
and many more...
Modeler's so-called client interface offers over 70 procedures for
- declaration and modification of models and model-objects, as well as control of
- global parameters and project description,
- simulation run conditions,
- display and monitoring,
- preferences and simulation-environment modes,
- program-state and structured simulations.
Additional optional modules available for
- generation of random numbers,
- data input from text-files,
- calendar functions to work with julian days,
- separate integration routine,
- table functions,
- coordinated access to graph output window,
- post simulation analysis.
3 - Formal Interface
To learn about the formal interface, notably all functions of
See also the ModelWorks Examples.
4 - Availability
ModelWorks is freeware (courtesy ETH Zurich).
It comes as a part of the
modeling and simulation environment.
Download it for:
(part of the RAMSES package)
(part of the Dialog Machine,
ModelWorks and Auxiliary Library
for Windows package)
Mac OS X
(part of the RASS-OSX package)
(part of the RASS-Sun package)
For information on the needed Modula-2 development environments for the
various supported computer platforms see here.
For hardware requirements see here.
For the latest information, not contained in the manual included in the RAMSES package, see
5 - On the Development History of ModelWorks
ModelWorks has been designed originally by Markus Ulrich and
the later versions by Andreas Fischlin, Olivier Roth, and Dimitrios Gyalistras,
all from ETH Zurich.
Thanks to the thorough testing and
using by Thomas Nemecek many important improvements and extensions of ModelWorks
became possible. Later several other Ph.D. students and many scientific collaborators,
in particular Frank Thommen, Jürg Thöny,
Heike Lischke, Harald Bugmann, Daniel Perruchoud, and Thomas J. Löffler,
made partly extensive use of ModelWorks and helped to
enhance the implementation and further its quality.
Together with the Dialog Machine the first versions of
ModelWorks have been developed during the pilot project
CELTIA (Computer Aided Explorative Learning and Teaching with Interactive Animated simulation)
at the Project-Centre IDA (Informatik dient allen)
at the Institute of Automatic Control Theory, ETH Zurich under the auspices of
Prof. Walter Schaufelberger.
The later versions of ModelWorks have been developed during a research project
funded by two grants from the Swiss National Science
Foundation and the Systems Ecology Group
of the ETH Zurich under the direction of Andreas Fischlin.
The two IBM PC implementations (under GEM respectively Windows) have been developed by
Daniel Keller (Project-Centre IDA), Jürg Thöny, Thomas Wegmüller, and Fabrizio Giorgetta
who all made ports of ModelWorks from the Macintosh to the IBM PC
and back several times. ModelWorks can be easily ported to every machine on which the Dialog Machine is available, since it is simply a
Dialog Machine program.
6 - Cited References
Fischlin, A. (1991).
Interactive Modeling and Simulation of Environmental Systems on Working Stations.
In: Möller, D.P.F. & Richter, O. (eds.), Analysis of dynamic systems in medicine, biology, and ecology.
Informatik-Fachberichte 275: 131-145.
Fischlin, A., Gyalistras, D., Roth, O., Ulrich, M., Thöny, J. & Nemecek, T., Bugmann, H. & Thommen, F. (1994).
Model Works - an interactive simulation environment for personal computers and workstations.
Systems Ecology Report No. 14, ETH Zurich, Switzerland, 324pp.
Wirth, N. (1985).
Programing in Modula-2.
Springer, Berlin a.o. 3rd. corr. edition. 202 pp.
Wirth, N. (1988).
Programing in Modula-2.
Springer, Berlin a.o. 4th. edition. 182pp.
See also the Systems Ecology