I developed a plug-in for the PetriDotNet 2 framework which is currently being developed at the Department of Measurement and Information Systems. The plug-in was built to redraw and layout Petri nets (that are for example being generated by other programs). The problem with generated Petri nets is that usually they do not have information about how they should be displayed and this leads to difficulties.
I implemented well known graph layout algorithms and overlap elimination algorithms and a few of my own ideas into this plug-in. I also developed a simple data structure to support the layout algorithms. In the implementation process I tried to exploit the well know properties of Petri-nets. To increase the user experince the more resource-intensive algorithms are running on background threads. I also designed an interface where users can build their own layout workflow based on the implemented algorithms, which can be parameterized at will. I tried to design the system in a user friendly way.