.. meta::
   :description: SimPy Python Simulation Language 
   :keywords: simulation python stochastic

 
===========================================================
|simpylogo| A Python-based simulation package
===========================================================

SimPy_ is a process-based discrete-event simulation language based on
standard Python and released under the GNU LGPL. It provides the
modeller with components of a simulation model including
*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. Random variates are provided by the standard Python
*random* module.

SimPy is based on ideas from Simula and Simscript but uses standard
Python. It provides efficient implementation of co-routines using
Python's generators capability. It requires Python 2.2 or later.

More information is available on the `SimPy Homepage`_ and the
`SimPy wiki`_.

Download
-----------------

SimPy can be downloaded from the `Simpy page on Sourceforge`_.


A number of  example `SimPy models`_ are included in the download
package. 

.. _`SimPy models`:  ../SimPyModels/LISTOFMODELS.html 

Getting support
-----------------

SimPy users are encouraged to subscribe to the Simpy User mailing list
(`simpy-user list`_). This is the best place to ask questions to the user 
community about SimPy use and to discuss any problems.

Any SimPy errors should be reported to the SimPy `bug tracker`_ on SourceForge.net.
A SimPy developer will then undertake the resolution of that error.

Proposals for new features for SimPy should be discussed first on the SimPy
User list or on the `SimPy wiki`_. After such discussion, they should be 
submitted to `SimPy Feature Requests`_.
They will then be considered for inclusion in a future version/release of SimPy.
Feature requests which have been discussed with the user community as addressed
above stand a much better chance of being implemented than ones coming
'out of the blue'.

.. _`bug tracker`: http://sourceforge.net/tracker/?func=add&group_id=62366&atid=500345
.. _`SimPy Feature Requests`: http://sourceforge.net/tracker/?group_id=62366&atid=500348
 
Documentation 
----------------------

A Manual_ with simple examples.

A brief cheat-sheet_ of the facilities that SimPy provides in the form
of a listing of commands and methods for *processes*, *resources*, and
*monitors*.

Two tutorials for SimPy, `The Bank`_ and `The Bank2`_ showing the
gradual development of a multi-server bank model and the use of a few
special facilities.

An introduction to interfacing_ SimPy models with GUI and plotting
applications.

SimPlot_, a basic plotting package for SimPy.

SimGUI_, a version of SimPy that provides a graphical way for users to
interact with a SimPy program, changing its parameters and examining
the output.

SimulationTrace_, a version of SimPy modified for tracing for education and
debugging.

`SimulationStep`_ a version of SimPy which can assist with debugging
models, interacting with them on an event-by-event basis, getting
event-by-event output from a model.

`SimulationRT`_ a version of SimPy which allows synchronizing
simulation time and real (wallclock) time.


.. _SimPy: http://simpy.sourceforge.net/index.html
.. _`SimPy Homepage`: http://simpy.sourceforge.net/index.html
.. _`SimPy wiki`: http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy
.. _`Simpy page on Sourceforge`: http://sourceforge.net/projects/simpy/
.. _Manual:      Manual.html
.. _cheat-sheet: cheatsheet.html
.. _interfacing: Interfacing/Interfacing.html
.. _`The Bank`:  TheBank.html
.. _`The Bank2`:  TheBank2.html
.. _`SimGUI`: SimGUIManual/SimGUImanual.html
.. _`SimPlot`: SimPlotManual/ManualPlotting.html
.. _`SimulationTrace`: Tracing.html
.. _`SimulationStep`: SimStepManual/SimStepManual.html
.. _`SimulationRT`: SimRTManual.html 




Mailing list   
---------------------

There is a mailing list for users and modellers using SimPy. You can
join it at the `simpy-user list`_.

.. _`simpy-user list`: https://lists.sourceforge.net/lists/listinfo/simpy-users

Other links
---------------------

Klaus Muller and Tony Vignaux, *SimPy: Simulating Systems in Python*,
O'Reilly ONLamp.com, 2003-Feb-27,  http://www.onlamp.com.pub/a/python/2003/2/27/simpy.html

Norman Matloff, *Introduction to the SimPy Discrete-Event Simulation
Package*, U Cal: Davis, 2003,
http://heather.cs.ucdavis.edu/~matloff/simpy.html

David Mertz, *Charming Python: SimPy simplifies complex models*, IBM
Developer Works, Dec 2002,
http://www-106.ibm.com/developerworks/linux/library/l-simpy.html
 
.. Klaus G Muller, *A Simulation language, Simula-Style, in Python*,
   http://drmuller.freezope.org/SiPy site (more of historical interest)
 


:Web-site: http://simpy.sourceforge.net/

:Date: $Date: 2006/02/04 05:15:12 $ gav
:Revision: $Revision: 1.1.1.9 $ gav

.. |simpylogo| image:: images/sm_SimPy_Logo.png

.. image:: images/sm_SimPy_Logo.png
   :alt: SimPy logo

.. image:: http://sourceforge.net/sflogo.php?group_id=62366&amp;type=4
   :width: 125 
   :height: 37 
   :alt:  SourceForge Logo 



..
   Local Variables:
   mode: rst
   indent-tabs-mode: nil
   sentence-end-double-space: t
   fill-column: 70 
   End:

