| Category | Status |
|---|---|
| Builds & Tests | |
| PyPI | |
| Activity | |
| QA | |
| Other |
A Python-based GUI framework for designing, simulating, and analyzing Discrete Event Systems (DEVS) models.
DEVSimPy (Discrete Event System Simulation in Python) is a free, open-source framework (GPL v3 license) for modeling, designing, and simulating discrete event systems (DEVS) with an intuitive graphical user interface. Built in Python using wxPython, DEVSimPy serves as the bridge between human-friendly visual modeling and powerful DEVS simulation engines like PyDEVS and PyPDEVS.
DEVS (Discrete Event System Specification) is a formal framework for modeling complex systems where state changes occur at discrete time points. It's widely used in:
- Healthcare: Patient flow, hospital operations
- Manufacturing: Production lines, supply chains
- Transportation: Traffic networks, logistics
- Computer Science: Networks, distributed systems
Traditional DEVS tools have a steep learning curve, lack visual feedback, and offer limited accessibility. DEVSimPy changes this by:
- Visual Modeling: Transform abstract DEVS notation into intuitive graphical representations
- Real-Time Analysis: Monitor system behavior as simulations unfold
- Interactive Workflow: See immediate results of modeling choices
- Python Power: Leverage Python's simplicity while maintaining rigorous mathematical foundations
- Researchers who need to compare multiple parameter configurations
- Educators teaching discrete event systems and system dynamics
- Engineers modeling complex systems (healthcare, logistics, manufacturing)
- Students learning DEVS concepts through visual tools
| Feature | What It Enables |
|---|---|
| Graphical Canvas | Drag-and-drop design of DEVS models with real-time visualization |
| Simulation Control | Start, pause, resume simulations with speed adjustment |
| Live Metrics Panel | Watch system states, timers, and events during execution |
| Model Export | Generate YAML files for multi-agent extensions (DEVSimPy-mob) |
| Plugin System | Extend functionality with custom modules |
| CLI Execution | Run simulations via command line (devsimpy-nogui.py) |
| AI Model Generation | Auto-generate DEVS models from text descriptions |
| Kafka Integration | Connect to streaming frameworks for distributed simulation |
| DEVS Standard Compliant | Full OMG-DEVS compatibility for tool interoperability |
DEVSimPy is part of a growing DEVS ecosystem:
- DEVSimPy-mob - Multi-agent extensions via YAML export
- DEVSimPy-rest - REST API for remote simulation execution
- Plugin System - Extend functionality with custom modules
pip install devsimpy
devsimpygit clone --recurse-submodules -b version-5.1 --depth=1 https://github.com/capocchi/DEVSimPy.git
git fetch --unshallow
pip install -r requirements.txt
python devsimpy.py- Conda Environment: Use the
conda_devsimpy_env.ymlfile. - Portable Version: Use Portable Python with PyScripter.
- Virtual Machine: Download a preconfigured XUbuntu 19.10 VM with DEVSimPy here (Login:
devsimpy-user/devsimpy).
Note: Python 3.10+ and wxPython 4.0+ are required for core functionality. SciPy & NumPy are optional for advanced spectrum analysis features.
Execute DEVSimPy models without the GUI interface:
# Run with PyDEVS kernel
python devsimpy-nogui.py test.dsp -sim 10 -kernel pdevs
# Or use explicit kernel name
python devsimpy-nogui.py test.dsp -kernel PyDEVS 10
# For Python script entry point
python devsimpy.py --nogui test.dsp -sim 10 -kernel pdevs
# Check all options
python devsimpy-nogui.py -hTip: Use
.dspfiles as input (DEVS model format). Replacetest.dspwith your model filename.
- DEVSimPy User Guide v2.8 (French)
- S. Toma Ph.D. Thesis (English) (Winner of the 2014 DEVS PhD Dissertation Award)
- Technical Report (Polish)
If you use DEVSimPy in your research, cite it using:
@misc{capocchi2019devsimpy,
author = {Laurent Capocchi},
title = {DEVSimPy},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/capocchi/DEVSimPy}},
doi={https://doi.org/10.5281/zenodo.19336231}
}@INPROCEEDINGS{5990023,
author={L. {Capocchi} and J. F. {Santucci} and B. {Poggi} and C. {Nicolai}},
booktitle={2011 IEEE 20th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises},
title={DEVSimPy: A Collaborative Python Software for Modeling and Simulation of DEVS Systems},
year={2011},
pages={170-175},
doi={10.1109/WETICE.2011.31},
}- YouTube - Tutorials and demonstrations
- Personal Website - Project information and news
Extensions & Related Projects:
- DEVSimPy-mob - Multi-agent extensions
- DEVSimPy-rest - REST API server
- Legacy Extensions - Community contributions
We welcome contributions and feedback! Feel free to submit issues, pull requests, or join discussions to help improve DEVSimPy.
Welcome to the DEVSimPy community!
