Why I Made This
Petri nets are highly effective at representing concurrently-executing processes with predefined types of resources. I am currently working on a project that uses timed Petri Nets as a representation, and wanted to achieve 2 things. First, I wanted to better understand the underlying capabilities and functionality of this state machine representation. Second, I wanted to try out a couple possible state machine diagrams to see if these affordances were a match for the usage I imagined. Surveying the set of tools, I wasn’t satisfied with any of the standard tools available. Either they were too complex to allow me this first-pass understandability of their functionality, or they were highly platform specific, or broken entirely.
So, I tried making one myself. I used a couple things I was familiar with, such as ReactFlow, which I used to create SimpleVP, but also a couple things I wasn’t such as D3 and Jotai. Initially, the networks were hard-coded, so I could test out my designs and get the logic working, but I slowly added editing capabilites, until now all aspects of the nets is configurable. I have even added some customizability for the visualization and interaction.
I hope to explore how such a visualization could be useful in future projects. If you have any thoughts or ideas, send me a message or create a github issue!