A visual editor for Petri nets
A library to express colored petri nets and analyze their behavior.
Compiles pseuCo programs to colored Petri nets.
Create Petri-nets with js, ts, or json
Exemd driver for petri nets graphs
CPNsim is a Rust library and command-line tool with WebAssembly target for simulating Colored Petri Nets (CPNs)
A Symfony-compatible workflow engine for TypeScript and Node.js. State machines, Petri nets, guards, events, validation, and YAML/JSON/TypeScript import/export.
Framework-agnostic Petri net gating for AI agent tool access control. Define safety constraints as Petri nets — tools are only allowed when an enabled transition permits them.
Petri net modeling tool based on diagram-js for viewing and editing Petri nets in the browser. Supports the import and export of .pnml files.
A library to display and interact with Petri Nets.
Convert PNPRO to JSON or Statebox specific representations of Petri nets
A lightweight, zero-dependency JavaScript library for converting BPMN diagrams into Petri Nets.
Package for visualizing object-centric Petri nets
Process Mining for Javascript
> petri-specs is a CLI tool used to generate a json spec file that defines the experiments aspects used by petri.
General purpose level set extraction
nothin but nets. http client that works in node and browsers
Modeler supporting OCPNs, t-PNIDs, OPIDs, and DOPIDs.
A lightweight TypeScript Petri net engine
Quickly create AB Tests for texts without coding via [Wix Babel](https://bo.wix.com/wow/babel) & [Guineapig (Petri)](https://bo.wix.com/petri).
Helix Testing Environment
Generic contour extraction library for surface nets/dual contouring
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.14.
Petri Net modelling and execution
A simple, safe and efficient library wrapper for simulating a minimal form of petri nets
A library for simulating petri nets
Detect deadlocks in Rust source code at compile time using Petri nets
A simple library for creating and exporting Petri nets
A Petri net plugin for Bevy Engine.
A simple symbolic model checker for Petri Nets
Petri net modeling with ODE simulation and token model DSL
Core Petri net types, fluent builder API, and state utilities
S-expression DSL for defining token model schemas
Proc macros for pflow token model DSL
ODE solvers for Petri net simulation using mass-action kinetics
Token model schema, snapshot, and runtime execution
Petri Net Workflow Engine for Ruby.
Petri Net simulator
Testing ruby code with Petri nets
A comprehensive gem for Petri net modeling, colored Petri nets, matrix analysis, visualization, and formal verification for event sourcing and CRUD-to-Event mapping analysis. Part of the ORFEAS (Object-Relational to Event-Sourcing Architecture) framework.
A petri nets framework
A Petri net modeling gem
CircuitBreaker is a Ruby implementation of a Petri Net workflow system, allowing for complex AI workflow definitions and executions
A Petri net modeling gem
Zz structures are an interesting way of representing relations invented by Ted Nelson, whose domain model I provide in a gem Yzz. In this gem, YNelson, I combine Yzz with the universal Petri net provided by YPetri (another gem I wrote) to obtain a hybrid data structure that formalizes and generelizes a spreadsheet. Because let us note spreadsheets (as I have seen them) can be considered Petri nets of a kind, with cell functions acting as Petri net transitions. At the same time, spreadsheets are globally orthogonal structures with 3 typical dimensions (rows, columns and sheets). By using zz structures, the globally orthogonal spreadsheet is generalized as a locally orthogonal zz structure, with relations represented as zz dimensions, thus generalizing and formalizing a spreadsheet. The catch is that I have not yet finished the thinking process regarding what everything should be a zz object: Places (cells) and transitions definitely yes, but how about nets and dimensions? Should YNelson go as far as making namespaces into zz objects? The reason why these questions are hard to answer is because Ted Nelson himself, while providing interfaces guidelines (zz structure views, cursors...) did not comment on these questions. While being a (textual) DSL, YNelson aims to provide convenience on par with actual spreadsheet apps. Unlike YPetri, YNelson also aims to be able to specify more than one Petri net node per command, but this is still under development. See the user guide and the documentation for the details. YNelson documentation is available online, but due to formatting issues, you may prefer to generate the documentation on your own by running rdoc in the gem directory. For an example of how YPetri can be used to model complex dynamical systems, see the eukaryotic cell cycle model which I released as "cell_cycle" gem.
You can model your Timed Colored Petri Net in Ruby using convenient DSL and simulate it quite efficiently.
YPetri is a DSL (domain-specific language) for modelling of dynamical systems. It is biologically inspired, but concerns of biology and chemistry have been purposely separated away from it. YPetri caters solely to the two main concerns of modelling, model specification and simulation, and it excels in the first one. Dynamical systems are described under a Petri net paradigm. YPetri implements a universal Petri net abstraction that integrates discrete/continous, timed/timeless and stoichiometric/nonstoichiometric dichotomies of the extended Petri nets, and allows efficient specification of any kind of dynamical system. Like Petri nets themselves, YPetri was inspired by problems from the domain of chemistry (biochemical pathway modelling), but is not specific to it. Other gems, YChem and YCell are planned to cater to the concerns specific to chemistry and cell biochemistry. A lower-level extension of YPetri is currently under development under the name YNelson. Its usage is practically identical to YPetri, so any YPetri user can now consider using YNelson instead. YNelson covers additional concerns: it allows relations among nodes and parameters to be specified under a zz structure paradigm (developed by Ted Nelson) and it is also aimed towards providing a higher level of abstraction in Petri net specification by providing commands that create more than one Petri net node per command. YPetri documentation is avalable online, but due to formatting issues, you may prefer to generate the documentation on your own by running rdoc in the gem directory. As for the user manuals, there are currently 3 documents applicable for both YPetri and YNelson, whose master copies are stored in the YNelson source directory: 1. Introduction to YNelson and YPetri (hands-on tutorial), 2. Object model of YNelson and YPetri, 3. Introduction to Ruby for YNelson users. These manuals are written to allow beginners, including those unfamiliar with Ruby, to start working with YPetri and/or YNelson. For an example of how YPetri can be used to model complex dynamical systems, see the eukaryotic cell cycle model which I released as "cell_cycle" gem.