A distributed scene graph engine for real-time, collaborative, and interactive data visualization across web, mobile, and desktop—without a cloud dependency.
Graphiti is a self-contained, real-time rendering engine that treats your data as a living, navigable environment rather than static charts or dashboards. Imagine an interactive map of the cosmos where every star is a data point, every constellation is a relationship, and every zoom level reveals a new dimension of insight—all running locally, all syncing across your devices effortlessly. Graphiti is your universe of information, organized and explorable from anywhere.
Unlock the full potential of your data with the first downloadable scene graph engine built for decentralized collaboration.
- No Cloud Tax: Every visualization is computed and rendered on your hardware. Your data never leaves your network.
- Real-Time Sync: Multiple users can manipulate the same scene simultaneously—like a shared 3D whiteboard, but infinitely scalable.
- Self-Hosted Infrastructure: Deploy on a Raspberry Pi, a laptop, or a home server. No third-party APIs, no subscription fees.
- Cross-Platform from Day One: Responsive UI adapts to screens from 4K monitors to foldables. Touch, stylus, keyboard, and gamepad inputs are handled natively.
| Feature | Description |
|---|---|
| Distributed Scene Graph | Every node in your visualization is a first-class citizen that can be edited, moved, or removed in real time by any authorized client. |
| Embedded Query Engine | Filter, aggregate, and transform data on the fly without leaving the scene. Powered by a local WASM-based evaluator. |
| Multilingual Interface | Dashboard and editor tools are localized into 14 languages, including RTL support for Arabic and Hebrew. |
| Offline-First Architecture | Full functionality without internet. Sync your changes when you reconnect—conflict resolution is built in. |
| Scriptable Behaviors | Attach Python and JavaScript scripts to scene objects. Automate updates, animate transitions, or build custom layouts. |
| 24/7 Self-Healing | The engine automatically restarts failed rendering threads, reindexes corrupted data files, and logs diagnostics for local review. |
Visualize gene interaction networks as explorable 3D forests. Each branch represents a pathway, and each leaf is a gene. Zoom to see expression levels, pan to compare organisms.
Render thousands of temperature, humidity, and pressure sensors as a heat map that updates in real time. Pinpoint anomalies by color and depth.
Model global shipping routes as flowing particle systems. Collapse continents into nodes; expand into ports. Watch lead times change as events unfold.
Build a spatial memory palace for your notes. Link ideas by proximity, weight connections by frequency, and journey through your thoughts as a physical space.
Graphiti is built on three interconnected layers:
- Rendering Layer (Vulkan, Metal, WebGPU): Handles all visual output with hardware acceleration across devices.
- Scene Graph Layer (Rust core, optional WASM bridge): Manages the tree of nodes, properties, and transforms. All mutations are transactionally logged.
- Sync Layer (WebRTC, CRDT-based): Propagates changes among peers without a central server. Conflicts are resolved using last-writer-wins with a timestamp oracle.
A daemon process runs on the host machine, listening on a local port for WebSocket connections from client applications. All inter-device communication is end-to-end encrypted.
Once Graphiti is running on your machine, open a browser tab to the local dashboard. From there:
- Create a new scene from scratch or import a CSV, JSON, or RDF file.
- Drag data fields onto the canvas to spawn nodes. Resize, recolor, and reparent them instantly.
- Invite collaborators by sharing a one-time code generated by the sync layer. No account creation needed.
- Publish a scene as a static snapshot (HTML file) that anyone can open without Graphiti installed.
Graphiti exposes a REST API at localhost:3180/api/v1 for programmatic scene manipulation. You can query node state, subscribe to events, and inject new data streams.
// Example: add a new node from an external script
const response = await fetch('http://localhost:3180/api/v1/scenes/1024/nodes', {
method: 'POST',
body: JSON.stringify({ type: 'sphere', radius: 2.5, color: '#ff6644' })
});Scriptable behaviors are stored in the behaviors/ directory adjacent to your user data directory. Write a .lua or .py script that runs on every frame tick or on specific events (click, hover, data change).
- End-to-end encryption for all sync traffic. Keys are generated locally and never transmitted.
- Sandboxed scripting engine: user-scripts run in an isolated context with no filesystem access by default.
- No telemetry: Graphiti does not phone home. Diagnostics are stored locally and can be exported manually.
- Audit log: every mutation to the scene graph is recorded with a timestamp and device ID. Rollback to any prior state.
The interface is built on a custom UI framework that adapts to any viewport. Buttons, sliders, and color pickers are keyboard-navigable, and all interactive elements have ARIA labels. Screen readers can announce changes to the scene graph in real time. High-contrast and reduced-motion modes are natively supported.
Graphiti is released under the MIT License. You are free to use, modify, and distribute this software for any purpose, private or commercial, subject to the license terms.
Graphiti is provided "as is," without warranty of any kind, express or implied. The maintainers are not responsible for any data loss, system instability, or information leakage resulting from its use. Users are responsible for securing their own network and data storage. This project does not rely on any third-party cloud services or external monetization schemes. All data processing and storage occurs on user-controlled hardware.
Begin exploring your own universe of data today. Download the Graphiti engine and run the scene graph server on any supported platform.