Commit Graph
1461 Commits
Author SHA1 Message Date
Keavon Chambers c19f79977b Dedupe code for BezPath emission, epsilon constants, and Polynomial internals (#4459)
* Collapse duplicated BezPath emission, constants, and Polynomial surface across the vector algorithms

* Fix the quadratic segment length lower bound using a control leg instead of the chord
2026-08-18 16:24:12 -07:00
Keavon Chambers 5c580f9dac Clean up the Vector struct implementations by privatizing and deleting unused APIs (#4458)
Trim the Vector API surface by privatizing and deleting caller-less items
2026-08-18 15:54:55 -07:00
Keavon Chambers e3b968f7e2 Port all remaining Subpath producers to BezPath and delete the legacy subpath module (#4457)
* Port all remaining Subpath producers to BezPath and delete the legacy subpath module

* Reset contour state at each MoveTo so an open contour's segments don't leak into the next region

* Give the polygon and star constructors a true center and radius instead of compensated arguments
2026-08-18 15:28:58 -07:00
Keavon Chambers 8f1b2bed5f Collapse ClickTargetType to a single multi-contour BezPath variant (#4456)
* Collapse ClickTargetType to a single multi-contour BezPath variant

* Restrict no-stroke point hits to a path's closed contours
2026-08-18 14:31:52 -07:00
Keavon Chambers c111308c67 Replace the legacy Bezier struct with kurbo::PathSeg throughout (#4455) 2026-08-18 13:08:28 -07:00
Keavon Chambers 20af96c1d9 Remove remnant dead code across the Subpath, Vector, and editor geometry API surfaces (#4454) 2026-08-18 12:34:34 -07:00
Dennis Kobert 58a65c69e9 Add the map, flat_map, and flatten_levels pilots 2026-08-18 11:02:25 +00:00
Dennis Kobert d1d50ec469 Classify routing sources through IList nesting 2026-08-18 11:02:25 +00:00
Dennis Kobert e25e32ee8a Add the per-copy inner extent accessor 2026-08-18 11:02:25 +00:00
Dennis Kobert d560a39856 Add the flatten pilot over graphic content 2026-08-18 10:06:11 +00:00
Dennis Kobert 00e08359a3 Park droppable elements in the record tail store 2026-08-18 10:06:11 +00:00
Dennis Kobert 116ce622d4 Test batch lane equivalence and single eager bind per batch 2026-08-18 08:53:38 +00:00
Dennis Kobert 082fb5d959 Hoist non-lazy inputs in the default batch implementation 2026-08-18 08:53:38 +00:00
Dennis Kobert 043f28cc23 Add StatusCell snapshot, List copy, and interrupt-to-batch conversion 2026-08-18 08:53:38 +00:00
Keavon Chambers 2df0bd25c3 Add the "Type Assertion" node catalog category (#4452) 2026-08-17 23:39:02 -07:00
Keavon Chambers 656daa26bc Render a paint from its Graphic directly instead of a single-element List wrapper (#4450)
* Render a paint from its Graphic directly instead of a single-element List wrapper

* Fix a stale doc comment reference to the moved paint render implementation
2026-08-17 21:26:13 -07:00
Keavon Chambers e9e7ef54f6 Fix color and gradient list paints not rendering as stacks (#4439)
Stack every item of a color or gradient paint instead of painting only the first
2026-08-17 20:52:55 -07:00
Keavon Chambers 51662a5fe8 Fix the blend mode formulas for the Overlay, whole-color, and alpha-only modes (#4449)
* Fix the Overlay, whole-color, and alpha-only blend mode formulas

* Add unit tests covering the blend mode formula fixes
2026-08-17 20:28:17 -07:00
Keavon Chambers 35a98a2975 Move the color blending helpers down beside Color and BlendMode in no-std-types (#4448) 2026-08-17 19:33:28 -07:00
Dennis Kobert b7413dd22c Add the replaced context derivation for same-level remaps 2026-08-17 14:47:41 +00:00
Dennis Kobert 586737247e Fold nested list levels flat in a single kernel 2026-08-17 14:47:24 +00:00
Dennis Kobert 055b7f0055 Add the rank-model mirror over a materialized level 2026-08-17 14:47:24 +00:00
Dennis Kobert 4a042bade2 Key materialization on declared list nesting and carriers on non-materialized subjects 2026-08-17 14:46:48 +00:00
Dennis Kobert 3aa018a15c Add the rank-model read-by-index family: omit, index elements, extract element 2026-08-17 11:59:40 +00:00
Dennis Kobert 8508dc6c9d Add the rank-model extend concatenating two sources at the top level 2026-08-17 11:42:52 +00:00
Dennis Kobert fbba0cd037 Gate the gpu converter imports the sweep wrongly removed 2026-08-17 10:56:45 +00:00
Dennis Kobert ae7c51a964 Drop stale imports left behind by the record-wire port 2026-08-17 10:28:29 +00:00
Dennis Kobert 0c49026c9a Error on out-of-range copy addressing instead of wrapping in the repeat family 2026-08-17 10:28:28 +00:00
Keavon Chambers ef6d430f97 Replace the IntoPaint trait with direct Graphic-typed node inputs (#4442)
* Let the Fill and Stroke paint inputs take Item<Graphic>, replacing the IntoPaint trait

* Rename the FIll node's "fill" input to "paint"

* Let the graphic-consuming nodes take List<Graphic> directly, relying on the embedding adapters

* Remove outdated todo comments

* Re-save the demo art
2026-08-17 03:10:02 -07:00
Dennis Kobert bc29166d4c Add the rank-model repeat on points flattening every points row 2026-08-17 09:26:59 +00:00
Dennis Kobert 0f3e3f7337 Materialize ranked non-subject inputs whole and expose them to extent overrides 2026-08-17 09:26:59 +00:00
Keavon Chambers d63362718f Split 'To Graphic' and 'Wrap Graphic' into the 'As Graphic' type assertion and 'Into Group' reducer nodes (#4441)
* Split 'To Graphic' and 'Wrap Graphic' into the 'As Graphic' type assertion and 'Into Group' reducer nodes

* Make 'Into Group' reduce List<DVec2> not Item<DVec2>

* Reset the Merge definition for every legacy alias of its coercion nodes

* Improve test
2026-08-17 02:19:59 -07:00
Dennis Kobert a03db0ac6c Decompose the flat index over the content extent in structure creators 2026-08-17 08:09:27 +00:00
Keavon Chambers 104b8b71e6 Support embedding whole items into Graphic variants so their attributes survive the conversion (#4440)
Add embedding conversion adapters that move a whole ranked value inside a Graphic variant
2026-08-16 19:51:58 -07:00
Keavon Chambers f635c56eab Fix color and gradient paints not rendering with their opacity attributes (#4438)
Fade color and gradient paints by their own opacity attributes
2026-08-16 15:52:27 -07:00
Dennis Kobert 932ed8653e Add the rank-model repeat radial rotating each copy around the center 2026-08-16 18:17:30 +00:00
Dennis Kobert 5ab3f067fe Add the rank-model repeat array over a lazy transform-reading carrier 2026-08-16 17:47:25 +00:00
Dennis Kobert 3df028cb18 Wire record-io plain values as record edges in the registry, extracted at construction 2026-08-16 17:47:25 +00:00
Dennis Kobert e423dd96de Support lazy record carriers so a creator can read and rewrite attrs per copy 2026-08-16 17:13:19 +00:00
Dennis Kobert bef58bf395 Give the generic repeat its production shape with reverse in the index mapping 2026-08-16 17:13:19 +00:00
Dennis Kobert 131abf5883 Give extent overrides a typed input surface instead of the raw node form 2026-08-16 15:55:17 +00:00
Dennis Kobert 3859bd713e Install element layouts on the runtime test graphs 2026-08-16 11:29:20 +00:00
Dennis Kobert ac40f1838f Store record batches in caller-owned frame buffers instead of aliased stack pointers 2026-08-16 11:29:20 +00:00
Dennis Kobert 9055a5f3d5 Drop the stale layout unwraps in the math wire tests 2026-08-16 11:28:33 +00:00
Dennis Kobert d32caeab52 Add a generic lazy repeat that evaluates its content at each copy index 2026-08-16 11:28:11 +00:00
Dennis Kobert 15f4aa8f98 Strip IList nesting from kernel returns at parse time 2026-08-16 11:27:13 +00:00
Keavon Chambers c507b35645 Add rank-0 Item leaf variants to the Graphic enum alongside its List variants (#4437)
* Add the rank-0 Item leaf variants to the Graphic enum, rendering leaves and list rows through shared per-row logic

* Traverse the rank-0 Graphic leaf variants in the vector node helpers and flattening

* Reach rank-0 vector graphics from the styling and gradient-fitting helpers

* Two code review fixes

* Fix comment
2026-08-16 02:24:15 -07:00
Dennis Kobert 99ce2ea565 Require a node registry to compile so the layout pass always runs 2026-08-15 14:49:25 +00:00
Dennis Kobert 87200f3c2a Gate a flipped shader node's layout metadata out of the GPU build 2026-08-15 14:49:19 +00:00
Dennis Kobert 214632c5ec Reserve the record stack before direct edge evals in executor tests 2026-08-15 12:27:39 +00:00