DunneFlow · The dashboard
Graph
The whole program at once, as a stack of plates, and the controls that make it readable.
Graph view draws the whole program at once as a stack of plates, sometimes called 2.5D. It answers what is connected to what.
What you are looking at#
A plate is a package, or a kind of boundary or grouping. Everything the program declares sits on the plate it belongs to, and the plates are stacked so you can see the program's shape without anything overlapping.
A node is one thing the program declares: a routine, a constant, a structure. It is a dot rather than a labelled box, because at many thousands of nodes labelled boxes become a wall.
The legend lists every plate with what it holds. Click a plate to select it; drag to reorder.
Nothing is lit until you pick something#
With nothing selected, all links are hidden: two hops from almost any routine is most of the program again, and a picture of most of the program is a picture of nothing. Pick a node and the rest dims. The HUD states how many nodes are lit, how many are dimmed, and whether the dimmed ones still answer a hover. A pointer and a ringed marker stand over your selection so you can find it; both can be turned off.
The HUD#
| Control | What it does |
|---|---|
| undo / redo | Step back and forward through selections. |
| you are here | Frame the current selection. |
| focus | Whether dimmed nodes answer a hover, or only lit ones. |
| snap to fit | Frame everything. |
| top-down / tilt | Two camera angles. |
| benchmark | Measure the frame rate on your machine. |
| clear | Drop the selection. |
The sliders:
- spacing: how much clear space each node keeps, as a multiple of its diameter. This is what guarantees no two nodes touch.
- across and deep: widen a plate in each direction, to separate nodes that fuse into a mass.
- stack: the gap between plates.
- width: how much a plate's width reflects how much it holds. At
0every plate is the same width; at1area is proportional to contents. - reset sliders puts them back.
nodes chooses whether a node's size reflects how sparse its plate is or only how connected it is.
layout chooses how a plate arranges its contents. by structure is a sunflower spiral ordered by connectedness: even, instant and stable, but blind to which nodes connect, so links cross at every angle. by connection runs a force solve until connected things sit near each other, which greatly reduces crossings. It is computed when you ask for it, much faster with a GPU than without, and the page says which of the two drew it.
follow picks which connections a selected node pulls in: callers and callees, callers only, or callees only. Callers only is the fastest way to see who depends on a routine.
plates draws the plate discs themselves. It is off by default; the plates your selection touches are drawn faintly anyway.
Under the legend#
- Detail:
every routinedraws everything;one node per filefolds each file into one node and each boundary kind into one. Nothing is dropped, and every folded node says what it stands for. - smallest plate: how few things a plate may hold before it is merged into
<small>. The line beneath always states what was merged. - Colour by:
what it is,which plate, orwhat changed(only when comparing). - unselected: whether everything you did not pick is dimmed or hidden.
- following: what clicking a neighbour does. replaces gives one hop from wherever you land; keeps the path keeps every node you followed selected, building a visible route.
- collapse gaps: close the hole an unlit plate leaves behind.
- Plate order:
by size(default),by name,by kind,as arranged(your dragged order), and two orders that search for an arrangement putting plates near the ones they link to: by what they link to, and by what they link to, grouped. Neither is claimed to be optimal, only better by a stated amount than where it started.
Stack and Overview#
The Stack / Overview toggle beside the view buttons gives two drawings of one selection. The stack holds every node and answers what is in here. The overview holds a few dozen boxes and answers what is this shaped like.
Something unclear or out of date? Tell us.