GraphiteEditor / GraphiteEditor/Graphite

Reimplement the node graph UI in the backend

Open
#1,922 1 comment 0 reactions 1 assignee Claimed by @adamgerhant View on GitHub
Performance Web
Dominant language
Rust
Stars
27.2k
Forks
1.3k
Avg merge
20h 5m
Merged PRs (30d)
57

Description

HTML/CSS isn't well suited for our node graph implementation. We need to reimplement all functionality of the UI by building it out of rounded rectangles, icons, strokes, etc. in the backend. Vello will then be able to render this much more efficiently than the HTML/CSS implementation, while also being able to apply certain effects like the frosted glass background that aren't possible in the current web-based UI due to CSS limitations. In addition to helping fix performance and improve styling, this will help remove a bunch of plumbing code and reuse a lot of code that already goes into rendering the artwork within the viewport, which will now simply have a node graph drawn similarly above it. Once this is done, we can begin putting more effort again into the node graph UI for extra features that aren't worthwhile in the soon-to-be-replaced web UI for the graph, which was always a hacky mess to begin with.

There are two possible approaches:
- Directly emitting a Vello scene
- Pro: probably faster
- Pro: possibly more controllable
- Con: requires WebGPU which is an issue until the end of 2024
- Unknown: might be easier *or* harder to implement frosted background blurring
- Emitting the GraphicGroup data describing how the node graph can be rendered (but without the node graph, just the graphical data)
- Pro: backwards-compatible for SVG-based rendering without Vello
- Con: may require additional maintenance burden as we update the graphical data format
- Unknown: might be easier **or* harder to implement frosted background blurring

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.