Open-source project
GraphiteEditor/Graphite avatar
GraphiteEditor/Graphite

GraphiteEditor/Graphite: a node-based 2D graphics engine in Rust, reviewed for adoption

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

27,381 stars1,269 forksRustApache-2.0

At a glance

What is it?
Graphite is a community-built vector and raster editor whose tools sit on top of a nondestructive node graph. It is alpha software, and the code is easier to evaluate than the editor is to adopt today.
Who is it for?
Adopt Graphite today only if you are a Rust or graphics engineer willing to build the workspace from source and treat the editor as an alpha. If you need a dependable daily vector or photo tool, stay with what you already use and wait.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 28, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What problem Graphite is trying to solve, and for whom

Most 2D tools make you choose between two editing models. Layer-based editors are approachable but destructive: once you flatten a shape or apply a filter, the original parameters are gone. Node-based tools keep every operation live but ask you to think in graphs, which is a poor fit for drawing a logo by hand. Graphite's stated goal is to have both. The README describes a fully nondestructive editing workflow that combines layer-based compositing with node-based generative design, and says the editor's tools wrap a node graph core. So the intended user is someone who wants to draw and arrange on a canvas while the operations underneath remain parameters that can be changed later.

The secondary audience is explicit in the README. It asks whether you are a graphics programmer or Rust developer, and points to a volunteer guide for setting up the project. The repository layout supports that framing: this is a Cargo workspace of roughly thirty crates, not a single application, with separate members for the desktop shell, the document format, the node graph, and the editor. If you want a finished consumer product, the README's own word for the current state is alpha.

How the node graph, document model and editor fit together

The workspace members in Cargo.toml are the clearest map of the architecture. Three groups stand out. The first is the document layer: document/format, document/graph-storage, and document/container. The second is the graph layer: node-graph/graph-craft, node-graph/interpreted-executor, node-graph/node-macro, node-graph/preprocessor, plus node-graph/nodes/* and node-graph/nodes/gstd. The third is the application layer: editor, frontend/wrapper, and the desktop/* crates.

That split tells you the data flow. A document holds a graph, the graph is stored and serialized separately from the editor that displays it, and execution happens through an interpreted executor rather than by compiling each graph to native code. The presence of node-graph/nodes/raster/shaders and a shader entrypoint crate alongside a gstd crate suggests two execution paths, one for general nodes and one for GPU raster work. The README's screenshots describe boolean operations and procedural polka dots in one case, and a Mandelbrot fractal filled with a noise pattern in another, which is consistent with nodes producing geometry and fills procedurally.

What the README does not document is the serialization format, the node evaluation order, or how a graph is versioned when node definitions change. Those are the questions an integrator would ask first, and the repository files given here are silent on them.

Building Graphite from source and running a first graph

The README does not inline build steps. It says to see the instructions at graphite.art/volunteer/guide for setting up the project and getting started, and it frames that guide around contributors rather than end users. So the honest first step is to read that page before typing anything.

What the repository does pin down is the toolchain. The workspace manifest sets rust-version = 1.88 and edition = 2024, and the default-members list names the crates that a plain workspace build targets. From the repository root, that means:

bash
cargo build

Expect that command to resolve the default members (editor, frontend/wrapper, the libraries, the graph crates and tools/cargo-run) rather than every member, including the desktop bundles and the shader crates. A full build of all members is a different, heavier invocation.

The README points at a hosted editor as the way to use Graphite now: it links to editor.graphite.art and says the project is available there in alpha. If your goal is to try the editing model rather than to work on the engine, that link is the documented entry point, and no local install is required. The repository also carries a .devcontainer directory and a flake.nix, so container-based and Nix-based setups are represented in the tree, though the README does not describe either.

Where Graphite is the wrong tool right now

The release history is the first constraint. The latest release is labelled Latest Stable (Alpha 4 Release Series) and is dated 2022-02-04. The repository has moved on considerably since then, but there is no newer tagged stable release in the repository. Anyone who needs a versioned artifact with a support story is looking at a four-year-old alpha tag.

The second constraint is scope against the README's own promises. Photo editing, motion graphics, digital painting, desktop publishing and VFX compositing are described as additional competencies on the planned roadmap, with a magazine spread screenshot labelled as a preview of an upcoming focus on desktop publishing. Planned is not shipped. If your work is retouching photographs or laying out a print magazine, Graphite does not yet claim to do it.

The third is build cost. rust-version 1.88 with edition 2024 is a recent toolchain requirement, and the workspace includes GPU shader crates and platform-specific desktop members for Linux, macOS and Windows. That is a real setup burden for a design tool, and it is the kind of burden that only makes sense if you are also there to work on the engine. The README does not document a packaged installer, a package-manager route, or rollback between versions.

How Graphite differs from Blender's compositor and geometry nodes

The closest comparison in kind, not in category, is Blender. Blender's geometry nodes and compositor are also node graphs over a document, and Blender also pairs a conventional viewport with a procedural backend. The difference is what the graph produces. Blender's nodes build 3D scenes, simulation and render passes; Graphite's nodes build 2D vector and raster content, which is the domain of Illustrator, Inkscape or Affinity Designer rather than of a 3D suite.

Against Inkscape, the split is starker. Inkscape is an SVG editor with a mature, stable release process and a large extension ecosystem; Graphite is an alpha application whose editor tools are described as wrappers over a node graph core, and whose differentiator is that generative operations stay live. If your output is a hand-authored SVG that must open identically elsewhere, Inkscape is the safer route. If your output is a design whose parameters you want to keep adjusting, Graphite's model is the more interesting one, provided you accept alpha.

One more structural difference worth noting: Graphite is dual-licensed MIT OR Apache-2.0, the same permissive pair used by much of the Rust ecosystem, while Inkscape is GPL. That matters if you intend to embed the engine rather than use the app.

Maintenance, licence and upgrade cost

The repository is not archived, and the last push was on 2026-09-20. Development is clearly ongoing. That said, the only tagged release is the 2022-02-04 alpha, so the pace of change is visible in the branch, not in releases. Anyone tracking master is tracking an unreleased alpha.

The licence situation is straightforward and permissive. The README states that the source is dual-licensed under your choice of either the MIT license or the Apache License 2.0, at your option, unless otherwise noted within the repository, and that submitting code licenses contributions under both. The workspace manifest confirms license = "MIT OR Apache-2.0" and publish = false. The publish flag means the crates are not intended for crates.io, so consuming Graphite as a library means depending on the repository rather than a registry version. There is a tools/third-party-licenses member, which suggests the project tracks its own dependency licences, but the repository does not describe its output. This is not legal advice; if you plan to redistribute a build, read LICENSE-MIT and LICENSE-APACHE and the per-directory notices yourself.

Upgrade cost is the weak point. With no stable release cadence and an alpha tag from 2022, there is no documented migration path between versions, and the README does not document rollback. Budget for reading diffs.

Editorial conclusion

Adopt Graphite today only if you are a Rust or graphics engineer willing to build the workspace from source and treat the editor as an alpha. If you need a dependable daily vector or photo tool, stay with what you already use and wait. Before committing, verify two things yourself: that the toolchain resolves at rust-version 1.88 with edition 2024, and that the node you need exists under node-graph/nodes rather than only on the published roadmap.

Frequently asked questions

What is GraphiteEditor/Graphite?

It is a free, open source vector and raster graphics engine, described in the README as a comprehensive 2D content creation application with a fully nondestructive workflow that combines layer-based compositing with node-based generative design. The code is written primarily in Rust.

Is Graphite stable enough to use for real work?

The README describes the project as available in alpha, and the latest release is labelled Latest Stable (Alpha 4 Release Series) and dated 2022-02-04. Photo editing, motion graphics, digital painting, desktop publishing and VFX compositing are listed as planned roadmap items rather than shipped features.

How do I build Graphite from source?

The README points to the volunteer guide at graphite.art/volunteer/guide for setting up the project. The workspace manifest sets rust-version = 1.88 and edition = 2024, and a plain cargo build at the repository root resolves the default members listed in Cargo.toml.

What licence is Graphite released under?

The README states the source is dual-licensed under your choice of either the MIT license or the Apache License 2.0, unless otherwise noted within the repository, and the workspace manifest records license = "MIT OR Apache-2.0". Contributions are licensed under both.

Can I try Graphite without building it?

Yes. The README links to a hosted editor at editor.graphite.art and says the project is available there in alpha.

Official sources

  1. GraphiteEditor/Graphite on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/graphiteeditor-graphite.svg)](https://hysenlabs.com/projects/graphiteeditor-graphite)