Skip to main content

Python-Based GUI for Discrete Event system Specification (DEVS) Simulation

Project description

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. 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devsimpy-5.1.0.tar.gz (4.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devsimpy-5.1.0-py3-none-any.whl (4.9 MB view details)

Uploaded Python 3

File details

Details for the file devsimpy-5.1.0.tar.gz.

File metadata

  • Download URL: devsimpy-5.1.0.tar.gz
  • Upload date:
  • Size: 4.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for devsimpy-5.1.0.tar.gz
Algorithm Hash digest
SHA256 a375c5f44e8097908f1912c4fb10a19419dc212b95fdf2058da3e005f44b6102
MD5 5756d707c35f1515ba904d01a8102406
BLAKE2b-256 7170de5c5676610a0a719971efc494d63d6ad3e9cf880cb63fb08a92e35900e5

See more details on using hashes here.

File details

Details for the file devsimpy-5.1.0-py3-none-any.whl.

File metadata

  • Download URL: devsimpy-5.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for devsimpy-5.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a17a2c58ec86c6aed27c48094d5a56add97af2bd5d639659f62bf0a2fde7728
MD5 d89fe61d4d4cdd1a76e7c431c6b21e3f
BLAKE2b-256 d23fe3646f7304b7b43b0e9ada74c06fd3609a9516954b083109497365a1cb5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page