Keavon Chambers
a10092c10c
Fix abysmal O(n^2) SVG import performance ( #3938 )
...
* Remove O(n^2) import by disabling bumping
* Add an import mode to avoid acyclic checks
* Rebuild the layer tree at the end, not after each step
* Incrementally update outward wires instead of repeatedly rebuilding them
* Add import->export direct connection guard
* Code review fixes
* Replace magic number offsets with consts
* Add consts for magic numbers
* Improve code structuring
2026-03-22 23:33:58 -07:00
Timon
9727e14fe9
Add the re-labeled node display name to its Properties panel section header ( #3930 )
...
* Show nodes display name in properties panel if set
* Review
2026-03-22 20:20:32 -07:00
Timon
9a23b9908e
Add missing 'Copy to Points' migration ( #3922 )
...
Add Copy to Points migration
2026-03-23 01:48:39 +00:00
Timon
4a37ce4576
Desktop: Open file dialogs in the folder containing the document ( #3934 )
...
Desktop: Open save file dialogs in document parent folder
2026-03-23 01:36:25 +00:00
Timon
5b1e1cb2fb
Fix artboards not exporting with transparency using Vello ( #3921 )
...
* Fix hide artboard for raster render mode
* Desktop: Fix transparent viewport blending
* Fix vello render using wrong color space conversion for background
* Review
2026-03-23 01:20:54 +00:00
Jatin Bharti
bf486b4cb5
Fix bug where nodes (like Text) with a non-visible primary input would gain a primary input when shaken ( #3899 )
...
* fix: Shaking a Text layer breaks its type signature
* Add a second fix for the same issue
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-22 00:11:19 -07:00
Keavon Chambers
b7a1b3e665
Fix CI failing on PRs reaching master via the merge queue
2026-03-22 00:10:55 -07:00
Keavon Chambers
342160b803
Remove unused frontend npm dependencies ( #3935 )
...
* Remove unused frontend npm dependencies
* Add a guard on database open
2026-03-21 21:19:24 -07:00
Keavon Chambers
06f27f1d3a
Simplify TS configuration
2026-03-21 19:45:57 -07:00
Dennis Kobert
b0cc8a9243
Update Vite to version 8 ( #3900 )
...
* Update vite to version 8
* Fix breakage from the upgrade
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-22 02:12:28 +00:00
Keavon Chambers
96418e8f5d
Update dependencies to resolve advisories ( #3933 )
...
* Update Rust dependencies to resolve cargo-deny advisories
* Update minor/patch npm dependencies, too
2026-03-21 18:25:05 -07:00
Keavon Chambers
17da9ec099
New nodes: 'Decimate' and 'Simplify' ( #3851 )
...
* New node: Decimate
* Use preallocated stack to reduce number of allocations and fix double endpoints on closed paths
* Use Kurbo implementation of path-to-polyline sampling
* Add the 'Simplify' node
2026-03-21 17:08:18 -07:00
Keavon Chambers
d5d10fe548
Rename /frontend/wasm -> /frontend/wrapper ( #3927 )
2026-03-21 03:46:47 -07:00
Keavon Chambers
4a0c2016e6
Rename editor_api.rs -> editor_wrapper.rs ( #3926 )
2026-03-21 03:34:08 -07:00
Keavon Chambers
087b4cd71f
Rename EditorHandle -> EditorWrapper and organize editor_api.rs ( #3925 )
...
* Rename EditorHandle -> EditorWrapper and organize editor_api.rs
* pub -> pub(crate)
2026-03-21 03:27:57 -07:00
Keavon Chambers
9bcac1af2d
Remove JS module import prefixes and use absolute paths to the frontend directory ( #3924 )
...
* Remove JS module import prefixes
* Fix code review mistakes
2026-03-21 00:08:32 -07:00
Keavon Chambers
ed7987c881
Split apart the frontend Editor type into SubscriptionsRouter and EditorHandle ( #3923 )
...
* Remove the unused Editor.raw/wasmMemory/wasmImport
* Split out Editor.subscriptions
* Replace editor.handle.* with editor.* (1 of 2)
* Replace editor.handle.* with editor.* (2 of 2)
* Replace Editor typedef with EditorHandle import
* Pluralize subscription-router and rename subscriptionsRef->subscriptionsRouter and editorRef->editorHandle
* Remove editor.ts
* Update the readme
* Fix demo art loading bug
2026-03-20 23:34:13 -07:00
Keavon Chambers
64fd12a1a0
Break out helper functions from the frontend's managers and stores ( #3920 )
...
* Move destructor call to each manager/store constructor for safety
* Break out utility functions
2026-03-20 14:22:46 -07:00
Timon
0c7b5cd534
Desktop: Fix broken resizing affecting some Linux systems ( #3917 )
...
Desktop: Fix resizeing being broken on some Linux systems
Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
2026-03-20 01:28:22 +00:00
Keavon Chambers
2e2c4fe180
Restructure frontend TS files so managers/stores export destructors instead of returning them from their constructors ( #3919 )
...
* Replace parameter passing with getContext and extract destroy functions to module-level exports
* Resend layouts from Rust when editor is re-mounted on HMR
* Code review
2026-03-19 18:25:34 -07:00
Keavon Chambers
124b17f609
Fix frontend HMR so the page doesn't break upon saving TS files and restructure frontend architecture ( #3871 )
...
* Clean up component setup/tear-down side effects
* Clean up more component setup/tear-down side effects
* Remove nonfunctional debouncer
* Clean up even more component setup/tear-down side effects
* Reuse backend state
* Fix HMR for IO Managers and for State Providers
* Rename IO Managers -> Managers and State Providers -> Stores
* Restructure and partially flatten managers/stores
* Code review fixes
* Review fixes
2026-03-19 13:38:41 -07:00
Keavon Chambers
eb562146ce
Consolidate CI web builds into the build workflow and restore deployments to GitHub environments ( #3916 )
...
* Restore the CI "View deployment" button in PRs after building
* Consolidate release.yml functionality into build.yml
* Move build from ci.yml to a delegated run in build.yml
* Rename CI to Check
* Code review fixes
* Review 2
2026-03-19 04:53:05 -07:00
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