SimPy is a process-based, object-oriented discrete-event simulation language. It is implemented in standard Python and released as Open Source under the GNU Lesser General Public License (LGPL). It provides the modeller with components for building a simulation model including Processes, for active entities like customers, messages, and vehicles, and Resources, for passive components that form limited capacity congestion points like servers, checkout counters, and tunnels. There are two varieties of Buffer classes, Levels to hold stored quantities and Stores to hold sets of objects. It has commands to aid interaction between entities. It provides Monitor objects to aid in gathering statistics but the generation of Random variates depends on the standard Python random module.
Because it is implemented in Python, SimPy is platform-independent and can run on practically all modern operating systems.
SimPy simulates parallel processes by an efficient implementation of coroutines using Python's generators capability. It is based on ideas from Simula and SIMSCRIPT II.5. Version 1.0 of SimPy was released in December 2002.