Graphite features

The current version of Graphite provides tools for designing vector art and graphic design in SVG format. It also supports some experimental, rudimentary raster editing that is improving rapidly. This page covers where the project is at and where it's heading next.

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.

Layers & nodes: hybrid compositing
work-in-progress

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
1–2 months away

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 may 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 native resolution.

Marrying vector and raster under one roof enables both art forms to complement each other in a cohesive content creation workflow.

Roadmap

— Pre-Alpha —

Editor systems; basic vector art tools

— Alpha Milestone 1 —

Tool upgrades; Graphene prototyping

— Alpha Milestone 2 —

Brush tool
WebGPU accelerated rendering
Layer stack compositing
Graph-based documents
Node-based layer tree
Resolution-agnostic raster rendering
Document history system
Stable document format
Custom subgraph document nodes
Select mode and masking
New viewport overlays system
Self-updating desktop app

— Alpha Milestone 3 —

Graph data attributes
Spreadsheet-based vector data
Editable SVG import
Rust-based vector renderer
RAW photo import and processing
Powerful snapping and grid system
Remote compile/render server
Code editor for custom nodes

— Beta —

Procedural paint brush styling
Frozen history references
Internationalization and accessability
Reconfigurable workspace panels
Liquify and non-affine rendering
Interactive graph auto-layout
Automation and batch processing
Guide mode
CAD-like constraint solver
Constraint models for UI layouts
Advanced typography and typesetting
PDF export
HDR and WCG color handling
Node manager and marketplace
Predictive graph rendering/caching
Distributed graph rendering
Cloud document storage
Multiplayer collaborative editing
Offline edit resolution with CRDTs
Native UI rewrite from HTML frontend

— 1.0 Release —

Timeline and renderer for animation
Live video compositing
Pen and touch-only interaction
iPad app
Portable render engine
SVG animation
…and that's all just the beginning…