Timon
2e842cb425
Desktop: fix Mac restart dialog to show all changes to preferences requiring restart ( #3903 )
...
* Desktop: Fix restart dialog on Mac
* Fix
* Fix
* Fix
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-19 02:51:26 +00:00
Keavon Chambers
7f6571ee52
Fix regression from #3834 causing sub-menu lists to close if outside their hover stray distance
2026-03-18 15:53:48 -07:00
Keavon Chambers
187b4c38b4
Port website dev docs generated content scripts from JS to Rust to avoid intermediate parsing ( #3909 )
...
* Remove the crate dependency graph website generation intermediate generation step
* Remove the message system tree website generation intermediate generation step
* Code cleanup
* Remove cache system
* Fix Windows comment URL error
* Fix incorrect artifact download URLs
* Add Flatpak to comment
* Make Flatpak use debug/release mode choice instead of always release mode
2026-03-17 15:02:15 -07:00
Keavon Chambers
d9214c7292
Add the crate dependency graph visualization to the contributor guide ( #3907 )
...
* Add the crate dependency graph visualization to the contributor guide
* Code review fixes
* And more
2026-03-17 01:35:56 -07:00
Keavon Chambers
df8001fca8
Consolidate separate platform CI build workflows and improve !build comment commands
2026-03-16 17:10:00 -07:00
Keavon Chambers
efd142f030
Update, tidy up, and standardize GitHub Actions workflows
2026-03-16 02:49:42 -07:00
Keavon Chambers
f7815d0cd0
Add the build link bisect tool to the website ( #3902 )
...
* Add the bisect tool
* Add `cargo run explore` to open bisect tool
* Website cleanup
* Bug fixes
* Fix again
2026-03-16 02:46:21 -07:00
Timon
4c45c88034
Desktop: Remove CEF CREDITS.html from Windows bundle ( #3889 )
2026-03-14 16:44:38 +00:00
Dennis Kobert
eb30ee78bc
Fix Grapene CLI compilation ( #3892 )
...
* Fix grapene-cli compilation
* Improve cargo features to reduce recompiles
2026-03-13 11:28:34 +01:00
Keavon Chambers
a3f88b0f96
Prep for the RC4 release of the desktop app
2026-03-11 14:53:47 -07:00
Timon
a18b7ff79d
Desktop: Add an 'Enable V-Sync' preference on Mac ( #3887 )
...
* add vsync pref
* account for physical scale in pixel preview passthru check
* change allow to expect attr
* Update user-facing v-sync text
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-11 21:32:37 +00:00
Keavon Chambers
6d0357bbcf
Fix Vello rendering blurry images with a half-pixel offset
2026-03-11 04:48:08 -07:00
Keavon Chambers
81d0b8b8d4
Fix the Eyedropper tool on web with Vello and on desktop with SVG ( #3886 )
2026-03-11 03:26:02 -07:00
Dennis Kobert
116a4106c4
Add texture pool to render cache node ( #3804 )
...
* Add texture pool to render cache node
* Use direct texture copy instead of bitter and fix graphene_cli
* Remove warnings
* Fix wgpu import path
* Code review fixes
2026-03-11 09:44:21 +00:00
Keavon Chambers
2ac82a10b5
Add a workaround for flickering vector mesh rendering produced by the Boolean Operation node ( #3884 )
...
* Add a workaround for flickering vector mesh rendering produced by the Boolean Operation node
* Code review feedback
2026-03-11 08:55:15 +01:00
Dennis Kobert
90533e656f
Remove the path-bool library ( #3882 )
2026-03-11 08:55:03 +01:00
jneem
58aae4f87b
Replace the Boolean Operations node's algorithm with the Linesweeper library ( #2670 )
...
* Attempt one-shot n-ary ops
* Make it not crash
* Try to remove more path_bool
* Add quantization
* Update to latest
* Nits
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-10 22:00:49 -07:00
Timon
095c2a6d47
Add the Pixel Preview render mode ( #3881 )
...
* Add pixel preview render mode
* Fix fmt
* Remove unused sampler
* Remove unnecessary mutex
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-11 02:44:00 +00:00
Timon
35b812ccfe
Desktop: Fix SVG Preview render mode ( #3877 )
...
Desktop: Fix svg preview mode
2026-03-10 12:16:34 +00:00
YohYamasaki
8e52309bb0
Render raster images as outlines in Outline mode ( #3831 )
...
* Render raster images as outlines in Outline mode
* Draw a transformed unit-rectangle stroke instead of raster pixels
* Skip creating blend layers for a raster image in Outline mode
when only blend mode would trigger them
* Rename variable names
* Minor refactor to reduce nesting
* Extract shared outline drawing helper
* Update node-graph/libraries/rendering/src/renderer.rs
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-03-10 11:23:48 +00:00
Kulcode
3a7a5f5953
Fix incorrect transform space for Select tool origin pivot visualization ball ( #3850 )
...
Fix
2026-03-10 11:19:44 +00:00
Jatin Bharti
b1933e3bcb
Fix node graph export sometimes not sticking to right edge of graph ( #3852 )
...
fix : Canvas Label Positioning in Node Graph
2026-03-10 10:42:51 +00:00
Keavon Chambers
2910e50b2f
Improve Shape tool arrow mode interactive drawing with angle modifier keys and endpoint gizmos ( #3874 )
...
* Make the order of Shape tool shape types consistent
* Add Arrow shape modifier keys and snapping support
* Add endpoint dragging to arrows
* Show the default cursor when hovering line/arrow endpoints
* Reduce duplicated function
* Fix incorrect coordinate spaces
* Improve endpoint dragging clarity
2026-03-10 03:41:35 -07:00
Ayush Amawate
e7a2800665
Fix Shape tool type dropdown not persisting selection and not excluding Line/Rectangle/Ellipse ( #3731 )
...
* fix Shape tool dropdown resetting to Polygon when switching tools
* add sync for rectangle/ellipse and line
* fix build issues
2026-03-10 08:25:44 +00:00
Keavon Chambers
9f9dd71e91
Fix vector drawing tool transform space handling ( #3872 )
...
* Fix vector drawing tool transform space handling
* Review fixes
* Fix test
2026-03-10 00:58:51 -07:00
Ayush Amawate
20501cac96
Fix Shape tool layer creation to not make the Transform node to appear after the Stroke node ( #3854 )
...
Fix shape stroke thickness
remove redundant call
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-10 01:41:43 +00:00
Timon
4300a885dc
Fix raster export scale factor ( #3870 )
...
* fix export scale factor
* export scale increment step 0.5
* fix svg to raster export on web
2026-03-10 01:23:42 +00:00
Dennis Kobert
f06983d072
Fix texture cache region size and broken rendering when tilting the viewport ( #3867 )
...
* Fix rotation for render cache
* Simplify code and fix zoom not invalidating cache
* Add constant for quantization amount
* fix region size
* print error when splitting oversized region fails
---------
Co-authored-by: Timon <me@timon.zip>
2026-03-09 23:42:38 +00:00
Keavon Chambers
52d2b38a82
Refactor the TypeScript data flow for full type safety and auto-generation of Rust types ( #3865 )
...
* Migrate Specta to Tsify to auto-generate messages.ts, working except colors and widgets
* Adopt the generated FillColor/Color/GradientStops
* Fix widget typing
* Separate WidgetGroup enum variants into wrapper structs
* Small rename
* Simplify widgets further
* Clean up message type references
* Switch type imports to the auto-generated file
* Remove lowercase serde rename
* Fix FillChoice deserialization
* Fix small regression from #3837
* Improve type safety
* Make WidgetSpan type-safe
* More cleanup and type safety
* More type safety
* More type safety
* Get the rest to type-check without errors; improve widget builder macro to have optional icons; improve Svelte 5 configs
* Cargo fmt
* Fix imports
* Update outdated readme info
* Fix lint command rename references
* Fix typos
* One more typos fix
* Remove unnecessary dep: prefix from the edited Cargo.toml files
* Remove excess parts from Cargo.toml
* Fix compiling on desktop
* Revert "Remove excess parts from Cargo.toml"
This reverts commit 6b711117b3a5d5d8a3ee20f36a43bc74930b7c82.
* Update dev docs with simpler, more accurate instructions
2026-03-09 16:35:04 -07:00
Ayush Amawate
fbd2658148
Replace deprecated criterion::black_box with std::hint::black_box ( #3860 )
...
* replace deprecated criterion::black_box with std::hint::black_box
* gemini code review suggestions
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* apply formating
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-08 10:40:55 +00:00
Dennis Kobert
3d1491ce92
Add animated GIF file export to Graphene CLI ( #3846 )
...
* Add gif file export via graphene cli
* Add check for negative fps numbers
2026-03-08 10:33:40 +00:00
Timon
5d22292072
Replace `npm` build script with new `cargo run` tool ( #3832 )
...
* move nix flake to root
* cargo run tool
* use thiserror in third-party-licenses tool
* prefere panic over exit
* Add automatic dependency check to cargo run tool
* Skip dependecies that are not needed for the current task
* Fixup
* Fixup
* fix windows
* Fixup
* improve usage text
* Fix linux bundle
* add graphen-cli
* fix build profile
* fix
* release profile should not include debug infos
* Review
* remove profiling profile
was redundent with release
* rename to cargo-run tool
* improve consistency
* rename deps to requirements
* fix
* return success when showing usage
2026-03-07 13:26:19 +00:00
Dennis Kobert
50ef6e15cb
Use glob syntax for Cargo.toml ( #3489 )
...
* Use glob syntax for Cargo.toml
* Readd nested crates to workspace members and reduce the list of default members
2026-03-05 10:20:41 +00:00
Keavon Chambers
ead914ec2b
Fix regression where Vello doesn't render new document opened after closing all documents ( #3849 )
...
* Fix regression where Vello doesn't render new document opened after closing all documents
* Remove last_svg_canvas and do this logic in the frontend
2026-03-05 09:54:31 +00:00
Keavon Chambers
8a1dfb9d8f
Refactor messages.ts by removing class-transformer and JS classes ( #3858 )
...
* Fix gamma correction with HTML-based editable Text tool text
* Migrate simple, undecorated classes to types
* Remove TupleToVec2 transformation
* Remove @Transform from tooltips
* Cleanup: replace value.toString() with String(value) everywhere
* Convert documentId from string to bigint
* Migrate the rest of the easy @Transform/@Type decorations
* Migrate FillChoice
* Migrate WidgetDiffUpdate
* Migrate WidgetInstance
* Migrate away from classes that extend WidgetProps
* Remove class-transformer and all classes in messages.ts
* Migrate UI layout passing
* Remove dead code
* Remove unnecessary export and readonly prefixes
* Remove HSVA type
* Break out Color, Gradient, and FillChoice functions into a utility-functions file
* Move widget helper functions from messages.ts into a new utility-functions file; restructure type imports
* Reduce internal type defs
* Rename JsMessage to FrontendMessage
* Code review fixes
* Fix other usages
* Tidying up
2026-03-05 01:43:21 -08:00
Keavon Chambers
f00a15a4c9
Clean up Gradient and Color classes in TS by removing their methods ( #3857 )
2026-03-04 02:39:07 -08:00
Keavon Chambers
5834ee9ce4
Clean up generic widget handling code in the frontend ( #3856 )
...
* Clean up WidgetSpan component code to avoid the giant if-chain for choosing a widget
* Improve typing support
2026-03-04 01:00:09 -08:00
Keavon Chambers
8a75c0c1e1
Add layer locked toggle icon and context menu entry to node graph ( #3855 )
...
* Add layer locked toggle icon and context menu entry to node graph
* Simplify logic
2026-03-04 06:30:04 +00:00
Mohan
54a02dedd5
Fix thumbnails not being updated for layers when they become empty ( #3624 )
...
* fix: thumbnail render for empty layers
* removed self import
* fix: rename
* Cleanup
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-03 06:45:19 +00:00
Keavon Chambers
7cc3097acd
Make the Outline render mode draw with consistent stroke thickness at any viewport zoom ( #3848 )
...
* Remove dead code for now-retired SVG implementation
* Implement viewport zoom compensation for thickness
2026-03-02 20:13:05 -08:00
Keavon Chambers
a8b5203d6c
Clean up code for drawing overlays to accept sRGB hex codes instead of Color structs ( #3839 )
...
* Clean up code for drawing overlays to accept sRGB hex codes instead of Color structs
* Consolidate hex code parsing functions
2026-02-27 14:08:58 -08:00
Keavon Chambers
9ecbfb7110
New nodes: RGBA to Color, HSVA to Color, Hex to Color, and Read Gradient ( #3838 )
...
* New nodes: RGBA to Color, HSVA to Color, Hex to Color, and Read Gradient
* Simplify
2026-02-26 18:22:04 -08:00
Keavon Chambers
f1cbc4b396
Make the node graph use Table<GradientStops> instead of GradientStops ( #3837 )
...
* Switch from GradientStops to Table<GradientStops> in all nodes
* Remove TaggedValue::ColorNotInTable
* Fix bug
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Add migrations
* Fix default gradient on empty table
* Update demo artwork
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-02-26 14:07:31 -08:00
Keavon Chambers
81c73d11ff
Clean up duplicated code used for recursively flattening graphic types ( #3836 )
...
* Reduce recusive flattening algorithm duplication
* Generalize further
* Avoid code duplication in the 'Flatten Path' node
* Avoid cloning
* Include intermediate levels of alpha blending composition
2026-02-26 05:36:23 -08:00
Keavon Chambers
cde7d5f951
New nodes: Colors to Gradient, Flatten Color, and Flatten Gradient ( #3835 )
...
* New nodes: Colors to Gradient, Flatten Color, and Flatten Gradient
* Fix Data panel not showing GradientStops
* Fix wrong category
2026-02-26 03:44:12 -08:00
Timon
da7437c023
Reimplement notice file generation for third-party licenses through Rust, now with CEF credits ( #3808 )
2026-02-26 11:12:28 +00:00
Keavon Chambers
4090f6c980
Tweak short-term roadmap details
2026-02-25 21:40:36 -08:00
Keavon Chambers
e62771845f
Add an in-viewport color picker to the Gradient tool when double-clicking a color stop ( #3834 )
...
* Hide batched blocked debug print messages
* Implement the color picker on double-clicking stops
* Code review
2026-02-25 21:03:12 -08:00
Keavon Chambers
82cf8eb369
Upgrade Linebender and related dependencies ( #3819 )
...
Co-authored-by: Timon <me@timon.zip>
2026-02-25 19:10:57 +00:00
Keavon Chambers
8117ddcdb3
Add Gradient tool control bar buttons, Reverse Stops and Reverse Direction ( #3830 )
...
* Add Gradient tool control bar buttons, Reverse Stops and Reverse Direction
* Consolidate reused gradient line updating code
2026-02-25 00:48:21 -08:00