Skip to content

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 Status DOI

What is DEVSimPy?

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.

What is DEVS?

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

Why DEVSimPy Exists

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

Who Is It For?

  • 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

Key Features

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

Ecosystem & Extensions

DEVSimPy is part of a growing DEVS ecosystem:

Installation Quick Start

From PyPI (Recommended for Users)

pip install devsimpy
devsimpy

From Source (For Developers)

git 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

Alternative Installation Methods

Note: Python 3.10+ and wxPython 4.0+ are required for core functionality. SciPy & NumPy are optional for advanced spectrum analysis features.

🔧 Command-Line Usage (No GUI)

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 -h

Tip: Use .dsp files as input (DEVS model format). Replace test.dsp with your model filename.

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

Extensions & Related Projects:


Contributions & Feedback

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


Welcome to the DEVSimPy community!

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