ANN: SimPy 2.1.0 simulation package

Klaus G. Muller kgmuller at
Fri Jun 4 06:01:16 CEST 2010

It is my pleasure to announce the release of SimPy 2.1.0. It is ready for
download at and PyPi ( ).

SimPy 2.1.0 is a major new version, with a refactored code base, two
powerful API additions,  additional documentation and bug fixes.

2.1.0 is fully backward compatible with 2.0.1 and earlier versions.


What is SimPy?


SimPy (= Simulation in Python) is a process-based discrete-event simulation
package based on Simula and implemented in Python. 

It is released under the GNU LGPL. 


Many users say that SimPy is one of the easiest to use discrete event
simulation packages.


It provides the modeler with components of a simulation model. These include
processes, for active components like  customers, messages, and vehicles,
and resources, for passive components that form limited capacity congestion
points like servers, checkout counters, and tunnels. It also provides
monitor variables to aid in gathering statistics.


SimPy has plotting and GUI capabilities "out of the box". It comes with
extensive documentation, tutorials and a large number of example models.




SimPy 2.1.0 works with Python 2.3 and later versions. It does not work with
Python 3.x.

SimPy also works with Jython and IronPython, with the exception of SimPy's
plotting and GUI capabilities.


Change notes


Here are the changes to the previous SimPy production release (2.0.1):




- A function `step` has been added to the API. When called, it executes  the
next scheduled event. 

- Another new function is `peek`. It returns the time of the next event.
By using `peek` and `step`   together, one can easily write e.g. an
interactive program to step through a simulation event by event.

- A simple interactive debugger ```` has been added. It allows
stepping through a simulation  under user control, viewing the event list,
skipping to a process' next event,  etc. 

- Versions of the Bank tutorials using the advanced object-oriented  API
have been added.

- A new document describes tools for gaining insight into and debugging
SimPy  models. Very useful for learning and teaching SimPy.




- Major re-structuring of SimPy code, resulting in much less  SimPy code --
great for the maintainers.

- Checks have been added which test whether entities belong to the  same
`Simulation` instance.

- The `Monitor` and `Tally` methods `timeAverage` and `timeVariance`   now
calculate only with the observed time-series.

- Changed class `Lister` so that circular references between  objects no
longer lead to stack overflow and crash.


Bug repairs


- Functions ``allEventNotices`` and ``allEventTimes`` are working again.

- Error messages for methods in SimPy.Lib work again.




The great code refactoring was done by Ontje Lünsdorf, with key inputs from
Stefan Scherfke. Thanks, guys!

I also thank the other developers and users for their inputs and support in
defining SimPy 2.1.0.


 Now, go ahead, download SimPy 2.1.0 and enjoy! Send any feedback, bug
reports, etc. to the SimPy Users mailing list
(simpy-users at


Klaus Müller

More information about the Python-announce-list mailing list