Go to file
multisn8 7a52e50a94 Add 'Zoom with Scroll' input navigation scheme to preferences (#1021)
* Add use_scroll_as_zoom field to preference handler

* Add {Create,Delete}Mapping variants to message

* Revert "Add {Create,Delete}Mapping variants to message"

This reverts commit 0ba74754c9fb0c78d0b590c96e1d4fe2cfdd13e7.

* Revert "Add use_scroll_as_zoom field to preference handler"

This reverts commit d30f7c9edfa6d6e156939ca07f4db81f288975fd.

* Add basic scroll_as_zoom mapping

* Create overengineered mapping patch abstraction

* Add (for now passthrough) input layout manager

* Actually handle ModifyLayout messages (untested)

* Add backend preferences <-> layout manager comms

* Add scroll-as-zoom to actual preferences UI

* Rename LayoutManager -> KeyMapping

* Add Input section to preferences and title case

* Add scrollAsZoom frontend handling code (untested)

* Handle frontend <-> preferences comms

* (broken) Move scrollAsZoom persistence into state

* Fix scrollAsZoom having no effect on node graph

* Remove debugging helpers

* Fix confusion between horizontal and vertical

* Rename feature

* Move new message handler into folder

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-02-24 07:18:04 +01:00
.deploy Fix build scripts so a failure returns a nonzero exit code 2023-01-02 22:04:13 -08:00
.github Use cargo nextest and sccache in ci (#1011) 2023-02-08 00:15:41 +01:00
.vscode Fix error spam from Rust-Analyzer due to build scripts 2023-02-03 13:00:55 -08:00
docs Rename the legacy Graphene crate to document-legacy (#899) 2022-12-22 02:12:05 -08:00
document-legacy Selecting an individual anchor point deselects each of the other points (#963) 2023-02-19 23:26:02 -08:00
editor Add 'Zoom with Scroll' input navigation scheme to preferences (#1021) 2023-02-24 07:18:04 +01:00
frontend Add 'Zoom with Scroll' input navigation scheme to preferences (#1021) 2023-02-24 07:18:04 +01:00
frontend-svelte Add 'Zoom with Scroll' input navigation scheme to preferences (#1021) 2023-02-24 07:18:04 +01:00
libraries Bezier-rs: Add self_intersection to subpath (#1035) 2023-02-21 17:08:55 -05:00
node-graph Add "Blend" node (#1024) 2023-02-23 12:55:32 +01:00
proc-macros Update Imaginate to output bitmap data to the graph via Image Frame node (#1001) 2023-02-11 08:56:31 +00:00
website Fix file paths mentioned in website's Contribute page (#1052) 2023-02-23 02:40:28 -05:00
.editorconfig Move .editorconfig to root for GitHub tab rendering 2021-03-24 14:02:26 -07:00
.gitattributes Add `npm start` script alias for `npm run serve` 2022-01-12 06:14:32 -08:00
.gitignore Restructure GPU compilation execution pipeline (#903) 2022-12-31 02:52:04 +01:00
.gitmodules Add dyn-any as a submodule 2022-08-02 11:52:08 +02:00
.nvmrc Switch to Node.js 16 LTS, upgrade TypeScript, ESLint, and other dependencies (#395) 2021-11-29 03:32:09 -08:00
Cargo.lock Add type checking to the node graph (#1025) 2023-02-15 23:31:30 +01:00
Cargo.toml Groundwork for integrating Specta (#949) 2023-01-28 22:29:38 -08:00
LICENSE.txt Add Apache 2 license 2020-07-12 13:58:50 -07:00
README.md Update project readme and MSRV 2023-01-24 01:33:30 -08:00
about.hbs Do not silently install cargo-about. (#377) 2021-09-19 16:58:04 +02:00
about.toml Fix build scripts so a failure returns a nonzero exit code 2023-01-02 22:04:13 -08:00
deny.toml Restructure GPU compilation execution pipeline (#903) 2022-12-31 02:52:04 +01:00
package.json Port frontend from Vue to Svelte (WIP in separate folder, many bugs) (#964) 2023-01-13 01:05:20 -08:00
rustfmt.toml Upgrade rustfmt to 2021 edition 2021-11-02 20:08:39 -07:00

README.md

Graphite logo

Redefining state-of-the-art graphics editing.

Graphite is an in-development raster and vector 2D graphics editor that is free and open source. It is powered by a node graph compositing engine that supercharges your layer stack, providing a completely non-destructive editing experience.

Graphite is a lightweight vector graphics editor that runs in your browser. Its nascent node-based compositor lets you apply raster effects and co-create amazing art with AI in a non-destructive workflow. Fully-featured raster image editing, and a native desktop application, are current high-level development goals.

Launch the latest alpha version and learn more on the project website.

Please star this GitHub repository to help build momentum.

Discord

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 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.

Design

The #1 priority for the Graphite software is providing a delightful user experience. The UI, UX, and product design is not an afterthought, but is a central guiding light in the software development process.

Below are some mockups demonstrating future goals for the user interface once nodes and raster photo editing is fully available.

Graphite raster UI viewport mockup

Viewport interface mockup showcasing a photo editing project that utilizes Graphite's raster graphics pipeline, one of the upcoming roadmap milestones. Raster editing is not yet supported.

Graphite raster UI node graph mockup

Node graph mockup demonstrating how the layers directly correspond to nodes. Thick vertical (upward) lines represent compositing stacks and horizontal (rightward) links represent data flow connections.

Features/Roadmap

See the web page for this information.