Case study · Live knowledge-graph desktop

The problem, the limitations, the infrastructure, and what I learned.

← All projects
LIVE KNOWLEDGE-GRAPH DESKTOP · stable

GRAPH WALLPAPER

Turns an Obsidian vault into a live, force-directed desktop wallpaper that redraws as notes and links change, with the same colors and physics as the real graph view.

javascriptobsidianforce-graphwindows
OUTCOME

An always-current map of the vault on the desktop, driven by Lively Wallpaper.

// problem

The graph view is the best picture of a knowledge base, but it only exists inside an open app window.

// limitations

  • No server. Local files only.
  • Must survive reboots and crashes unattended.

// infrastructure used

  • A generator walks the vault, resolves every [[wikilink]], and reads .obsidian/graph.json for colors and forces.
  • A file watcher re-runs the generator a few seconds after edits stop.
  • The wallpaper page polls the generated data and fades new nodes in without a reload.
  • A restart loop relaunches the watcher if it ever crashes.

// lessons learned

  1. 01
    The graph never stopped drifting.

    Every data poll restarted the physics simulation. It now only reheats when nodes or links actually change.

  2. 02
    Browsers block loading local files.

    A page opened from disk cannot fetch a JSON file, so the generator writes the graph as a script the page loads instead.

  3. 03
    Obsidian's settings didn't fit a screen nobody touches.

    Near-zero repel works when you pan by hand, but on a wallpaper the nodes clumped. A fixed charge and a collision force spread them out.

  4. 04
    A locked log file crashed the watcher.

    Logging is now wrapped so it can't take the process down, and a loop restarts the watcher a few seconds after any exit.

  5. 05
    Updates never reached the screen.

    Lively had copied the wallpaper into its own library, so the regenerated data landed in the wrong folder. The generator now writes to both copies.

View source ↗