Salabim: Discrete Event Simulation and Animation in Python
Salabim: Discrete Event Simulation and Animation in Python
Python
Ruud van der Ham1, 2
DOI: 10.21105/joss.00767 1 salabim.org 2 Upward Systems
Software
• Review
Summary
• Repository
• Archive
Salabim is a discrete event simulation package in Python.
Submitted: 30 May 2018 A discrete-event simulation (DES) models the operation of a system as a discrete sequence
Published: 27 June 2018 of events in time. Each event occurs at a particular instant in time and marks a change
License of state in the system. Between consecutive events, no change in the system is assumed
Authors of papers retain copyright to occur; thus the simulation can directly jump in time from one event to the next. (Page
and release the work under a Cre- and Kreutzer 2005)
ative Commons Attribution 4.0 In-
ternational License (CC-BY). This contrasts with continuous simulation in which the simulation continuously tracks
the system dynamics over time. Instead of being event-based, this is called an activity-
based simulation; time is broken up into small time slices and the system state is updated
according to the set of activities happening in the time slice.[2] Because discrete-event
simulations do not have to simulate every time slice, they can typically run much faster
than the corresponding continuous simulation.
Applications of DES can be found in transportion research, manufacturing, mining, hos-
pital logistics, (air)ports, network analysis, etc.(Robinson 2013)
There is a wide range of packages and languages available, many of them proprietary
and very expensive. In the open source world, there are open source projects based on
Java (dSOL), Julia (SimJulia), R (Simmer), Pascal/Delphi(Tomas) and in Python SimPy
and salabim. Several of these packages use the Simula activate/passivate/hold paradigm,
which leads to very clear and easy to maintain models. SimPy (Matloff 2013), the other
DES under Python, does not follow that process description method and is therefore more
difficult to use for modellers. Also, salabim provides animation, queues, ‘states’, monitors
for data collection and presentation, tracing and statistical distributions, none of which
are present in SimPy.
The integrated 2D-animation makes validation and demonstration simple and powerful.
Simulations and animations run under CPython or PyPy on Windows, Linux, OSX and
iOS. (Lutz 2014) The ability to simulate and animate models on a iPad is unique.
Salabim has applications in transportion research, manufacturing, mining, hospital logis-
tics, network analysis, etc.
References
Lutz, Mark. 2014. Python Pocket Reference. O’Reilly.
Matloff, Norm. 2013. Introduction to Discrete-Event Simulation and the SimPy Language.
http://heather.cs.ucdavis.edu/~matloff/156/PLN/DESimIntro.pdf.
van der Ham, (2018). salabim: discrete event simulation and animation in Python. Journal of Open Source Software, 3(27), 767. 1
https://doi.org/10.21105/joss.00767
Page, Bernd, and Wolfgang Kreutzer. 2005. Simulating Discrete Event Systems. Shaker
Verlag. https://doi.org/10.1065/espr2006.09.348.
Robinson, Stewart. 2013. Simulation – the Practice of Model Development and Use.
Wiley.
van der Ham, (2018). salabim: discrete event simulation and animation in Python. Journal of Open Source Software, 3(27), 767. 2
https://doi.org/10.21105/joss.00767