Skip to content

Repository files navigation

DEVSimPy

DEVSimPy: Python-Based GUI for DEVS Simulation

CategoryStatus
Builds & TestsLinuxWindows
PyPIPyPI VersionSupported VersionsSupported ImplementationsWheel
ActivityLast CommitCommits SinceMaintainedPyPI Downloads
QACodeFactorFlake8 & mypy
OtherLicenseLanguageRequirementsDOI

What is DEVSimPy?

DEVSimPy is an open-source framework (GPL v3) designed for modeling and simulating discrete event systems (DEVS) with a graphical user interface. Developed in Python with wxPython, it simplifies interaction with PyDEVS and PyPDEVS models.

Key Features 🚀

FeatureDescription
Graphical ModelingDesign, save, and export DEVS models easily.
Simulation & AnalysisRun, suspend, and analyze simulations in real-time.
Code EditingModify DEVS models on the fly.
Model LibrariesImport/export libraries for domain-specific applications.
Command-Line ExecutionRun simulations via CLI with devsimpy-nogui.py.
Plugin SystemExtend functionality with custom plugins.
YAML ExportGenerate YAML models for DEVSimPy-mob.
REST APIEnable remote simulation execution via DEVSimPy-REST.

Installation

Requirements

  • Python 3.10+
  • wxPython 4.0+
  • SciPy & NumPy (for spectrum analysis, optional)

From PIP

$ pip install devsimpy

and to start:

$ devsimpy

From Repo (for dev)

$ git clone --recurse-submodules -b version-5.1 --depth=1 https://github.com/capocchi/DEVSimPy.git
$ git fetch --unshallow
$ pip install -r requirements.txt

and to start:

$ python devsimpy.py

or for macOS user:

$ pythonw devsimpy.py # Required due to wxPython dependencies

Alternative Installation Methods


Command-Line Usage

Execute DEVSimPy models without the GUI:

$ python devsimpy-nogui.py test.dsp -sim 10 -kernel pdevs

or

$ python devsimpy.py --nogui test.dsp -sim 10 -kernel pdevs

For PyDEVS kernel:

$ python devsimpy-nogui.py test.dsp -kernel PyDEVS 10

Check CLI options:

$ python devsimpy-nogui.py -h

Documentation 📖


Citing DEVSimPy 📌

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},
}

Videos & Resources 🎥

For extensions, see this repository.


Contributions & Feedback 💡

We welcome contributions and feedback! Feel free to submit issues, pull requests, or join discussions to help improve DEVSimPy. 🚀

About

DEVSimPy – Visualize, Model, and Simulate Discrete Event Systems with Python.

Topics

Resources

Stars

58 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages