About my blog

I am multithreaded, and sometimes the threads get tangled.


a Studiolab production.


food design course at TUDelft
I blog in Italian
I have a LinkedIn profile
my lab is Studiolab!
I love Jasper van Kuijk's product usability weblog

the wind I am enjoying


De meningen ge-uit door medewerkers en studenten van de TU Delft en de commentaren die zijn gegeven reflecteren niet perse de mening(en) van de TU Delft. De TU Delft is dan ook niet verantwoordelijk voor de inhoud van hetgeen op de TU Delft weblogs zichtbaar is. Wel vindt de TU Delft het belangrijk - en ook waarde toevoegend - dat medewerkers en studenten op deze, door de TU Delft gefaciliteerde, omgeving hun mening kunnen geven.

Petri Nets, some tools

Petri nets are a graphical formal tool to model systems that can be described in terms of activity steps: like legal procedures, industrial processes, recipes and algorithms. State machines and UML can be described as subsets of Petri nets. Industrial designers could use them, because they are general enough for most problems and they provide a blueprint for programming. A good place to start for general information is the Petri Nets World page.


a generic example of a Petri net

This silly net says that, if you are a human being with a BA, you can enroll in a master program: then you can either go through the graduation process and graduate, or change your mind and become a rock star. Your activities are also fed into a big database somewhere. The model can be made fancier by annotating it with time, for example: so that you can have estimates of how long it takes to graduate etc. or whether it is possible to get stuck somewhere in the process. By the way, this network is also a state machine, something that makes computer scientists very happy.


I recenty looked up a few tools for working with Petri nets. I walked my way down this convenient list page from Petri Nets World, ignored things that looked dead, costed money or would not run on Windows. I was interested in tools that can also deal with time. Here are my notes:

Renew is a big Java application that seems able to do many things. I really don’t like Java, so I installed it with great reluctance. It worked nicely, but then it steadily refused to save anything. This is a bit of a drawback, so I uninstalled it and cursed Java for the hundredth time.

Snakes is a super cool Python library for doing Petri Nets. I was very tempted to start playing with it, just because I like programming in Python, but I decided to be a responsible person for once. It looks very Linuxy.

Tina is the TIme Petri Nets Analyzer. A collection of tools for editing and analyzing and doing very fancy things with Petri Nets. Looks very tasty, maybe will play with it in the future.  Explicitly available for Mac, Win and Linux.

Yasper is an entry level tool for playing around with Nets. It is very easy to use and it comes with a manual that also introduces some general modelling concepts. And it is a Dutch product, written in dot net at the TU Eindhoven. I am using it currently, mostly because it is easy to install and kind of friendly.

CPNTools looked very promising, but they want you to obtain a license. The license is free, but I will put up with the tedium only if other tools are not enough.

StpnPlay also looked very promising, but their project page appears to work only with Internet Explorer. Gamestopper for this guy.

Snoopy is also rather friendly and easy to install. I am playing with it currently, and it looks more general that Yasper but still reasonable.

(added on July 21st 2011WoPeD is visually pleasing, and it seems oriented to colored Petri Nets with fancy extensions like AND transitions.

(added on July 21st 2011) There are also tools that work as plugins of Eclipse. Eclipse is a way of life, a religion, and I am not sure I want to inflict it on myself or my students. Of course writing an Eclipse plugin makes perfect sense to computer scientists, becaus they are already running Eclipse anyway.

After looking at the big list of Petri Nets software I have come to a realization: whenever a computer scientist does not know what to do, he gets together
with a gang of other bigger and smaller computer scientists, some with
PhDs and some not. First they agree on which of the thousand flavors of Petri Nets they like best; then they write a Petri Net tool, or
at least a Petri Net library that understands some subset of PNML. Then they refactor it, add colors, add
extensions, add importers, add exporters and generally speaking add a
kazillion other things to the original beautiful idea. Then they get
bored or finish their PhD, and do something else that nobody has ever
done before, like a raytracing engine or a compiler that can compile all
the compilers that cannot compile themselves. 

Be Sociable, Share!

1 comment

Thanks for this write-up; reviews are scarce, of the various Petri nets/workflow packages out there. Do you have any new recommendations?

BTW, the Python SNAKES library has moved from the URL you gave, see:



Leave a Reply

© 2011 TU Delft