Chapter 25
How Nodes and Edges Become Visible
A graph is a data structure, but nobody reads database tables. People understand structure from the shape of Nodes and the lines of Edges. Chapter 6 called the View the surface on which the same graph is looked at through different questions. This chapter looks at how that surface is actually built.
1. Two axes that cannot make each other lie
A screen that lets you pick both where you are and how you are looking can express states that do not exist. A screen claiming a state the renderer is not drawing is the worst kind of defect, because everything looks fine.
So the two axes are owned separately and neither can move the other.
| Axis | Question | Held by | Values |
|---|---|---|---|
| Scope | where am I looking | the trail and the address | the whole graph, or the chosen topics |
| Viewpoint | how am I looking | a user preference | 3D, 2D, Timeline, Weave |
The viewpoint never enters the trail. No sequence of gestures can therefore produce a scope the current viewpoint cannot draw; the viewpoint is applied to whatever scope the trail resolves to.
Scope has two levels. The whole graph is a picture in which each topic is one large Node, and below it are the Nodes of the chosen topics and the relations inside them. A third level, narrowing onto one Node as a seed, was removed in August 2026. Going to a Node no longer narrows; it widens to whatever contains it and opens the Node on top.
2. The four viewpoints
| Viewpoint | The question it answers |
|---|---|
| 3D | Where is the center, and what surrounds it |
| 2D | The same question, without a camera to fly |
| Timeline | When did this appear, and what appeared around it |
| Weave | Once the lines are gathered, what is tied to what |
Two were retired, and the reasons constrain what may come back. Walking a graph node by node was tiring, and the rank layout in 2D shows the same topological order with more context. A three-column flow chart made the reader translate thickness into quantity, and the Timeline says the same thing with the count of marks, which needs no scale. Old links naming a retired viewpoint fold to the default rather than failing.
3. Shape is kind
One Node is one mark in every viewpoint, and shape carries its kind in all four. A viewpoint may choose how much of the shape vocabulary it can physically draw; it may not remap it. If the same Node reads as a different kind on a different screen, the meaning shape carries is undone.
Concept and Decision share a shape, because Chapter 10's semantic layer stands in one place. Episode and Record are angular; Bridge is a diamond, neutral about direction; a topic's large Node is a shell around a core; a Node reached from another topic is drawn as its kind's outline only. Size follows the square root of the degree. Scale it linearly and one hub eats the frame.
The rule is not finished when declared. For two days in August 2026, 2D drew every mark as a circle. Its renderer could only draw concentric bands, so the angular shapes and the diamond were translated into band thicknesses, and the document recorded that as the honest ceiling of a six-pixel mark. The ceiling was true only of that construction. After the fix, 2D, Timeline and Weave take their shapes from one function. Before, the rule had been kept by each renderer agreeing, and 2D had quietly stopped agreeing without anything failing. A visual language is finished when the renderer implements the same contract.
4. Lines
Every Edge is a hairline. Width was tried and abandoned: in 3D a wide line becomes a tube mesh, and a weighted graph becomes a tangle of fat translucent pipes. Weight moved to ink density, and what the density carries is the confidence of Chapter 23. For a while that density was wired to a field nobody filled, so every line drew at one density. A channel wired to an unfilled field is worse than no channel.
Direction is an arrowhead on the three directed relations only, placed just outside the target Node's surface and sized from its radius. Placed at a fixed fraction along the line it disappears inside a large hub's mesh.
Edges fall into four kinds by a single classifier: directed, bridge, crossing a topic, and the rest. The legend row, the filter switch and the drawn line share one vocabulary, so the legend cannot describe something that is not on screen. The legend is the filter. What is stored is the list of kinds that are off, not on, so that a kind added later defaults to visible instead of being hidden by an old preference.
5. The closed layer and the open layer
A channel that carries meaning belongs to the specification; a channel that carries emphasis belongs to the user. Every other rule follows from that line.
The reason is sharing. A pack travels between accounts, and if the receiver has remapped shape or colour, they are not looking at the graph the sender saw. The View still renders, so nothing reports it. So the encoding is closed and only its intensity is adjustable.
| Layer | Contains | Owner |
|---|---|---|
| Closed, the encoding | kind to shape, one focus colour, monochrome ink, the cross-topic treatment | the specification. Changing it takes a decision |
| Open, the intensity | viewpoint, size scale, label density, arrowheads, layout preset, orphan visibility, edge-kind filters, topic tint | the user. Stored per machine |
Topic tint uses colour and still sits in the open layer, because it carries no meaning: turn it off and nothing is lost, since place already says the topic. That is the test. A channel may move to the open layer only when the picture is complete without it. The tint ships on. Shipped off, what it produced was not an uncoloured picture but a feature nobody knew existed.
The focus colour is one token. It means “the current focus” and nothing else, and it is never used on an Edge or for a kind. For a while three files each computed their own, and the focus was a different colour on each screen; now every surface reads one name. The values by which everything else recedes from the focus are tokens too: marks to 0.40, lines to 0.12, text to 0.35. Writing a number into view code is banned for the same reason as writing a colour. 3D once hard-coded its own value at four times the canonical one, and nothing caught it.
6. Coordinates come from the sidecar
Layout is computed by pure functions in the sidecar; the client pins the positions it receives and runs no force simulation. This is the one clause untouched by every later layout revision, and it is why two people opening the same pack see the same picture. The principle of Chapter 6 §3 is code here.
There are two presets. There were six.
| Preset | What the coordinate says |
|---|---|
| hub, the default | Where the center is. The root sits at the origin, topics fan out in every direction, and the Concepts under a topic extend along that topic's direction. It reads the topic string as a path |
| rank | What comes before what. The layer axis is global topological order. Topics do not cluster, because lineage crosses topics |
There are two coordinate sets. 2D is not 3D with the depth axis dropped: that would collapse two Nodes separated only in depth onto one point, and one of them would vanish from the picture with no error. 2D lays the same tree out again in a planar grammar.
Dragging a Node is an override for that session. An anchor appears beside it, and a double click releases the Node and the branch that came with it back to their canonical coordinates. The sidecar's coordinates remain the standard.
7. Time is a state
The Timeline viewpoint puts time on the horizontal axis. One interval is one column and one item is one dot, so a column's length is the count at that time; nothing translates a count into a thickness, so it can be checked by counting. It has two bases: the recorded time, close to Chapter 24's graph time, and content time. A Node with no value is absent from the axis, not zero and not today, and a caption says how many were left out. Filling a missing time with a plausible one is how a chart starts to lie.
The validity of Chapter 24, whether you see the claims that hold now or the ones that held then, is not a viewpoint. It is a question of the state of the data, not of the camera or the renderer. The read path already distinguishes it; the screen does not yet draw an interval on any card.
The View is the layer between data and interpretation. Which relations it brings forward and which it sends to the background shapes how a person reads the graph. But every one of these pictures leaves one question unanswered: whose graph is this. That is the next chapter.
Continue with Chapter 26, How Graph Space Gets Created.