I am looking for an offline tool (ideally for command line in Linux) which layouts my BPMN diagram automatically and reproducibly, i.e. the same process should always end up in the same layout, i.e. the same coordinates for all activities and flows for each run.
The alternatives I am currently aware of are the following:
- Use the yBPMN layouter which comes along with the java application YEd.
- Somehow employ the API of a local Camunda installation, but here I am not sure how exactly that should work when I already have a BPMN-XML in hand where I want to adjust only the coordinates.
- Try to expand bpmn-auto-layout, a project in version 0.1 and a single release(as of Dec. 2019).
- Indirectly let graphviz do the job, e.g. by an algorithm suggested by Ingo Kitzmann, Christoph König, et. Al. on top of it.
- Implement the hierachical layouting algorithm from scratch. (See e.g. M. Slade: Theses on A layout algorithm for hierarchical graphs with constraints, G. Sander: A fast heuristic for hierarchical Manhattan layout, S. Chitra, B. Kalpana: Hierarchical Directed Acyclic Graph (HDAG) Based Preprocessing Technique for Session Construction, ...)
Is there some other approach for arranging the layout of a BPMN diagram programatically and deterministically?