Skip to main content

graphlay

Deterministic layered graph layout in Rust. One engine for Rust, the browser and Python.

An object-centric directly-follows graphAn object-centric directly-follows graphAn object-centric Petri netAn object-centric Petri netRoad traffic fines, from a real logRoad traffic fines, from a real logA service mapA service mapFrequencies as heatFrequencies as heatA Petri net: order to cashA Petri net: order to cashMerged edgesMerged edgesSwimlanesSwimlanesNested subprocessesNested subprocessesA finite automatonA finite automatonWrapping into rowsWrapping into rowsPort hintsPort hints

Deterministic

The same graph and options give the same drawing on every platform and in every binding. A test suite pins the output of every example.

General purpose

It lays out any directed graph. Process models are the main test case, so merged edges, swimlanes, port hints, nested subprocesses and row wrapping are built in.

Measured

It computes crossings, bends, edges through nodes, staircase steps and more for any drawing. The test suite tracks them over a corpus of real models.

Interactive

Drag a node and it re-routes only the edges. Seeds keep a relayout close to the drawing a person already knows.