Skip to content

Graph View

The graph view renders your knowledge graph as an interactive network visualisation. You can explore connections between entities, filter by type and time period, and save custom views.

The Verenthia graph filtered to organisations: the toolbar of icon buttons across the top, a 'Showing Organizations' filter chip, the type column on the left with Organization ticked, and a canvas of labelled organisation nodes — Aurelian Empire with 14 connections at the centre, Imperial Legions, Weave Guard, Tharuum Holds, Deepwatch — joined by arrowed edges; the corner reads '38 nodes · 59 edges · 370 hidden by filters'
  • World graph: Shows all entities and relationships in the world. Access via Graph in the world sidebar.
  • Entity graph: Centres on a single entity and shows its neighbourhood. Access from an entity’s detail page.

Four layout options are available in the toolbar:

Layout Best for Description
Force-directed Exploring complex networks Physics simulation with attraction/repulsion. Default for all graphs.
Hierarchical Showing parent-child or rank structures DAG-based with top-down or left-right flow. Minimises edge crossing.
Circular Equal emphasis on all nodes Nodes arranged in concentric rings.
Concentric Entity-focused exploration Centre entity in the middle, surrounding rings by graph distance.

In entity-centred graphs, the depth control sets how many hops from the centre entity to display (1–5). At depth 1, you see only directly connected entities. At depth 5, you see entities up to 5 relationships away.

Big worlds — an imported Azgaar map can hold close to a thousand entities — would grind the layout to a halt if everything rendered at once. The Max selector in the toolbar caps how many nodes load (100 up to 3,000; the default is 500, a comfortable ceiling for most machines). When your world holds more than the cap, a banner tells you the view is truncated so you know you’re seeing a sample, not the whole world — raise the limit, or narrow the filters to bring what you care about into view.

The corner of the canvas keeps a running count of what’s on screen: 128 nodes · 214 edges. The moment a filter is hiding something — a type unticked in the rail, a field constraint, a narrowed temporal window — a third figure joins it: 128 nodes · 214 edges · 1,076 hidden by filters. That figure only shows up while a filter is actually holding something back, so a plain two-part count is your reassurance that nothing in your current filters is keeping the rest of the world out of view. It answers the question a hard filter provokes at a glance: has the world gone missing, or have you just narrowed to a corner of it?

The Time button in the toolbar (the clock) asks which moment you want to see. Live — the world as it stands is the default. The other three choices each pick a moment and ask a question about it:

Choice Shows
At a moment · Alive then Entities that existed at the moment you pick
At a moment · Not yet Entities that hadn’t come into being yet
At a moment · Already gone Entities that had ended by then

Choosing any of them opens the temporal bar along the bottom of the canvas, where you set the moment:

The graph's temporal bar: playback buttons (start, step back, play, step forward, end), a 1x speed menu and a Day step menu, a Point / Range switch with Point selected, the chosen date Ydratha's Tide 12, Year 4922, and a scrubber running from Mythara's Bloom 17, Year 1 to Ydratha's Tide 6, Year 5848

The moment starts on your world’s first date, the earliest date anything in it carries, so in Verenthia it opens on Mythara’s Bloom 17, Year 1 rather than on an empty canvas before anything existed. Drag the scrubber forward from there.

Close the bar with its × to go back to Live.

Shows entities and relationships that were active at a specific moment. Useful for answering “what did the world look like on this date?”

Shows entities and relationships active during a time span. Useful for seeing everything that was relevant during a war, a reign, or a season.

The temporal bar includes playback controls that step through time:

  • Play/Pause — auto-advance through time
  • Speed — 0.5x, 1x, 2x, 4x
  • Step forward/backward — move by one of your calendar’s own units. The step menu lists them, divisions of the day included, so in Verenthia you can step by Year, Month, Day or a single Bell. It starts on your calendar’s day.
  • Timeline scrubber — drag to jump to a specific point. A moment within a day reads with its time, Mythara’s Bloom 17, Year 1 at Bell 1

Down the left side of the graph sits a column listing every entity type in your world, each one coloured to match its nodes — it’s the same column that doubles as your colour key, so ticking a type here is also how you’d look up what a colour means.

Types are grouped the way you’ve grouped them in Manage → Entity Types, in the order you put them in — see Organising Your Entity Types. A type you haven’t filed into one of your groups sits under Custom Types. On the rare occasion your groups can’t be loaded, the column simply lists every type alphabetically instead, so you’re never left without it.

A search box at the top of the column finds a type by name — handy once a world has a couple of dozen of them. It also matches the short id a type is stored under, so typing magic_system finds Magic System. Relationship types are searched by name.

Each type shows as a checkbox — uncheck types you want to hide. Nothing checked shows every type, and the column says so while that’s the case. When you filter entity types, the available relationship type filters update automatically to show only types that connect the visible entity types.

A type carrying field conditions shows the number of conditions beside its entity count, so you can see at a glance which types are narrowed without opening the filter bar below — see Field-based filters for how to add one.

A type with nothing loaded in the current graph is greyed out and can’t be checked, because checking it could only ever produce an empty canvas.

Toggle which relationship types are visible. The search box at the top of the column narrows this list too, by name. Filtered by the currently selected entity types — only types that can connect visible entities are shown.

Many relationship types hold several kinds. Member of covers a guild’s Leader, its Officers and its rank-and-file Members; Created covers things born, built and crafted. To narrow a type down to some of its kinds, click the arrow beside it in the column. The list shows every kind its links on the graph carry, each with a count, and Unspecified for links that were never given a kind.

Untick a kind to hide just those links; the rest of the type stays. Unticking Leader under Member of leaves the Officers and Members in place, and unticking Unspecified hides only the links nobody gave a kind. While any kind of a type is hidden, the type’s row says how many are showing, such as member of (19 of 20 kinds).

Kinds and the type checkboxes work together: a type you’ve left out hides all of its kinds, and a kind you’ve hidden stays hidden when its type is the one you’re looking at. Clear at the top of the section brings back every type and every kind.

Kinds are matched regardless of capitals, so Leader and leader (which can happen when links come from an import) count as one kind.

The kind list lives in the column, so it’s on screens wide enough to show it. On a narrower screen the toolbar’s relationship filter works by type only, though a saved view or a shared link with hidden kinds still applies them.

The Mentions toggle in the toolbar (icon: 📄) overlays the content units (scenes, articles, sessions — whatever your content types are) that your visible entities are mentioned in.

When enabled, each mentioned content unit appears as a distinct dashed, rounded-rectangle node (clearly different from the circular entity nodes), connected to the entities it mentions by a mentioned in edge. This lets you see, at a glance, which documents reference a character, location, or item — and which entities tend to appear together in the same scenes.

Click a content-unit node to open its details in the sidebar (title, narrative importance, word count, summary) with an Open in Editor button that jumps straight to that document.

The Reverse toggle in the toolbar (icon: ↔) controls how asymmetric relationships render.

For an asymmetric relationship like A is a member of B, MythTapestry stores two edges in the graph database:

  • A primary edge from A to B with the type MEMBER_OF
  • An auto-created reverse edge from B to A with the type HAS_MEMBER

This lets each side describe the relationship in its own language (“I’m a member of B” vs “I have A as a member”) without you having to author both directions.

Off (default): Typically only the primary edge renders, so you see one arrow per logical relationship and the graph’s edge count agrees with the entity’s relationships list. (Legacy edges authored before the dual-edge architecture pre-date the is_primary flag and remain visible — if your world predates this change, you may still see both directions for some relationships.)

On: Both edges render. You’ll see two arrows between the connected entities — one labeled with the forward name (Member of) and one with the reverse name (Has member). Useful when you want both perspectives visible at the same time, or when debugging unexpected results.

The same toggle exists on the entity detail → Relationships tab (button labeled “Reverse edges”). It controls the relationship list and the embedded graph view together. Both views agree within whichever mode you’ve selected.

Symmetric relationships (e.g., Allied with, Married to) only ever have one edge; the toggle has no visible effect on them.

For advanced filtering, add field constraints that filter entities or relationships by their property values. Field constraints appear as a chip bar below the main controls — click a chip to edit its operator or value.

  1. Click the + button on an entity or relationship type chip to open the constraint editor.
  2. Choose a field from the dropdown (e.g. name, status, a custom attribute).
  3. Choose an operator (see table below).
  4. Enter a value in the text input and press Enter to confirm.
Operator Applies to Example
equals Text, numbers status equals “active”
not equals (≠) Text, numbers status ≠ “inactive”
contains Text name contains “council”
not contains Text name not contains “draft”
starts with Text name starts with “the”
ends with Text title ends with “lord”
regex Text name regex “^Lord\s”
= / ≠ Numbers age = 25
> / ≥ Numbers age > 100
< / ≤ Numbers level < 5
between Numbers level between 1 and 10
in Enum / select fields class in “warrior; mage; rogue”
not in Enum / select fields class not in “civilian”
related to Reference fields mentor related to “Seraphine”
not related to Reference fields faction not related to “Empire”
is empty / is not empty All types description is not empty
is true / is false Boolean fields is_active is true

Text operators (contains, equals, starts with, ends with, and their negations) are case-insensitive by default. Typing v will match “Valentina”, “village”, and “VAULT”.

OR alternatives within a filter (semicolons)

Section titled “OR alternatives within a filter (semicolons)”

To show entities matching any one of several values, enter your terms separated by semicolons in the same value field:

  • Type valentina; grand inquisitor in a name contains constraint → matches entities whose name contains “valentina” or “grand inquisitor”.
  • Press Enter, Tab, or type a semicolon to commit each term as a separate chip inside the input.
  • Click the × on any chip to remove that term.
  • Each term is independently case-insensitive.

When a type filter has more than one field constraint, the field logic setting (AND / OR, shown in the toolbar) controls how they are combined:

  • AND (default) — an entity must satisfy all constraints to appear.
  • OR — an entity appears if it satisfies any constraint.

This combines with the semicolon OR within a single constraint: name contains "valentina; grand inq" is an OR within that one constraint, applied regardless of the global AND/OR setting.

Open Graph Settings and choose the Appearance tab to change how a type of entity looks on the graph. Everything you change shows straight away — on the graph behind the panel and on the preview at the top of the tab, a single node drawn exactly the way the graph draws that type. The preview is there for when the panel covers the part of the graph you care about.

Pick the type with Entity type, then:

  • Colour — Type default is the type’s own colour. The six swatches beside it are the palette every type is drawn from, so you can give Factions the colour your Organizations already use, say. These swatches follow your theme: switch from a dark theme to a light one and a node you painted with the green swatch stays the light theme’s green, not a washed-out copy of the dark one. The last swatch, Custom (the +), takes any colour as a hex code, like #4A90E2.
  • Size by — Connections makes the most connected Characters the biggest; it’s what every type does until you say otherwise. A field sizes by a number you track, such as a Character’s age or a Settlement’s population. Fixed draws every node of the type at one size.
  • Label — show or hide the name, put it inside, above, below, left or right of the node, and set its size.
  • Show type icon — the type’s icon inside the node.
  • Reset Character to default puts that one type’s appearance back the way it started. It leaves your visual rules alone.

Advanced ›, at the bottom of the tab, holds everything else: visual rules, which field the label shows and its colour, border width, where the icon sits and how big it is, what the hover popup lists, edge actions, and the canvas. ‹ Appearance takes you back with the same type still selected.

The canvas is the background behind the graph. Theme default, Deeper and Softer each come from your theme, so they suit whichever theme you’re using. The choice applies to every graph you open. If you picked a plain colour such as white with the old settings, it keeps showing — as Custom — until you choose one of the three.

Visual rules size or fade the nodes of one type by a number. They live under Graph Settings → Appearance → Advanced, and each one reads as a sentence: Characters sized by Population, Locations faded by connections.

  • Click a rule to tune it. A size rule has a smallest and largest size in pixels; an opacity rule has a lowest and highest opacity between 0 and 1.
  • Scale decides how values spread across that range: Linear for evenly spread numbers, Logarithmic when a few values are far bigger than the rest, Square root in between.
  • When the field is empty draws entities that have no value at the default size, or hides them.
  • The switch beside a rule turns it off without deleting it; the × removes it.

Add a rule with the form underneath the list: choose Size or Opacity, the type, then the field. Connections — how many relationships an entity has — is always on offer, even for types with no number fields. While any rule is on, the Appearance tab carries an Active badge.

Each node’s name can be tinted independently of the node itself, from Graph Settings → Appearance → Advanced → Label details.

Left on Auto (the default), names follow your theme: readable against the bare canvas when the name sits outside the node — above, below, left, or right of it — and switched to white when the name sits Inside, where the node’s own colour is right behind it. Choose Custom and pick a colour, and the name is drawn in that colour wherever it’s positioned.

Save your current graph configuration — filters (including any hidden kinds of relationship), depth, layout, temporal mode — as a named view that you can restore later.

  • Create: Save current state with a name and optional description
  • Apply: Restore all settings from a saved view
  • Update: Overwrite a saved view with current settings
  • Set as default: Automatically load this view when opening the graph
  • Delete / Rename: Manage saved views

Each view in the list carries a coloured dot and a line describing what it actually does — Characters + Organizations · depth 3, or All types for a view that narrows nothing. The name is what you called it; the line underneath is what you’ll get, so you can pick the right one without applying three of them to find out. It mentions the types the view filters to, how many conditions narrow them, how many kinds of relationship it hides, the depth when it isn’t the usual two, and whether the view is pinned to a moment or a stretch of time.

The dot is just a marker to find the same view by twice — it’s picked for you and stays put.

Saved views are stored per world, so different worlds can have different default views.

Toggle compact mode to reduce the toolbar to a single condensed line. This gives more screen space to the graph while keeping all controls accessible via dropdowns. Compact mode is enabled by default.

The Fullscreen button in the graph header expands the graph to fill the entire window, hiding the app’s top navigation and the world sidebar. The filter toolbar stays in place, and the details sidebar still opens when you select a node or edge — so you keep every control while gaining the maximum amount of canvas.

Available on both the world graph and the entity-centred graph. Press Esc or click Exit to return to the normal layout.

Action Effect
Click node Select node — it grows and the links running to it brighten, and the details sidebar opens (content-unit nodes show document details with an Open in Editor button)
Click edge Select edge and show relationship details
Double-click node Centre and zoom in on that node
Ctrl/Cmd + click node Navigate directly to entity detail page (no effect on content-unit nodes)
Right-click Context menu (create entity, create relationship, focus, delete)
Drag node Reposition it in the layout
Box select Click and drag on empty space to select multiple nodes
Scroll wheel Zoom in/out
Fit to view button (or 0) Zoom out until everything shown fits on the canvas. A world of a few hundred entities can need 10% zoom or less to fit; with a filter on, it fits only what the filter leaves
Click + drag background Pan the view
Shortcut Action
Ctrl/Cmd + E Toggle edge actions mode (hover nodes to see quick-create actions)
Ctrl/Cmd + Shift + E Open bulk entity creation modal
Esc Exit fullscreen mode

When edge actions are enabled (via the toolbar toggle or Ctrl+E), hovering over a node reveals action buttons on its edges. Click these to quickly create relationships between entities without opening a separate dialog.