Notes graph: neurons, links, tags and the space background

The graph view of the Notes tab draws each note as a green neuron and connects notes by [[Title]] links, title mentions and shared tags, laid out by a force simulation on a drifting starfield.

Senzoukria · Documentation · Updated September 2026


Where to find it

Where
AI Agent page → Notes tab → "◉ Graph" button
Edges
link ([[Title]]), mention (title cited in a body, weight 0.5), tag (shared tag hub)
Controls
Drag to move · wheel to zoom · click to select, double-click to open, Delete to remove
Zoom range
0.25× to 4× (auto-fit 0.35× to 2.2×)

What it does

The graph is built from the notes in the library. Each note is a node labelled by its title. An edge of kind link joins two notes when one body contains [[Title]], [[Title|alias]] or [[Title#section]] pointing at the other's title. An edge of kind mention joins them when a body cites another note's title in plain text, provided the title has at least 4 characters; wikilinks are removed before this scan so a link is not counted twice, and a link always wins over a mention. With "Tags as nodes" checked, each tag becomes a hub node drawn as a hollow circle and joined to every note carrying it.

Node radius grows with degree: 4.5 + 1.8·√degree for notes, 3 + √degree for tags. The layout is a force simulation with repulsion between all nodes, springs along edges (rest length 60 for links, 90 for mentions, 52 for tags), gravity to the centre and damping; a temperature decays from 1 to the rest threshold 0.015. Starting positions follow a sunflower spiral and known positions are kept when a note is added, so the drawing does not explode.

The background is a deterministic field of 150 stars with depth: near stars are larger, tinted the brand green, carry a halo and move more with parallax (0.35 of the view translation) and a slow drift of 3.5 px per second. The field wraps, so no edge ever empties. Zoom does not scale the sky.

Settings

Controls and constants of the graph view
SettingDefaultWhat it changes
Tags as nodescheckedAdds a hub node per tag and a tag edge per note carrying it
Search fieldemptyNodes whose label does not contain the query are dimmed
Auto-fiton until you pan or zoomKeeps the whole graph framed as the simulation settles
Wheel zoomfactor exp(−deltaY·0.0012), clamped 0.25–4Zooms around the cursor
Labelsall when zoom ≥ 0.75 and ≤ 80 nodesOtherwise only focused, matching or neighbouring nodes are labelled
Reduced motionfollows the app settingRuns the layout to rest at once (400 steps) and freezes drift and twinkle
Delete / Backspaceon the focused noteAsks the same confirmation as the editor's Delete button

How to use it

  • Hover a neuron: its edges light up and unrelated nodes dim; the footer shows its title with "Open" and "Delete" buttons.
  • Click to select a note (the active note is drawn white), double-click to open it in the editor.
  • Drag a neuron to reposition it; the simulation reheats around it and settles again. Drag the background to pan.
  • The footer counts "{notes} notes · {links} links", where links exclude tag edges.

Limits or pitfalls

  • Tag nodes are derived: they cannot be opened or deleted; only note neurons can.
  • A title shorter than 4 characters never produces a mention edge; use an explicit [[Title]] link instead.
  • Two notes with the same title: only the first registers for link resolution.
  • The graph never deletes on its own: deletion is confirmed by the Notes panel with the same dialog as the editor.

This page in other languages

Frequently asked questions

Why are two notes not connected?
Neither body contains [[Title]] pointing at the other, no body cites the other's title (at least 4 characters), and they share no tag, or tag nodes are switched off.
Can I delete a note from the graph?
Yes: hover or select it, then press Delete or the footer's Delete button. The Notes panel asks for confirmation; the graph itself never erases anything.
Why does the starfield not zoom with the notes?
By design: the sky is drawn in screen coordinates with parallax by depth, so it stays behind the graph instead of reading as a texture glued to it.

Keep reading