Inspiration

Browser history is fundamentally broken. Every article, paper, and documentation page you read disappears into a chronological void. I wanted semantic navigation—finding related content by meaning, visualizing knowledge connections, and making browsing data actually explorable.

What it does

Ori automatically converts browsing history into an interactive 3D knowledge graph using fully on-device AI. It extracts topics from pages, generates 768D embeddings, and positions semantically similar concepts near each other in 3D space. Semantic search finds relevant content across time with 0.8 similarity threshold. RAG provides contextual insights from browsing patterns. Zero external APIs.

How we built it

Chrome Canary's experimental Gemini Nano APIs (Prompt API, Summarizer API) for on-device generation. Transformers.js with embeddinggemma-300m-ONNX running in WASM via offscreen document to bypass service worker WASM limitations. PCA reduces 768D to 100D, UMAP reduces to 3D coordinates. Graph construction uses topic merging at 0.92 similarity threshold and edge creation at 0.86 threshold. React + TypeScript + Vite, three.js for visualization, Dexie for IndexedDB storage.

Challenges we ran into

Service workers cannot run WASM—required implementing offscreen document pattern to host the embedding model. UMAP recomputation on the full graph causes significant lag as node count increases. Tuning similarity thresholds for topic merging and edge creation required extensive experimentation. Automatic extraction generates noise from dynamic pages—needed hybrid auto/manual extraction mode. React 19 StrictMode double-executes effects, causing stream reader locking errors.

Accomplishments that we're proud of

Fully local AI with complete privacy. 768D embeddings successfully reduced to meaningful 3D positions preserving semantic relationships. Topic merging algorithm builds coherent graph structure incrementally. RAG generates useful insights by combining semantic search with context-aware generation. All processing happens in-browser with no server dependency.

What we learned

Chrome extension architecture with experimental AI APIs requires careful design around service worker constraints. Semantic similarity thresholds critically impact graph topology and quality. Privacy-first AI is technically feasible and performs well with current browser capabilities. Offscreen documents enable powerful WASM-based ML in extensions.

What's next for Ori

Optimize graph rendering with incremental UMAP updates instead of full recomputation. Improve automatic extraction reliability for edge cases and dynamic content. Add temporal visualization showing knowledge evolution over time. Integration with note-taking tools and PKM systems. Export graph structures for external analysis. Support for custom embedding models and dimensionality reduction parameters.

Built With

  • chrome-gemini-nano-apis
  • dexie.js
  • gemmaembeddingmodel
  • ml-pca
  • onnx-runtime
  • react-19
  • tailwind-css
  • three.js
  • transformers.js
  • typescript
  • umap-js
  • vite
Share this project:

Updates