GSoC 2026: GPU-Accelerated Brush Engine and integration with Drawing Tablet Input #4195
Replies: 1 comment
-
Week 1This weeks coding was focused on finishing stuff that was originally planned to be done before GSoC. Namely the introduction of Resources, a way to store binary data addressable by content hash alongside the node graph. For context #4148 (was merged before GSoC). The resource system was considered a requirement for my GSoC project because without it auto saves stall the editor every second (when raster content is involved) making any kind of drawing nearly impossible. The following video illustrates that, starting with a graphite version right before the introduction of resources and the second version with my patches applied. untitled.mp4A nice side effect is the reduction in file size (before images where stored as raw pixel data inside the graph). File size reduction for the document in the video from 202.6MB to 18.9MB. #4165 also embeds fonts as resources allowing documents to render without fetching the fonts from the internet first. The rest of my time was spend researching for the brush engine and stroke data format. Looking at things like "Ciallo: GPU-Accelerated Rendering of Vector Brush Strokes". |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Synopsis
Graphite currently has no support for drawing tablets or touch input, and its existing brush tool relies on a slow, CPU-based implementation with no awareness of resolution or zoom level. This project introduces drawing tablet and touch device support as first-class input sources, then builds a high-performance, GPU-accelerated brush engine on top, storing strokes in a resolution-independent format inspired by Graphite's non-destructive philosophy and rendering them to texture via WGSL shaders or another approach if research points to a better path. A final phase connects the two by exposing stylus-specific signals such as pressure and tilt as brush parameters, allowing artists to take full advantage of the engine's capabilities through their hardware.
Deliverables
Beta Was this translation helpful? Give feedback.
All reactions