Skip to main content

Designing Node Graphs

A node graph makes relationships explicit, but a large graph can still hide the relationship a user needs. Design for reading, changing and debugging the graph, not merely placing nodes.

Give Connections Meaning​

Name ports and show their types. Use direction, labels and appropriate visual cues to distinguish image, geometry, numeric and control connections without relying on colour alone. Explain incompatible connections at the attempted join.

When a node is selected, allow the user to trace its inputs and downstream effects. Highlight the relevant route, including links that leave the visible area or enter a group. Provide a way to follow that route while retaining orientation.

Groups should represent a useful part of the work, with a name, an inspectable boundary and visible inputs and outputs. An annotation should explain a decision or assumption rather than repeat the node's label. Keep annotations attached when nodes move.

Preserve the Layout While Revealing Detail​

Offer local focus: inspect one branch, fold an unrelated group or temporarily emphasise a dependency. Make the hidden scope apparent and provide a clear route back to the full graph.

Avoid rearranging the whole graph after a small edit. If automatic layout is available, preview it or make it reversible. Manual spacing and position may carry meaning that the layout algorithm cannot infer.

Long wires need usable destinations. Let users inspect a connection's endpoints, follow it without losing the starting node, and select an obscured connection without pixel hunting. Provide keyboard and non-drag alternatives as described in Accessibility.

Work Through a Specific Change​

Consider a colour-processing graph with a mask shared by two outputs. The user needs to replace the mask for one output without changing the other. Show the shared dependency before the replacement; offer an appropriate duplicate or local override; then make the changed branch visible. A successful result is both correct output and a graph the user can explain afterwards.

See Testing and Debugging User-Created Systems for intermediate values, cached results and small-scope tests.

Practical check: ask someone to identify which outputs a change will affect, alter one branch and explain the result. Record whether they can trace the dependency independently, whether the layout remains recognisable and whether hidden groups conceal an affected output.

Footnotes​

  1. Purchase, H. C., Plimmer, B., Baker, R., & Pilcher, C. (2010). Graph drawing aesthetics in user-sketched graph layouts. Proceedings of AUIC 2010, 80–88. Author-hosted paper. ↩