Skip to content

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

License

Notifications You must be signed in to change notification settings

capocchi/DEVSimPy

Repository files navigation

DEVSimPy

DEVSimPy: Python-Based GUI for DEVS Simulation

Category Status
Builds & Tests Linux Windows
PyPI PyPI Version Supported Versions Supported Implementations Wheel
Activity Last Commit Commits Since Maintained PyPI Downloads
QA CodeFactor Flake8 & mypy
Other License Language Requirements

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 🚀

Feature Description
Graphical Modeling Design, save, and export DEVS models easily.
Simulation & Analysis Run, suspend, and analyze simulations in real-time.
Code Editing Modify DEVS models on the fly.
Model Libraries Import/export libraries for domain-specific applications.
Command-Line Execution Run simulations via CLI with devsimpy-nogui.py.
Plugin System Extend functionality with custom plugins.
YAML Export Generate YAML models for DEVSimPy-mob.
REST API Enable 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-4.0 --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}},
}
@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

License

Stars

Watchers

Forks

Packages

No packages published

Languages