Armillary

approved

by Peter Frost

A 3D graph view of your vault. Orbit, filter, group and freeze — with the same filters, groups, display and force controls as the core graph. - This plugin has not been manually reviewed by Obsidian staff.

317 downloadsUpdated 1mo agoMIT

Armillary — a 3D graph view for Obsidian

Your vault's graph, in three dimensions. Orbit it, pull notes around, freeze a neighbourhood and look at it from the other side.

Armillary is a drop-in companion to the core graph view: the same filters, groups, display and force controls you already know, rendered in 3D.

Armillary

Orbiting the graph

Why another 3D graph

  • No dependencies, no WebGL. ~700 lines of plain JavaScript drawing to a 2D canvas with its own perspective projection. Nothing to bundle, nothing to ship, no GPU required — it runs the same on an old laptop as on a new one.
  • Feature parity with the core graph. Not a toy view: search, tags, attachments, existing-files-only, orphans, colour groups, arrows, text fade, node size, link thickness, and all four force sliders.
  • Themed by your theme. Colours come from the same CSS variables the core graph uses (--graph-node, --graph-line, --graph-node-tag, --graph-node-attachment, --graph-node-unresolved), so it looks like it belongs in whatever theme you run.

Features

FiltersSearch, tags, attachments, existing files only, orphans
GroupsAny number of colour groups, each with its own query
Colour byFolder, tag or link count — automatic, no queries to write
DisplayArrows, text fade threshold, node size, link thickness
ForcesCentre, repel, link force, link distance
FreezeLock a note's connections on and orbit around them
DepthFog, glow and size falloff so near and far read apart

The controls panel Colour groups and tag nodes

Colour

Colour groups work exactly as they do in the core graph — a query and a colour, as many as you like. On top of that, Display → Colour by will colour the whole graph automatically:

  • Folder — every folder gets its own hue, so your vault's structure appears without writing a single query
  • Tag — coloured by each note's first tag
  • Link count — a cold-to-warm heat map, so hubs stand out from leaves

Coloured by folder Coloured by link count

Hues are derived from the name itself, so a folder keeps its colour between sessions, and both themes get their own lightness so nothing washes out.

Controls

ActionResult
DragOrbit (with inertia — fling it and it coasts)
ScrollZoom
Shift-drag / right-dragPan
Hover a nodeHighlight it and everything it links to
Alt-click a nodeFreeze that highlight so you can orbit around it
Drag a nodeMove it; it stays where you drop it
Click a nodeOpen the note (Ctrl/Cmd-click for a new tab)
Ctrl/Cmd-hoverPage preview popover
Double-clickReset the view and release every pinned node

The graph auto-frames itself until you take the camera over, and leaves a slow drift running when idle so the depth stays readable while you think.

Themes are followed in both directions:

Armillary in a light theme

Install

From Obsidian — Settings → Community plugins → Browse → search "Armillary" → Install → Enable.

Manually — download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/armillary/, then enable it in Settings → Community plugins.

Open it with the ribbon icon, or the command Open 3D graph view.

Notes

  • The search box matches note names, paths and tags, and understands path:, file:, tag:, -negation and "quoted phrases". It does not do full-text content search.
  • Layout is an O(n²) force simulation, comfortable to a couple of thousand notes. Beyond that, turn the repel force down or narrow the graph with a search first.
  • Desktop and mobile both work; on mobile, orbit with one finger.

Development

No build step — main.js is the plugin. Clone into <vault>/.obsidian/plugins/armillary/ and reload.

node test.js

covers the graph model (filters, groups, query parsing, link de-duplication), the force layout, and the camera maths including the drag round-trip.

Licence

MIT — see LICENSE.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.