Engineering case study · Shipped product
Knowledge Nebula
A privacy-first, browser-based application that transforms document collections into explorable 3D knowledge graphs, with AI analysis performed entirely on-device.
Most document tools either keep files private but make relationships hard to inspect, or surface useful connections by uploading the corpus to a hosted service. Knowledge Nebula was designed to keep the core analysis on the user’s device while making every important graph edge explainable.

Product shape
Static web app, desktop builds, and sealed air-gapped buildCore processing
Client-side parsing, OCR, embeddings, similarity, clustering, search, and renderingStorage
Named local workspaces persisted in IndexedDBInterchange
JSON, PNG, share links, and composed OpenUSD stage export01 · Problem
Private research without an inspectable structure
Folders preserve documents, but they hide the relationships between them. Traditional search can retrieve a file, yet it rarely explains how an idea, person, reference, or source connects across a larger corpus.
The requirement was not merely a dramatic graph. Selecting a node needed to open the source, and selecting an edge needed to answer a practical question: why are these documents related?
02 · Architecture
Local-first architecture
The application runs as a client-side product. Heavy ingestion stages move through workers so parsing, embedding, similarity, and layout work do not freeze the interface. Named workspaces persist in IndexedDB, and the default product loop requires no account or hosted backend.
Optional cloud AI is deliberately separate from the core graph pipeline. OpenRouter requires an explicit user choice and key; Ollama points to a user-controlled local server. A sealed air-gapped build enforces a zero-external-host policy for stricter environments.
03 · Graph intelligence
Why the edges are explainable
Connections combine semantic similarity with inspectable evidence such as references, shared entities, extracted topics, and source-code imports. Louvain community detection groups the graph, but the underlying evidence remains visible to the user.
That distinction matters: the visualization is an interface to a queryable knowledge structure, not decoration layered over an opaque embedding space.
04 · Product decisions
A simple core loop with advanced paths at the edges
The primary workflow stays intentionally short: add files, explore the graph, then open and search the underlying documents. Snapshots, watched folders, annotations, optional AI, desktop packaging, and OpenUSD export extend that loop without becoming prerequisites.
The OpenUSD path carries document metadata, relationship evidence, cluster structure, and view variants into USD-aware tools. Original document bytes, full text, paths, and embeddings are excluded from the exported stage.
05 · Outcome
A shipped system with measurable engineering constraints
The project now supports broad document and source-code ingestion, semantic and lexical search, 2D/3D exploration, local workspaces, change tracking, evidence-backed connections, and multiple distribution targets.
The repository includes automated tests, benchmark methodology, security documentation, bundle limits, air-gap verification, and release workflows—so privacy and performance claims are treated as engineering contracts rather than marketing copy.
Explore it yourself