Keavon Chambers
881784ba66
Make the Data panel show type-driven widgets for attributes ( #4062 )
2026-04-28 03:52:04 -07:00
Keavon Chambers
afc2c9178e
Move source_node_id to "editor:layer" and Vector<Upstream> to "editor:merged_layers", backed by a new 'Write Attribute' node ( #4061 )
...
* Fix click target propagation with the Rasterize node
* Add the 'Write Attribute' node
* Remove tag_layer in favor of the new Write Attribute node, prune redundant attribute writes
* Replace the Vector<Upstream> type argument with the "editor:merged_layers" attribute
2026-04-28 03:28:31 -07:00
Keavon Chambers
76938eb69a
Implement dynamic table attributes to generalize the graphic-specific Table type ( #4050 )
...
* Feature-gate serde derives behind cfg_attr in all runtime node graph type crates
* Refactor Table to move its hard-coded fields into an attributes field
* Encapsulate TableRow/TableRowRef/TableRowMut attribute fields behind accessor methods
* Remove TaggedValue::GraphicUnused
* Refactor Table<T> to use dynamic attributes instead fixed names
* Fix code review soundness concerns
* Add todo work
* Replace row-oriented Table<T> API with column-oriented access
* Fix attribute propagation bugs
---------
2026-04-28 03:25:16 -07:00
Dennis Kobert
3d84e63ef9
Migrate usage of the Hash trait for cache invalidation to the dedicated CacheHash trait ( #4051 )
...
* WIP start migrating usages of hash for cache invalidadion to dedicated trait
* Finish migrating usages
* Code review
* Add comments clearifying the reasoning for using random ids in the VectorModification cach hash impl
* Fix some remaining hash violations
* Finish migration and fix compilation
* Fix import ordering
* Cleanup
* Fix code review stuff
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-04-27 05:18:47 +00:00
Keavon Chambers
c9c76df40c
New nodes: 'Regex Contains', 'Regex Replace', 'Regex Find', 'Regex Find All', and 'Regex Split' ( #4045 )
...
* Add a family of 5 regex nodes for string processing
* Fix unstaged change
2026-04-24 00:55:24 -07:00
Keavon Chambers
da45ab2f87
Add a checkered background to transparent artboards and the infinite canvas ( #4022 )
...
* Add checkered transparency rendering to infinite canvas and artboards
* Enable artboard clipping by default
* Make new infinite canvas documents begin with a white background layer
* Remove the export dialog's transparency option now that it's redundant
* Make exporting transparent JPGs use white not black
* Code review
2026-04-10 03:21:21 -07: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
7ca6470656
Rename the repeat nodes to replace "Instance" terminology with "Repeat" ( #3794 )
...
* WIP
* Move the Mirror node from the module 'vector' to 'graphic'
* Update demo art
* Fix failing tests
Fix tests
2026-02-20 22:10:59 -08:00
Keavon Chambers
5a1503fc98
New node: Flatten Raster
2026-02-20 13:35:12 -08:00
Dennis Kobert
ba177c4c5d
Generalize the 'Map Vector' node as 'Map' with support for all graphical types ( #3793 )
...
* Rename Map Vector to Map
* Fix compilation errors
* Move to the Graphic module and add Read {Graphic, Raster, Color} nodes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-20 21:33:02 +00:00
Keavon Chambers
a88342b8da
Add the "Rate" multiplier parameter to the Animation Time node ( #3685 )
2026-01-26 00:37:15 -08:00
Keavon Chambers
eb0f019b15
New nodes: 'Reset Transform', 'Replace Transform', 'Count Points', 'Index Points' ( #3420 )
...
- Add the 'Reset Transform' and 'Replace Transform' nodes
- Add the 'Count Points' and 'Index Points' nodes
- Make the 'Index Elements' node support negative indexing from the end
- Make the 'Flatten Vector' node's implementation reusable
- Fix crash displaying 0x0 raster image in the Data panel
- Fix the 'Points to Polyline' node not working on two-point objects
2025-11-25 20:41:59 -08:00
Dennis Kobert
57b0b9c7ed
Restructure node crates ( #3384 )
...
* Restructure node-graph folder
* Fix wasm compilation
* Move node definitions out of *-types crates
* Cleanup
* Fix warnings
* Fix warnings
* Start adding migrations
* Add migrations and move memo nodes to gcore
* Move nodes/gsvg-render -> rendering
* Replace some hard coded identifiers and fix automatic conversion
* Fix Vec2Value node migration
* Fix formatting
* Add more migrations
* Cleanup features
* Fix core_types::raster import
* Update demo artwork (to make profile ci work)
* Move *-types to node-graph/libraries folder
* Add missing node migrations
* Migrate more nodes
* Remove impure memo node
* More fixes and remove warning
* Migrate context and add a few missing migrations
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-18 10:21:54 +00:00