colorpulse62k downloadsRender your vault as an animated 3D anatomical brain.
Install Brain Atlas from the Obsidian community plugin directory
Brain Atlas is an Obsidian plugin that renders your vault as an animated 3D anatomical brain. Notes become nodes, links become neural pathways, and note types are grouped into brain regions.
Brain Atlas is designed primarily for desktop Obsidian. Mobile support is experimental and depends heavily on vault size, device GPU, and Obsidian's mobile canvas performance. On phones and tablets, use the Mobile preset to cap rendering load, reduce label density, and keep touch interaction more predictable.
The animated preview below uses synthetic demo vault data.


This release replaces the Canvas2D path on desktop with a hand-rolled WebGL2 renderer, cutting idle-rotation CPU usage by roughly 70%. Canvas2D remains available as an automatic fallback on mobile, when WebGL2 is unavailable, or after a context loss event. A new Renderer setting lets you force either backend.
Renderer setting: Auto (default), WebGL2, or Canvas2D.This release focuses on making Brain Atlas work with real vault taxonomies instead of requiring users to rename notes, folders, tags, or frontmatter.
type:wiki=source.type:person=temporal.Wiki=occipital or Channels=frontal.DAYLIGHT, Balanced, or Battery saver settings for light-mode and lower-idle-CPU workflows.app.metadataCache; no separate app or export step.Daylight palette for users who prefer a brighter workspace.Mobile preset, for reducing idle animation frame rate on machines that run hot or small touch devices.Brain Atlas is available in Obsidian's community plugin directory:
https://community.obsidian.md/plugins/brain-atlas
Settings -> Community plugins.Brain Atlas.Download these files from the latest repo version or release:
manifest.jsonmain.jsstyles.cssIn your vault, create:
.obsidian/plugins/brain-atlas/
Put the three downloaded files in that folder.
Reload Obsidian.
Enable Brain Atlas in Settings -> Community plugins.
Open the command palette and run Brain Atlas: Open atlas.
npm install
npm test
npm run build
mkdir -p /path/to/your/vault/.obsidian/plugins/brain-atlas
cp manifest.json main.js styles.css /path/to/your/vault/.obsidian/plugins/brain-atlas/
Then reload Obsidian and enable the plugin.
Run Brain Atlas: Open atlas from the command palette or click the brain ribbon icon.
Controls:
Labels toggles all canvas labels.All restores every region.None dims every region.FRO, PAR, TEM, OCC, CER, and STM toggle individual brain regions.Settings:
Renderer selects the rendering backend. Auto (default) uses WebGL2 on desktop and Canvas2D on mobile. Force WebGL2 or Canvas2D for testing or if WebGL has issues. WebGL2 is GPU-accelerated and uses much less CPU; Canvas2D is the universal fallback.Theme palette includes the light DAYLIGHT palette.Performance preset defaults to Smooth (current) on desktop. Mobile, Balanced, and Battery saver keep interactions responsive while reducing idle redraw rate.Classification report explains how notes were grouped and suggests mappings for unknown frontmatter values.Frontmatter value mappings let existing vault metadata drive categories without renaming fields or values.Folder region mappings help folder-heavy vaults spread notes across anatomical regions.Brain Atlas assigns each note to a lobe using this order:
type:wiki=source.kind, type, or category.#project, #person, #source, #daily, or #index.Projects, People, Sources, Daily, Concepts, or Index.After a note is categorized, optional region overrides can place it in a specific anatomical region without changing its category or color. Region override precedence is:
Projects/Big Idea.md=frontal.type:wiki=occipital.brain_region: temporal.client=temporal.Wiki=occipital.You can edit the mapping in Settings -> Brain Atlas -> Categorization:
Default category controls where unmatched notes go.Infer categories from links lets heavily connected unmatched notes use graph behavior as a hint.Frontmatter fields controls which frontmatter keys are checked for kind values.Frontmatter value mappings accepts one field:value=category pair per line.Tag mappings accepts one tag=category pair per line. Tags do not need #.Folder mappings accepts one folder=category pair per line. Folder names can match any path ancestor.Frontmatter category examples:
type:wiki=source
type:person=person
class:meeting=workThread
You can edit anatomical placement in Settings -> Brain Atlas -> Region overrides:
Frontmatter region keys controls which frontmatter fields are checked for region names.Frontmatter region value mappings accepts one field:value=region pair per line.Tag region mappings accepts one tag=region pair per line. Tags do not need #.Folder region mappings accepts one folder=region pair per line. Folder names can match any path ancestor.Note region mappings accepts one note/path.md=region pair per line.frontal, parietal, temporal, occipital, cerebellum, and stem.Region override examples:
type:wiki=occipital
type:person=temporal
Wiki=occipital
Channels=frontal
Inbox=stem
Use the Classification report in settings when a vault lands mostly in one lobe. It shows note counts by region and classification source, plus unmapped frontmatter values with suggested mapping strings.
Default lobe mapping:
| Region | Notes |
|---|---|
| Frontal | projects, decisions, questions |
| Parietal | concepts, tools, work threads |
| Temporal | people, organizations |
| Occipital | sources, repos |
| Cerebellum | daily notes, incidents |
| Brain stem | indexes, routing notes |
Brain Atlas reads Obsidian's local vault metadata and renders it in a local canvas view. It enumerates Markdown files in the vault with Obsidian's vault API, then uses each note's path, basename, frontmatter, tags, links, and embeds from Obsidian's metadata cache to build the graph. It does not read full note contents, make network requests, upload vault data, or require an account. The WebGL2 renderer executes entirely on the local GPU; no vault data or render output leaves the device.
Because note names and paths appear visually in the graph when labels are enabled, use the Labels toggle before screensharing if your vault contains private note titles.
npm install
npm test
npm run build
During development, you can copy manifest.json, main.js, and styles.css into a vault plugin folder after each build.
Release assets are built and attested by GitHub Actions. Do not upload locally built main.js or styles.css for public releases unless you are intentionally replacing the automated provenance flow.
Update the version in manifest.json, package.json, package-lock.json, and versions.json.
Run:
npm test
npm run build
Commit and push the version bump.
Create and push a semver tag that matches manifest.json, for example:
git tag 0.2.0
git push origin 0.2.0
The Release workflow creates or updates the GitHub release, uploads manifest.json, main.js, and styles.css, and generates artifact attestations for those assets.
For an existing release that needs assets rebuilt or re-attested, run the Release workflow manually with the version input set to the release tag, for example 0.1.5.
To verify release asset provenance locally:
gh attestation verify main.js -R colorpulse6/brain-atlas
gh attestation verify manifest.json -R colorpulse6/brain-atlas
gh attestation verify styles.css -R colorpulse6/brain-atlas
The README animation is generated from synthetic data, not a real vault:
npm run demo:build
open demo/index.html
Generate local Obsidian vaults for checking different user setups:
npm run build
npm run test-vaults:seed
This creates ignored vault folders in test-vaults/brain-atlas/ and installs the current local plugin build into each vault:
01-folder-heavy-raw: sparse tags, broad folders, mostly default classification.02-folder-heavy-configured: same structure with folder category and region mappings.03-frontmatter-heavy-raw: arbitrary frontmatter values such as type: wiki.04-frontmatter-heavy-configured: same structure with frontmatter value mappings.05-tag-heavy-pkm: canonical tag-heavy PKM setup.06-messy-import: imported/UUID-like notes for label-density testing.Open any generated folder as an Obsidian vault, then run Brain Atlas: Open atlas.
Built by Nichalas Barnes, a software engineer and composer. More work at nichalasbarnes.com/projects.
You might also like Cerebro Mycelium, which renders your vault as a 2D living fungal network.
MIT