Graphite features

The current alpha version of Graphite is a tool for vector art and graphic design. It also supports a limited, experimental raster editing toolset. All this is built around a central node graph that stores layer data and provides a basic—but continually improving—procedural design and nondestructive editing workflow which is a unique feature among vector editing software.

Throughout 2024, stay tuned for major performance improvements, a multiplatform desktop app with native rendering speed, and the beginnings of a full suite of raster editing tools.

Layers & nodes: hybrid editing

Graphite combines the best ideas from multiple categories of digital content creation software to redefine the workflows of 2D graphics editing. It is influenced by the core editing experience of traditional layer-based raster and vector apps, the nondestructive approaches of VFX compositing programs used by film studios, and the boundless creative possibilities of procedural production tools daily-driven by the 3D industry.

Classic layer-based image editing is easy to understand, with collapsable folders that help artists stay organized. A variety of interactive viewport tools make it easy to manipulate the layers by drawing directly onto the canvas. On the other hand, node-based editing is like artist-friendly programming. It works by describing manipulations as steps in a flowchart, which is vastly more powerful but comes with added complexity.

The hybrid workflow of Graphite offers a classic tool-centric, layer-based editing experience built around a procedural, node-based compositor. Users can ignore the node graph, use it exclusively, or switch back and forth with the press of a button while creating content. Interacting with the canvas using tools will manipulate the nodes behind the scenes. And the layer panel and node graph provide two equivalent, interchangeable views of the same document structure.

Raster & vector: sharp at all sizes

Digital 2D art commonly takes two forms. Raster artwork is made out of pixels which means it can look like anything imaginable, but it becomes blurry or pixelated when upscaling to a higher resolution. Vector artwork is made out of curved shapes which is perfect for some art styles but limiting to others. The magic of vector is that its mathematically-described curves can be enlarged to any size and remain crisp.

Other apps usually focus on just raster or vector, forcing artists to buy and learn both products. Mixing art styles requires shuttling content back and forth between programs. And since picking a raster document resolution is a one-time deal, artists often choose to start really big, resulting in sluggish editing performance and multi-gigabyte documents.

Graphite reinvents raster rendering so it stays sharp at any scale. Artwork is treated as data, not pixels, and is always redrawn at the current viewing resolution. Zoom the viewport and export images at any size— the document's paint brushes, masks, filters, and effects will all be rendered at the current native resolution.

Marrying vector and raster under one roof enables both art forms to complement each other in a cohesive content creation workflow. (Scalable raster compositing is still in-development.)

Powered by Graphene

Graphene is the node graph engine that powers Graphite's compositor and procedural graphics pipeline. It's a visual scripting environment built upon the high-performance Rust programming language. Its runtime is designed to distribute rendering across CPU cores, GPUs, and network/cloud machines while optimizing for interactive frame rates.

Written in Rust

Always on the bleeding edge and built to last— Graphite is written on a robust foundation with Rust, a modern programming language optimized for creating fast, reliable, future-proof software. Even the GPU compute shaders are written in Rust, enabling reuse of CPU code implementations for nodes.

Roadmap

— Pre-Alpha —

Editor systems; basic vector art tools

— Alpha 1 —

Better tools; node graph prototyping

— Alpha 2 —

Node graph integration in documents

— Alpha 3 —

Stackable adjustment layers
Boolean operations for shapes
Editable nested node subgraphs
Procedurally alterable vector data
New vector 2D renderer (with Vello)
Interactive graph auto-layout
Imaginate (Stable Diffusion node/tool)
GPU-accelerated raster rendering
Infinitely zoomable/panable content
Raw photo processing
Graph data attribute spreadsheets
Timeline with animation channels
Signed distance fields
Lightweight desktop app (with Tauri)
Local file browser for saving/loading
Local fonts access
Rewrite of the basic brush tool

— Alpha 4 —

Variable color swatches
Select mode (marquee masking)
Command palette and context menus
Reconfigurable workspace panels
Stable document format
Outliner panel (node graph tree view)
Shape builder tool
Mesh vector format
Guide mode (construction geometry)
AI nodes and tools (e.g. magic wand)
Hosted compile/render server
Code editor for custom nodes

— Beta —

Internationalization and accessibility
Document history management
Frozen-in-time graph references
Automation and batch processing
Liquify and non-affine transforms
HDR and WCG color handling
CMYK and other color spaces
Asset libraries and marketplace
Advanced typography and typesetting
Predictive graph rendering/caching

— 1.0 Release —

Fully native UI rewrite (with Xilem)
Procedural styling of paint brushes
CAD-like constraint relationships
Responsive design constraint solvers
PDF export
Finer-grain control over SVG export
Portable, embeddable render engine
Distributed graph rendering
Cloud document storage
Multiplayer collaborative editing
Offline edit resolution with CRDTs
SVG animation authorship
Live video compositing
Pen and touch-only interaction
iPad app
…and that's all just the beginning…