2D vector & raster editor that melds traditional layers & tools with a modern node-based, non-destructive, procedural workflow. https://graphite.rs
Find a file
adamgerhant 6d74abb4de
Node network subgraph editing (#1750)
* Breadcrumb visualization, nested network consistency, create definitions for Merge internal nodes

* Add index to network inputs, remove imports usage from flatten network

* Replace NodeOutput with NodeInput::Node

* Fully remove imports field, remove unnecessary identity nodes, move Output node to encapsulating network

* Replace previous_outputs with root_node, fix adding artboard/layer to empty network

* Import/Export UI nodes

* Display input/output types dynamically from compiled network

* Add LayerNodeIdentifer::ROOT_PARENT

* Prevent .to_node() on ROOT_PARENT

* Separate NodeGraphMessage and GraphOperationMessage

* General bug fixes with nested networks

* Change layer color, various bug fixes and improvements

* Fix disconnect and set node input for proto nodes and UI export node

* Dashed line to export for previewed node

* Fix deleting proto nodes and nodes that feed into export

* Allow modifications to nodes outside of nested network

* Get network from Node Id parameter

* Change root_node to previous_root_node

* Get TaggedValue from proto node implementation type when disconnecting

* Improve preview functionality and state

* Artboard position and delete children fix

* Name inputs/outputs based on DocumentNodeDefinition or type, fix new artboard/layer insertion

* replace "Link" with "Wire", adjust previewing

* Various bug fixes and improvements

* Modify Sample and Poisson-Disk points, fix incorrect input index and deleting currently viewed node

* Open demo artwork

* Fix opening already upgraded documents and refactor FrontendGraphDataType usages

* Fix deleting within network and other bugs

* Get default node input from compiled network when copying, fix previews, tests, demo artwork

* Code cleanup

* Hide EditorApi and add a comment describing unresolved Import node input types

* Code review

* Replace placeholder ROOT_PARENT NodeId with std::u64::MAX

* Breadcrumb padding

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-06-02 08:01:56 +00:00
.devcontainer
.github
.vscode Generalize layers as merge nodes to enable adjustment layers (#1712) 2024-04-30 23:03:42 -07:00
demo-artwork Node network subgraph editing (#1750) 2024-06-02 08:01:56 +00:00
editor Node network subgraph editing (#1750) 2024-06-02 08:01:56 +00:00
frontend Node network subgraph editing (#1750) 2024-06-02 08:01:56 +00:00
libraries Node network subgraph editing (#1750) 2024-06-02 08:01:56 +00:00
node-graph Node network subgraph editing (#1750) 2024-06-02 08:01:56 +00:00
proc-macros
website Update website roadmap 2024-06-01 02:38:38 -07:00
.editorconfig
.gitattributes Update Git Attributes for JSON syntax highlighting in *.graphite files (#1752) 2024-05-13 22:35:32 +00:00
.gitignore
.nvmrc
.prettierrc
about.hbs
about.toml
Cargo.lock Node network subgraph editing (#1750) 2024-06-02 08:01:56 +00:00
Cargo.toml Simplify Rust deps that depended on a specific commit hash 2024-03-11 00:00:05 -07:00
deny.toml
LICENSE.txt
package-lock.json
package.json
README.md
rustfmt.toml
shell.nix Loosen the Graphene type system to allow contravariant function arguments (#1740) 2024-05-07 16:36:25 -07:00

Graphite logo

Redefining state-of-the-art graphics editing

Graphite is an in-development raster and vector graphics package that's free and open source. It is powered by a node graph compositing engine that fuses layers with nodes, providing a fully nondestructive editing experience.

Presently, Graphite is a lightweight vector graphics editor that runs in your browser. Its node-based compositor lets you apply image effects and co-create art with generative AI.

Photo editing, digital painting, desktop publishing, VFX compositing, and motion graphics are additional competencies planned on the roadmap to make Graphite a highly versatile content creation tool.

Launch the latest alpha release of the Graphite editor and learn more at the project website.

Please remember to star this project here on GitHub!

Vector artwork: "Red Dress"

Red Dress (click to open this artwork and explore it yourself)

Vector artwork: "Valley of Spires"

Valley of Spires (click to open this artwork and explore it yourself)

Discord community

Join our Discord community to chat with the community and development team. Feel free to lurk, ask questions, give suggestions, or get involved in the project. We are always seeking new collaborators to help test, design, and develop the software and this is where we communicate.

Building/contributing

We need Rust and web developers! See instructions here for setting up the project and getting started.

We are also in search of artists to create beautiful sample work in Graphite and illustrations for the website and social media. Please get in touch if you are able to help out.

By submitting code for inclusion in the project, you are agreeing to license your changes under the Apache 2.0 license, and that you have the authority to do so. Some directories may have other licenses, like dual-licensed MIT/Apache 2.0, and code submissions to those directories mean you agree to the applicable license(s).

Features and roadmap

See the web page for this information.

Support the project

Please consider pledging a monthly donation. Your contribution helps sustain this volunteer-run open source project and brings powerful, free creative tools to the masses.