Skip to main content

Probabilistic Model Checking for almost everyone

Project description

Stormvogel 🐦: An interactive approach to probabilistic model checking in Python

Coverage

The state-of-the-art model checking tools that are currently available are optimized to be efficient. The result of this is that they are quite hard to learn and use. Stormvogel flattens the learning cuve by providing easy and user-friendly APIs for creating probabilistic Markov models, and tools to visualize and debug them. It supports seemless conversion to the powerful Storm(py) model checker out of the box.

Features

  • Easy APIs for constructing Markov models in dedicated data structures. Currently, DTMCs, MDPs, CTMCs, POMDPs and Markov Automata are supported. This also includes parametric and interval models.

  • Seamless conversion between stormvogel and stormpy models with some runtime overhead. This allows, e.g., also using formats such as JANI and PRISM that are not supported by stormvogel directly. It is also possible to add support for a different model checker.

  • Visualization of Markov models as an interactive graph and into SVGs via dot. This includes extensive layout options, and displaying model checking results and simulations in an interactive way.

  • Support for gymnasium environments

  • An extensive documentation with clear examples.

Check out the the stormvogel documentation for examples of how to use stormvogel.

Installation

Pip (release version, recommended for users)

  1. Run pip install stormvogel.
  2. To also install stormpy, run pip install stormpy.
  3. Run jupyter lab
  4. Now a browser window should open that runs jupyter lab with stormvogel installed.

Docker (release version)

  1. Install docker. Run:
  2. docker run -it -p 8080:8080 stormvogel/stormvogel
  3. Now a browser window should open that runs jupyter lab with stormvogel and stormpy installed.

For contributors (latest version)

Note that you might have to tweak these steps a bit to get it to work on your particular system, but here is an outline. Contributors need Poetry to manage the development environment.

  1. Clone the stormvogel repo (or your own fork) in a separate folder
  2. In the stormvogel folder:
    poetry install
    poetry shell # Activate poetry virtual environment
    pip install stormpy
    pip install . # Install stormvogel
    
    If installing stormpy fails in poetry, you can also try to follow the official stormpy installation instructions, and run poetry shell on top of the virtualenv environment that they describe there.
  3. Install pre-commit hook: pre-commit install

Testing

nox -s tests   # run test suite
nox -s lint    # ruff + pyright
nox -s docs    # sphinx-build (executes doc notebooks)

Or run pytest directly without nox.

Notice that part of the tests will be skipped if stormpy is not installed.

Authors

Stormvogel was mainly developed at Radboud University by Linus Heck, Pim Leerkes, and Ivo Melse under supervision from Sebastian Junges and Matthias Volk.

Thank you to our contributors: Luko van der Maas, Nicklas Osmers.

License

Stormvogel is licenced under the GPL-3.0 license.

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

stormvogel-0.12.0.tar.gz (514.0 kB view details)

Uploaded Source

Built Distribution

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

stormvogel-0.12.0-py3-none-any.whl (561.0 kB view details)

Uploaded Python 3

File details

Details for the file stormvogel-0.12.0.tar.gz.

File metadata

  • Download URL: stormvogel-0.12.0.tar.gz
  • Upload date:
  • Size: 514.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.13.1 Linux/6.17.0-1013-azure

File hashes

Hashes for stormvogel-0.12.0.tar.gz
Algorithm Hash digest
SHA256 992d4c63f9184306f2cbda654b91f7ae27f3af91feac0f35f1dd3735111fcedd
MD5 d59a4d131cce414f014ac6f2f831ffc5
BLAKE2b-256 4632eed2a10f5ef5d6657960569efe4c41fced7613bff55c354444a9f651af1f

See more details on using hashes here.

File details

Details for the file stormvogel-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: stormvogel-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 561.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.13.1 Linux/6.17.0-1013-azure

File hashes

Hashes for stormvogel-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46de8599330aecd7fa87d75a25339f9bc599b4c6766631626e2f79f932a25b6b
MD5 fb180680190acdb36a8d5bd835da09b6
BLAKE2b-256 8c30203dd6554f9c70e251a4aa143cb9db9814b225b8066b667445ae417d713d

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