JusVibin47 downloadsA fluid, orbiting 3D constellation of your notes, coloured by folder, with keyboard and screen-reader support.
A fluid, slowly orbiting 3D map of your notes for Obsidian. Notes glow as points of light, coloured by folder (or tag). Clusters swirl around their own centres and drift past one another, like a screensaver for your vault, while the camera slowly circles. Everything is built to stay usable: full keyboard control, screen-reader announcements, a searchable note list, a colour-blind-safe palette, a high-contrast mode, and no motion at all if your system asks for reduced motion.
Early release. Listing and install details: Constellation Graph on the Obsidian community site.
| Action | Result |
|---|---|
| Drag | Orbit |
| Scroll | Zoom |
| Click a note | Select it and fly to it |
| Drag a note | It follows your pointer, its linked notes are tugged along, and on release everything springs back into place with a small bounce |
| Double-click, or Ctrl/Cmd+click | Open the note (Ctrl/Cmd+click opens a new tab) |
| Click empty space | Deselect |
| Button | What it does |
|---|---|
| Search | Highlights matching notes and lists them |
| Pause / play | Stops or resumes all motion |
| Reset view | Frames the whole graph again |
| Animate | A timelapse: every note disappears, then returns in the order it was created, and each link flashes as it forms. Press again to stop |
| Supernova | Everything is crushed into a point, detonates in one soft flash, re-forms from scratch, and a wave of light then runs outward along the shortest paths from the most-connected note (or the note you have selected). Press again to stop |
| Note list | A searchable list of notes, an alternative to the canvas |
| Help | Keyboard shortcuts |
The graph area is focusable. Press ? for this list in the app.
| Key | Action |
|---|---|
| Left / Right | Previous / next note |
| Up / Down | Step through the selected note's connections |
| Enter (Shift+Enter) | Open the selected note (in a new tab) |
| Space | Pause or resume motion |
| A | Animate (timelapse) |
| N | Supernova |
| R | Reset the view |
| L | Show or hide the note list |
| / | Focus search |
| Esc | Clear selection, close a panel |
Open on startup (off by default; saved in the vault, so it applies to anyone who opens it), flow (off, calm, lively), camera rotation and speed, glow and bloom, palette, label size and count, grouping (folder, first tag, none), folder depth, excluded folders, whether to show notes with no links, and whether to ring the open note.
No network access, no telemetry, no remote code. Everything, including Three.js, is bundled into main.js. Note titles are only ever written as text, never as HTML. The plugin reads your notes' names and links (from Obsidian's own index) and, when grouping by tag, their first tag. It does not read note contents or write to your vault.
Rendering uses point sprites and line segments rather than a mesh per note. A tick of the layout engine costs more as the vault grows, so above a few thousand notes it uses cheaper repulsion and runs at a lower rate when frames get slow, and the bloom pass is dropped first on slow machines. When nothing is moving (motion off or paused, and the camera at rest) it draws nothing.
npm install
npm run dev # esbuild watch, writes main.js
npm run build # type-check, then minified production main.js
npm run harness -- "<path to a vault>" # builds dev/harness.html, a browser preview using that vault's notes as mock data
npm run install-local -- "<path to a vault>" # build and copy into <vault>/.obsidian/plugins/constellation-graph
Source layout: src/main.ts (plugin), view.ts (Obsidian view), data.ts (vault to graph), app.ts (UI, keyboard, accessibility), renderer.ts (Three.js), sim.ts (layout and flow), fallback.ts (no-WebGL mode), settings.ts, palette.ts.
MIT, see LICENSE. The bundled main.js includes:
Full licence text for each travels with its package under node_modules and is preserved at the end of main.js.