Tools to support Discrete-Event Simulation (DES) and Monte-Carlo Simulation education and practice
HELLO!!! TEST TEST TEST
sim-tools is being developed to support Discrete-Event Simulation (DES) and Monte-Carlo Simulation education and applied simulation research. It is MIT licensed and freely available to practitioners, students and researchers via PyPi and conda-forge
- Deliver high quality reliable code for DES and Monte-Carlo Simulation education and practice with full documentation.
- Provide a simple to use pythonic interface.
- To improve the quality of simulation education using FOSS tools and encourage the use of best practice.
- Implementation of classic Optimisation via Simulation procedures such as KN, KN++, OBCA and OBCA-m
- Theoretical and empirical distributions module that includes classes that encapsulate a random number stream, seed, and distribution parameters.
- An extendable Distribution registry that provides a quick reproduible way to parameterise simulation models.
- Implementation of Thinning to sample from Non-stationary Poisson Processes (time-dependent) in a DES.
- Automatic selection of the number of replications to run via the Replications Algorithm.
- EXPERIMENTAL: model trace functionality to support debugging of simulation models.
pip install sim-toolsconda install -c conda-forge sim-toolsmamba is a FOSS alternative to conda that is also quicker at resolving and installing environments.
mamba install sim-tools- Online documentation: https://tommonks.github.io/sim-tools
- Introduction to DES in python: https://health-data-science-or.github.io/simpy-streamlit-tutorial/
If you use sim-tools for research, a practical report, education or any reason please include the following citation.
Monks, T., Heather, A., Harper, A. (2025). sim-tools: fundamental tools to support the simulation process in python. Zenodo. https://doi.org/10.5281/zenodo.4553641.
@software{sim_tools,
author = {Thomas Monks and Amy Heather and Alison Harper},
title = {sim-tools: fundamental tools to support the simulation process in python},
year = {2025},
publisher = {Zenodo},
doi = {10.5281/zenodo.4553641},
url = {https://doi.org/10.5281/zenodo.4553641}
}Please fork Dev, make your modifications, run the unit tests and submit a pull request for review.
Development environment:
-
conda env create -f binder/environment.yml -
conda activate sim_tools
All contributions are welcome!
Once in the sim_tools environment, you can run tests using the following command:
pytest
To view the documentation, navigate to the top level directory of the code repository in your terminal and issue the following command to build the Jupyter Book:
jb build docs/
To lint the repository, run:
bash lint.sh
NumPy style docstrings are used.
