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.1.tar.gz (3.8 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.1-py3-none-any.whl (3.9 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: devsimpy-5.1.1.tar.gz
  • Upload date:
  • Size: 3.8 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.1.tar.gz
Algorithm Hash digest
SHA256 b6074cece70a3b68a3fe812fde8dc93add083cc5f8a9368e0c19e5e3bd3ced27
MD5 4dc2346fef8a336c52aa99167db3d3c2
BLAKE2b-256 e2bf0795d0e6730f52f498407bf3b4e8b091cf3a7a5ced3c1520f023d0a59548

See more details on using hashes here.

File details

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

File metadata

  • Download URL: devsimpy-5.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a903ac4c5f9f189a8b155d079dcf7b2c5608625540885914a710dea4fb6b984
MD5 16ecf8f69d1e83b9e15a6d4dc2c616cd
BLAKE2b-256 bbb7c9c714605faa73c19dbd2e6c4a0e396e66dd2fdfe75d8f14ece493a1b081

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