Design talk about the Graph View

Graph Sculpting Operations

Seeing too many nodes at once is overwhelming. One of the most important things for making the graph functional is filtering, having the possibility to reduce the visible nodes to a manageable amount. Obsidian does a great job at filtering the graph through search. But even so, the result can be overwhelming. Here’s an example of a local graph view at depth 2:

All the visible information on the graph above is meaningful, thanks to the search, but there’s just too much of it. What’s needed, is the ability to interact with the graph on a node by node basis (and by selecting multiple nodes), to isolate the nodes that are most relevant in the moment, and to hide or fade those less relevant. I like to think of this process as graph sculpting.

Graph sculpting could be performed by a few basic operations:

  • Hiding Nodes
  • Folding Nodes
  • Fading Nodes

Hiding Nodes

Not much to say here. Every node you hide makes the remaining nodes more legible. Ideally, you should be able to see the hidden nodes at any time and selectively make nodes visible again.

Folding Nodes

On the local graph at depth 1. you see the nodes directly connected with the central node (level 1 nodes). At depth 2, you also see the nodes directly connected with the level 1 nodes (level 2 nodes).

Imagine you start from one local node on the graph. By clicking on it you unfold it, thus seeing its level 1 nodes.
By clicking on any of the level 1 nodes, you unfold it, thus seeing its level 1 nodes (which are level 2 relative to the initial node).
By clicking on any of the level 2 nodes, you unfold it, thus seeing its level 1 nodes (which are level 3 relative to the initial node).
And so on.

It’s the same principle as folding/unfolding blocks within notes, but at graph level.

Fading Nodes

When you hover the cursor over a node, the visual effect is beautiful:

I like to metaphorically think of it as foreground/background. Items in the foreground are normally visible; items in the background are faded. This could be a feature in itself. What’s beautiful about it is that you can see the context, but it does not clutter the view.

How this feature could work is by having the option, at any time, to persistently move nodes from the background to the foreground and vice versa.

Imagine if when I selected a note, only the central node and its level 1 nodes were in the foreground on the local graph, and the level 2 nodes and higher were in the background (faded). For me, this would be the ideal view when selecting a note:


Think of all these operations as tools, and the tools could be combined. I could choose to fold some nodes, hide others, and fade others, thus shape the graph into the most meaningful pattern possible.

4 Likes