petnat

Crates.iopetnat
lib.rspetnat
version0.0.2
sourcesrc
created_at2023-12-30 23:02:35.747142
updated_at2024-01-03 22:28:15.383234
descriptionA Petri net plugin for Bevy Engine.
homepage
repositoryhttps://github.com/nxsaken/petnat/
max_upload_size
id1084457
size121,892
Nurzhan Saken (nxsaken)

documentation

README

Rust

A Petri net plugin for Bevy Engine. 🍾

About

petnat equips you with Petri nets to use in your Bevy projects. It's a powerful way to model states, processes, resources, and more.

This is a very experimental project, and I mostly started it because I wanted to play with Petri nets and improve my Rust. I am not sure about the possible usefulness of this plugin, but I hope to discover how I can improve it with time and usage.

Rough idea

  1. Build a model using places and transitions.
  2. Define a PetriNet<NetId> resource.
  3. Add a Token<NetId> component to an entity.
  4. Mark some (probably initial) places with the Token according to the model.
  5. Fire transitions when it makes sense according to the model.
  6. Implement game logic based on the current marking of the Token.

Examples

Check out this example demonstrating a simple Petri net in action, as well as the tests here for more Petri net instances.

Commit count: 5

cargo fmt