// the find
GraphiteEditor/Graphite
Community-built comprehensive 2D content creation appplication for graphic design, digital art, and interactive real-time motion graphics powered by a node-based procedural graphics engine
Graphite is a browser-first 2D graphics editor written in Rust/WASM, with a node graph as the actual document model rather than as a feature bolted on top. Everything is nondestructive by default because layers are just nodes — not a UI metaphor over a mutable pixel buffer. It's in alpha and targeting the eventual territory of Illustrator/Photoshop/After Effects, which is ambitious to the point of being a decades-long project.
The node-graph-as-core architecture is the real bet here — it means procedural and nondestructive editing isn't a special mode, it's how the document model works. The editor crate is platform-agnostic Rust with no web dependencies; the WASM and desktop builds share the same logic, which is the right call. GPU raster rendering via wgpu with custom WGSL shaders means they're not bottlenecked by Canvas 2D or SVG rendering performance. OPFS backend for document storage in the browser is a smart choice — persistent local files without a server.
The message-passing architecture has metastasized — the directory tree shows dozens of `*_message.rs` + `*_message_handler.rs` pairs for things like color pickers and clipboard, which is a lot of ceremony for what are essentially event handlers. The desktop app uses CEF (Chromium Embedded Framework), which is a gigantic dependency that makes Tauri look svelte; distributing a full Chromium runtime for a graphics app is a real packaging and update burden. File format interop is essentially missing — the `.graphite` format is proprietary with no mention of SVG round-tripping or PSD import, which limits adoption as a professional tool. The roadmap includes photo editing, motion graphics, and desktop publishing, but 'planned' features shouldn't factor into how you evaluate what's actually there today, and what's there today is still firmly alpha.