How ljz933881/orbitgraph works
1. Purpose and deployment boundary
Orbitgraph is an Obsidian desktop plugin that renders a two-ring knowledge graph: inner-ring knowledge points and outer-ring questions. It is deployed directly into an Obsidian vault plugin directory as three distributable artifacts: main.js, manifest.json, and styles.css.
2. Plugin entry and host integration
main.js is the runtime entry point loaded by Obsidian; it owns plugin lifecycle, vault-facing behavior, graph generation, and optional AI feedback integration. manifest.json declares the plugin to Obsidian and sets its compatibility/identity boundary. The plugin requires Obsidian 1.4.0+.
Paths: main.js, manifest.json
3. Vault-as-database model
The Obsidian vault is the primary data store. Rather than maintaining a separate backend, Orbitgraph derives nodes, links, colors, and statistics from notes organized under repository-defined field, directory, and naming conventions. Those conventions are the contract between user-authored Markdown content and the graph pipeline.
Paths: 建库规则.md, main.js
4. Graph construction and visualization
The core visualization stage classifies vault content into two semantic node classes—knowledge points and questions—then connects them into concentric rings. Rendering uses Canvas with d3-force, implying a force-layout computation boundary separated from the final canvas drawing layer. styles.css supplies the Obsidian UI/visual styling surrounding the graph surface.
Paths: main.js, styles.css
5. Dashboard/query integration
A homepage dashboard capability depends on the external Dataview community plugin. Orbitgraph enables Dataview JavaScript queries, making Dataview the query/execution layer for dashboard-oriented vault summaries while Orbitgraph remains responsible for plugin orchestration and presentation.
Paths: main.js, manifest.json
6. Optional AI correction loop
AI grading is intentionally optional and desktop-only. The integration boundary is a Claude conversation plugin (for example, Claudian) plus the locally installed Claude Code CLI. This keeps AI execution outside the core graph runtime and allows the knowledge/question graph to function without external AI services.
Paths: main.js, README.md
7. Material external dependencies
The architecture depends on: Obsidian as host/runtime and vault API; Canvas and d3-force for graph rendering/layout; Dataview for dashboard JavaScript queries; and optionally a Claude-compatible Obsidian plugin plus Claude Code CLI for grading. No separate server, database, or web application is indicated.
Paths: main.js, README.md
Components 13
Obsidian Plugin Package
- Plugin Manifest · Declares plugin identity and Obsidian 1.4.0+ compatibility.
manifest.json - Plugin Styles · Styles UI around the graph surface.
styles.css - AI Setup Guide
README.md
Orbitgraph Runtime
- Plugin Entry · Owns lifecycle, vault behavior, graph orchestration, and integrations.
main.js - Vault Conventions · Field, directory, and naming rules define graph semantics.
建库规则.md - Content Classification · Derives knowledge-point and question nodes from vault content.
main.js - Two-Ring Graph Model · Connects inner knowledge points with outer questions.
main.js - Force Layout · Computes node placement before rendering.
main.js - Canvas Renderer · Draws the graph surface.
main.js
Host & Optional Integrations
- Obsidian Vault · User Markdown notes are the graph source of truth.
- Dataview · Executes dashboard JavaScript queries.
- Claude Conversation Plugin · Desktop-only bridge to AI correction workflows.
- Claude Code CLI · Optional local grading executor.
Connections 15
- Plugin Manifest → Plugin Entry: loads
- Plugin Entry → Obsidian Vault: uses vault API
- Vault Conventions → Content Classification: defines parsing semantics
- Obsidian Vault → Content Classification: supplies Markdown content
- Plugin Entry → Content Classification: orchestrates
- Content Classification → Two-Ring Graph Model: creates semantic nodes
- Two-Ring Graph Model → Force Layout: positions
- Force Layout → Canvas Renderer: layout coordinates
- Plugin Entry → Canvas Renderer: presents
- Plugin Styles → Canvas Renderer: surrounding UI styling
- Plugin Entry → Dataview: enables dashboard queries
- Dataview → Obsidian Vault: queries
- Plugin Entry → Claude Conversation Plugin: optional feedback integration
- Claude Conversation Plugin → Claude Code CLI: invokes locally
- AI Setup Guide → Claude Conversation Plugin: documents setup