Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Terrain Graph

GUXGUX207 downloads

把关系图谱渲染成 3D 山峰等高线图:链接越多的文档海拔越高,联系紧密的文档聚成一座山,最高连接数的文档是主峰。

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

English | 中文

Render your Obsidian link graph as a 3D tilted mountain contour map: the more links a note has, the higher its peak; tightly connected notes cluster into one mountain; the most-linked note is the main peak of the whole range.

Preview

Full view

Selection highlight

Features

  • Altitude = link-count level: link counts are log-normalized and quantized into N levels; equal link counts share the same altitude
  • One mountain per community: label-propagation (LPA) community detection groups tightly linked notes into a single mountain, with valleys between ranges
  • Layout follows the official graph view: mountain positions come from the same d3-force simulation the built-in graph uses (forceX/Y, charge, link, collision), with parameters read from your vault's graph.json; the layout is stable across opens
  • Realistic terrain: weighted Gaussian upper-envelope height field + Everest-region DEM shaping + fBm/ridge-noise micro-terrain; contours extracted with Marching Squares, then Douglas-Peucker + Chaikin smoothing
  • Filled surfaces with lighting: contour rings are filled, hillshade lighting, painter's algorithm depth sorting so near mountains occlude far ones
  • Adaptive circular canvas: radius scales with node/edge count, edged with a thin gold ring
  • 3D interactions: drag to rotate, scroll to zoom, double-click to reset, click to open a note, right-click to deselect
  • Selection highlight: clicking a node lights up its direct neighbors in gold (optional)
  • Main peak marker: the highest-degree note is marked with a star at the center
  • Settings panel: official-graph-style, all settings auto-saved

Install

Manual

  1. Copy manifest.json, main.js, styles.css from plugin/ into .obsidian/plugins/terrain-graph/ in your vault
  2. Obsidian → Settings → Community plugins → enable Terrain Graph
  3. Open the view from the left sidebar icon, or run the command "Open terrain graph"

BRAT

Install BRAT and add this repository.

Usage & Settings

Click the gear button in the top-right of the view to open the settings panel:

Setting Description
Levels Number of contour levels (altitude layers)
Mountain width Horizontal width of each mountain (Gaussian bandwidth)
Min links Notes below this degree are demoted in display
Ghost low-degree nodes Keep low-degree notes as faint dots
Show attachments / orphans / unresolved Which node types appear (mirrors the official graph)
Docs / Names Show document markers and name labels
Highlight selection Light up direct neighbors when a node is selected
Relayout / Reset Re-run the force layout / restore defaults

Interactions: drag to rotate, scroll to zoom, double-click to reset, click to pin a selection (gold 1-hop highlight), right-click to deselect, hover for a note card. The bottom-right corner shows the selected note and node/edge/group/level statistics.

Development

cd plugin
npm install
npm run build    # type-check + bundle main.js
npm run dev      # watch mode

main.js bundles d3-force, so there are no runtime dependencies to install separately.

Structure

terrain-graph/
├── plugin/              # Obsidian plugin
│   ├── manifest.json
│   ├── main.js          # build output
│   ├── styles.css
│   └── src/             # TypeScript source
│       ├── main.ts      # plugin entry, settings panel, view registration
│       ├── graph.ts     # graph building, community detection
│       ├── terrain.ts   # force layout, height field, contours
│       ├── render.ts    # 3D rendering, interactions
│       └── everest.ts   # Everest-region DEM data
├── docs/                # screenshots
├── LICENSE
└── README.md

Credits

  • Layout engine d3-force (MIT)
  • DEM data from SRTM (Everest region)

License

MIT

HealthExcellent
ReviewCaution
About
Render your Obsidian link graph as a 3D tilted mountain contour map where link counts become peak altitudes and tightly connected notes form mountains. Preserve the official graph layout, display contour-filled terrain with hillshade lighting, interactive rotate/zoom and click-to-open notes, and mark the main peak.
VisualizationLinks
Details
Current version
0.1.1
Last updated
Last month
Created
Last month
Updates
2 releases
Downloads
207
Compatible with
Obsidian 1.4.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
GUXGUXgjckckfc
GitHubgjckckfc
  1. Community
  2. Plugins
  3. Visualization
  4. Terrain Graph

Related plugins

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

Breadcrumbs

Visualise the hierarchy of your vault using a breadcrumb trail or matrix view.

ExcaliBrain

An interactive, structured mind-map of your Obsidian vault.

Strange New Worlds

Reveal networked thought and the strange new worlds created by your vault.

Vault Graph

Your whole vault as one disc: notes packed into folder wedges on a fixed lattice, sized by links, with a growth heatmap, timeline, search and per-folder filters. Deterministic, not force-directed - the same vault always draws the same picture.

Leaflet

Interactive maps inside your notes.

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.

Smart Connections

Find related notes and excerpts while writing. Your AI link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.

Advanced URI

Control everything with URI.

Maps

Adds a map layout to bases so you can display notes as an interactive map view.