3D WebGL vault graph for Obsidian with Iron Man/Jarvis aesthetic
Iron Man-style 3D knowledge graph viewer for Obsidian vaults
Jarvis UI renders your entire Obsidian vault as a living, interactive 3D force-directed graph — nodes float in space, connections bloom with light, and navigation feels like flying through a knowledge system. Built with Three.js, React, and TypeScript.

The full Jarvis UI: 10k+ notes as a glowing point cloud, the settings panel with every shape and control, and a community formation loaded from the Community Cloud.
Nodes appear in the order they were created — watch your knowledge base grow over time.

| Shape | Preview |
|---|---|
| 🧠 Brain — nodes arranged in an anatomical brain mesh | ![]() |
| 🪐 Saturn — sphere + tilted ring for orphan nodes | ![]() |
| 🌌 Milky Way — flat 2-arm Archimedean spiral | ![]() |
| 🌿 Natural — organic force-directed layout | ![]() |
| ☀️ The Sun — hierarchical 3-shell sphere (ultra/super/regular tiers) | ![]() |
| 🌳 Trees — each top-level folder grows as a fractal tree on a ground plane; every branch tip is a note | ![]() |
Trees — every top-level folder becomes a fractal tree rooted on the ground plane: its notes form the canopy, every branch tip is a note, and each trunk is labelled with the folder name. The spread slider grows the whole forest from its fixed bases.
Beyond the built-in layouts, Jarvis UI can map your notes onto community particle formations — swarm shapes published on particles.casberry.in (the “AI Particle Architect”). Each formation is a small per-particle position function stored in a public Firestore collection; Jarvis fetches it, compiles it statically, normalizes its world scale to jarvis units, and lays your notes out on the shape (ordered by importance, so hub notes land in the focal regions). Browse them from the ☁️ Community Cloud flyout in the settings panel — favourite the ones you like, or paste a particles.casberry.in URL.

The Community Cloud flyout — 800+ community formations, searchable, with favourites; each keeps its original publisher’s name.

Notes mapped onto the BLACKHOLE (Gargantua) community formation — an accretion-disc swarm with a polar jet.
Source & credit: community formations come from particles.casberry.in (AI Particle Architect) and remain the work of their individual publishers — Jarvis only fetches, ports, and renders them. Loader / attribution in
src/shapes/casberry.ts.
#tag in search to isolate all notes with that tag; click ✕ to clear/ opens search[ Reset View ] snaps camera back to fit all nodesH to isolate the selected node and its connected neighbours; locks the visible set so clicking other nodes updates the reader without resetting visibility; ESC to exit[[wikilinks]] in the sidebar navigates the graph> [!note], > [!warning], > [!tip], etc. rendered with coloured left borders and icons#tags rendered as styled pill badges; click to filter graph[[note links]] rendered as cyan clickable links; navigates the graph on clickF to bookmark notes; heart icon in reader, persistent pane on rightShift+← / Shift+→ to move back/forward through visited notesdevicePixelRatio for high-refresh displaysgit clone <repo>
cd obsidian-jarvis-ui
npm install
# Set your vault path in .env:
echo "VITE_VAULT_PATH=/path/to/your/obsidian/vault" > .env
npm run dev
Then open http://localhost:5173.
Note:
npm run devstarts both the Vite frontend and the Express API server concurrently. Both must be running — the API server reads your vault.mdfiles and serves the graph JSON.
| Key | Action |
|---|---|
/ |
Open / close search bar |
F |
Toggle favourite on selected note |
ESC |
Close sidebar, dismiss search, clear filters, exit focus mode |
← / → |
Navigate to previous / next note in same folder |
Shift+← / Shift+→ |
Move back / forward through note history |
↑ |
Jump to cluster centre (highest-degree node in folder) |
↓ |
Jump to highest-degree neighbour of selected node |
H |
Enter focus mode — isolate selected node + connected neighbours |
[ |
Collapse all folders to their cluster centres |
] |
Expand all collapsed folders |
| Action | Result |
|---|---|
| Left-click node | Select node, open reader pane |
| Double-click node | Collapse / expand that node’s folder |
| Right-click + drag | Move node and its connected neighbours as a rigid cluster |
| Scroll wheel | Zoom toward cursor |
Override localStorage defaults for testing or sharing specific views:
http://localhost:5173?graphShape=brain&ultraNodeSize=8
| Parameter | Values | Description |
|---|---|---|
graphShape |
brain, saturn, milkyway, natural, sun, centroid |
Override graph shape |
ultraNodeSize |
1.0–8.0 |
Override ultranode size multiplier |
| Variable | Description |
|---|---|
VITE_VAULT_PATH |
Absolute path to your Obsidian vault directory (required) |
Set in a .env file at the project root:
VITE_VAULT_PATH=/home/yourname/Documents/ObsidianVault
.md filesTreeD.js) powering the Trees shape’s branch skeletons, ported to the layout workerSee tracking/tracking.md for full version history.
Prompt-Surfer — prompt-surfer@protonmail.com
AGPL-3.0-only