Keavon Chambers
02afd08c80
Fix 'Scatter Points' node double transformation of points and remove segments connecting the points
2025-06-26 00:19:49 -07:00
Keavon Chambers
4a65ad290c
Fix 'Boolean Operation' node merge-by-distance post-processing
...
Fixes #2750
2025-06-24 18:23:09 -07:00
Keavon Chambers
11ba2cc0fe
New node: 'Split Segments'
2025-06-24 04:55:27 -07:00
Keavon Chambers
fdb09e334b
Improve the categorization across many nodes
2025-06-23 18:52:05 -07:00
Keavon Chambers
59bb3194ca
Fix website donation page to work with responsive design
2025-06-23 03:55:32 -07:00
Keavon Chambers
ae88f4a3de
Replace all hard-coded magic number node input indices with *Input::INDEX constants
2025-06-22 23:18:34 -07:00
Keavon Chambers
b5975e92b2
Combine 'Merge by Distance' nodes with a choice of algorithm; clean up 'Boolean Operation' node result with merge-by-distance
2025-06-22 04:22:39 -07:00
Keavon Chambers
c1b15fcfdf
Fix Ctrl+Space not closing the graph after opening the node creation menu
2025-06-22 03:29:41 -07:00
Keavon Chambers
dc0ae74cab
Fix double-click event firing when dragging number input fields in Chromium
2025-06-22 03:11:57 -07:00
Keavon Chambers
301368a0df
Add basic donation statistics to the website
2025-06-20 04:51:06 -07:00
Keavon Chambers
eda858b6e2
Add support for the 'Boolean Operation' node to accept vector tables, not just groups
2025-06-19 18:58:19 -07:00
Keavon Chambers
96a0dada92
Replace 'Generate Handles' and 'Remove Handles' nodes with 'Auto-Tangents' node; rename vector2 data type to coordinate
2025-06-19 18:56:57 -07:00
Keavon Chambers
cea1a1c6a8
Instance tables refactor part 8: Make repeater nodes use pivot not bbox and output instance type not group; rename 'Flatten Vector Elements' to 'Flatten Path' and add 'Flatten Vector' ( #2697 )
...
Make repeater nodes use pivot not bbox and output instance type not group; rename 'Flatten Vector Elements' to 'Flatten Path' and add 'Flatten Vector'
2025-06-19 18:37:40 -07:00
Keavon Chambers
523cc27523
Improve the spreadsheet visualization details for VectorData
2025-06-19 18:37:39 -07:00
Keavon Chambers
6111440afd
Instance tables refactor part 7: Remove RasterDataType and add Raster<CPU>/Raster<GPU>
2025-06-19 18:37:13 -07:00
Keavon Chambers
5cacab2e39
Instance tables refactor part 7: Rename "ImageFrame" -> "RasterData", "ImageFrameTable" -> "RasterDataType", and "RasterFrame" -> "RasterDataType"
2025-06-19 18:23:53 -07:00
Keavon Chambers
2696abc6b3
Replace Instances<T>::empty() with Instances<T>::default() and make it return an empty table for vector data instead of one empty row ( #2689 )
...
Make Instances<T>::default() return an empty table for everything, even vector, and replace ::empty() with ::default()
2025-06-04 21:00:21 -07:00
Keavon Chambers and hypercube
cb4289169d
Instance tables refactor part 6: unwrap VectorData and ImageFrame from single-row to multi-row tables ( #2684 )
...
* Start refactoring the boolean operations code
* Switch to iterators in the boolean operations code
* Make boolean operations work on rows of a table, not Vecs of single-row tables
* Remove more .transform()
* Simplify brush code
* Attempt to remove .transform() by using Instance<Image<Color>> in brush code, but a regression is introduced
* Improve blend_image_closure
* Simplify
* Remove leading underscore from type arguments
* Remove .transform() from ImageFrameTable<P> and fix Mask node behavior on stencils not fully overlapping its target image
* Remove more .one_instance_ref()
* Fully remove .one_instance_ref() and improve the 'Combine Channels' node robustness
* Fully remove .once_instance_mut()
* Fix tests
* Remove .one_empty_image()
* Make Instances<T>::default() return an empty table for images, but still not yet vector
---------
Co-authored-by: hypercube <0hypercube@gmail.com >
2025-06-04 20:40:15 -07:00
Keavon Chambers
2cee9e24cd
Refactor some more vector nodes to use loops instead of one_instance, as a start to #1834 part 6
2025-05-24 21:33:58 -07:00
Keavon Chambers
63cce26755
Tweak the design of the RadioInput widget
2025-05-24 16:07:01 -07:00
Keavon Chambers
c4678336e5
Add support for clicking checkboxes via their labels ( #2667 )
2025-05-24 04:46:15 -07:00
Keavon Chambers
80f38d91c0
Optimize Poisson-disk point sampling by halving the number of line intersection checks with caching ( #2661 )
2025-05-22 00:07:12 -07:00
Keavon Chambers
899ed5ad85
Tidy up the Layers panel with a new bottom bar
2025-05-21 04:14:01 -07:00
Keavon Chambers
f624edb801
Fix running on the native target without the Linux Wayland platform
2025-05-19 14:24:10 -07:00
Keavon Chambers
e57637aab1
Make builds of the editor and the website serve their own local fonts ( #2186 )
...
* WIP
* Done?
* Install fonts in CI
* Use absolute path so minified inlined CSS works
* Fix Bezier-rs demo fonts?
* Use opsz
* Revert removal of text balancer
* Pull in the text balancer from our static host
2025-05-19 02:38:29 -07:00
Keavon Chambers
a8e209e44c
Remove the old node macro and fix/clean up several raster nodes ( #2650 )
...
* Fix several broken raster nodes and clean up leftover old node system code
* Migrate Brightness/Contrast to the new node macro, and fix it
* Remove last usages of old_node_fn
* Remove old_node_fn
2025-05-17 21:24:32 -07:00
Keavon Chambers
77f8bfd9ed
Improve clarify of type errors and tooltip diagnostics
2025-05-17 16:13:05 -07:00
Keavon Chambers
5861e635fb
Copy Poisson-disk algorithms from Bezier-rs into gcore vector algorithms
2025-05-12 22:34:37 -07:00
Keavon Chambers
d3b5dc5712
Clean up 'Image' node by removing old 'Cull' node in sub-network ( #2643 )
...
* Clean up 'Image' node by removing old 'Cull' node in sub-network
* Fix gamma correction on Decode Image node
2025-05-12 18:40:48 -07:00
Keavon Chambers
db34ac3f53
Refactor some vector nodes to use loops instead of one_instance, as a start to #1834 part 6
2025-05-08 23:56:10 -07:00
Keavon Chambers
a6ff221c1e
Fix overlay clearing regression from #2521 with high-DPIs
...
Closes #2628
2025-05-08 16:48:49 -07:00
Keavon Chambers
80b8df8d42
FIx the 'Morph' node to not fail on topology changes like holes
2025-04-29 04:49:08 -07:00
Keavon Chambers
d445bffe31
Add donation callouts in-app and on the site
2025-04-25 00:13:24 -07:00
Keavon Chambers
e60a9c36d8
Update the website roadmap
2025-04-24 06:11:37 -07:00
Keavon Chambers
471ef87801
Add reference point input to the Mirror node
2025-04-24 05:33:20 -07:00
Keavon Chambers
ac9fb2b02d
Improve instancing nodes (make them output group data, add 'Instance Repeat', fix Flatten Vector Elements click targets, and more) ( #2610 )
...
* Improve instancing nodes (make them output group data, add 'Instance Repeat', fix Flatten Vector Elements click targets, and more)
* Fix test?
* Fix more tests?
* Fix moar test??
* Clean up instance method naming
2025-04-22 17:55:57 -07:00
Keavon Chambers
5e0e11b4c1
Update the UI colors of the node graph data types
2025-04-20 17:37:21 -07:00
Keavon Chambers
a376832480
Fix and improve robustness of node/parameter tooltip plumbing; simplify properties row widget boilerplate ( #2600 )
...
* WIP
* WIP2
* Further cleanup
2025-04-19 20:25:36 -07:00
Keavon Chambers
41fe46591a
Update the parameter expose button in the Properties panel and fix undo history when it's clicked
2025-04-17 06:29:38 -07:00
Keavon Chambers
eca5d0d105
Add node description tooltips in the Properties panel and on secondary inputs in the graph ( #2590 )
...
Add tooltips to secondary inputs in graph/Properties panel, and to nodes in Properties panel
2025-04-17 00:59:46 -07:00
Keavon Chambers
fa21385d2c
New nodes: 'Position on Path' and 'Tangent on Path' ( #2588 )
2025-04-16 22:50:50 -07:00
Keavon Chambers
184c009f17
Add memoization to instancer nodes
2025-04-16 04:43:47 -07:00
Keavon Chambers
29479f6e3e
Update Cargo dependencies in Cargo.lock
2025-04-13 21:20:55 -07:00
Keavon Chambers
e759e62291
Comment out all remaining active Imaginate code
2025-04-12 17:32:24 -07:00
Keavon Chambers
a11f9b36c3
Add the menu bar command: Help > Debug > Reset Node Definitions on Open
2025-04-12 16:56:55 -07:00
Keavon Chambers
100df9a81d
Remove 'Memoize Impure' from document node definitions
2025-04-12 05:15:05 -07:00
Keavon Chambers
a8a5a1f3fd
New node: Sample Gradient
2025-04-12 04:19:46 -07:00
Keavon Chambers
69069ef723
Fix the 'Repeat', 'Circular Repeat', and 'Mirror' nodes to work on point cloud vector data ( #2553 )
...
* Include points in bounding box calculations
* Fix unrelated crash from debug assert when reordering root-level folders
* Fix another unrelated crash from debug assert when GRS scaling to size 0
* Fix several vector nodes to respect and propagate local transform space
2025-04-12 02:18:31 -07:00
Keavon Chambers
0d10ad2161
Revert double-click to open node catalog from #2423 because it occurs even outside the graph
2025-04-10 14:55:35 -07:00
Keavon Chambers
855acf7f85
Update website now that GSoC applications are closed
2025-04-10 06:38:43 -07:00
Keavon Chambers
bc03941174
Blog post: Internships for a Rust graphics engine: GSoC 2025
2025-04-02 03:58:24 -07:00
Keavon Chambers
cdf896bf79
New demo artwork: "Parametric Dunescape"
2025-04-01 23:20:34 -07:00
Keavon Chambers
158f18df0d
Work around unwrap crash
2025-03-29 15:43:40 -07:00
Keavon Chambers
4e418bbfe1
Fix device pixel ratio being tied to the document by moving it from overlays to portfolio
2025-03-21 10:13:08 -07:00
Keavon Chambers
08a4b69948
Add animation control buttons to document bar
2025-03-19 02:15:40 -07:00
Keavon Chambers
6292dea103
Refactor many usages of Color to natively store linear not gamma ( #2457 )
2025-03-18 05:37:20 -07:00
Keavon Chambers
3e56113c78
Update student projects page of the website
2025-03-13 11:11:19 -07:00
a696aae044
Instance tables refactor part 5: unwrap GraphicGroup as multi-row Instance<GraphicElement> tables and move up transforms ( #2363 )
...
* Just group
* Partly working but without transforms
* Remove Transform/TransformMut from GraphicElement and GraphicGroupTable
* Fix layers and flattening
* Fix transform group handling on the remaining nodes
* Change collect metadata
* Add transform on vector data. TODO: Remove duplicate transform
* Small code tidying-up
* Add concatenate node?
* Remove ignore_modifications which is always false
* Improve transforms
* Mostly fix the nested transform cage angle (except leaf layers and skew)
* WIP attempt to integrate skew
* Fix nesting bounding box
* Avoid setting the transform
* Fix stroke transforms
* Renderer cleanup
* Fix tests for repeated elements not given unique point IDs
* Suppress cargo-deny warning
* Fix upgrade code for graphic group data
* Work around rendering issue in Isometric Fountain
---------
Co-authored-by: Adam <adamgerhant@gmail.com >
Co-authored-by: hypercube <0hypercube@gmail.com >
2025-03-12 01:38:36 -07:00
Keavon Chambers
381dcbf17f
Update dependencies throughout the project ( #2401 )
...
* Update dependencies
* Update stable node ID hashes again, for some reason?
2025-03-07 21:32:52 -08:00
Keavon Chambers
c4cf47703a
Tidy up NodeNetworkInterface, replacing &[] root network arguments with methods for the document network ( #2393 )
...
* Replace `.selected_nodes(&[])` with `.selected_nodes_in_nested_network()` and `.selected_nodes()`
* Replace `.network(&[])` with `.document_network()` and `.nested_network()`
* Replace `.network_metadata(&[])` with `.document_network_metadata()`
2025-03-07 01:33:24 -08:00
Keavon Chambers
22a900b35e
Fix regresion from #2265 causing an extra default artboard to show up
2025-03-06 22:56:09 -08:00
Keavon Chambers
19a140682e
Instance tables refactor part 4: replace ArtboardGroups with multi-row Instances<Artboard> ( #2265 )
...
* Clean up dyn_any usages
* Migrate ArtboardGroup to ArtboardGroupTable (not yet flattened)
* Reorder graphical data imports
* Flatten and remove ArtboardGroup in favor of ArtboardGroupTable
* Fix test
2025-03-06 05:36:26 -08:00
Keavon Chambers
2f6c6e28f0
Instance tables refactor part 3: flatten ImageFrame<P> in lieu of Image<P> ( #2256 )
...
* Remove ImageFrame<T> by flattening it into Image<T>
* Rename TextureFrame to ImageTexture
* Fix tests
2025-03-06 05:36:17 -08:00
Keavon Chambers and hypercube
f1160e1ca6
Instance tables refactor part 2: move the transform and alpha_blending fields up a level ( #2249 )
...
* Fix domain data structure field plural naming
* Rename method one_item to one_instance
Rename method one_item to one_instance
* Move the Instance<T> methods over to providing an Instance<T>/InstanceMut<T>
Move the Instance<T> methods over to providing an Instance<T>/InstanceMut<T>
* Add transform and alpha_blending fields to Instances<T>
* Finish the refactor (Brush tool is broken though)
* Add test for brush node
* Fix brush node
* Fix default empty images being 1x1 instead of 0x0 as they should be
* Fix tests
* Fix path transform
* Add correct upgrading to move the transform/blending up a level
---------
Co-authored-by: hypercube <0hypercube@gmail.com >
2025-03-06 05:36:09 -08:00
Keavon Chambers
ddb0c8c249
Reorganize the menu bar and add additional commands to it
2025-03-01 13:44:28 -08:00
Keavon Chambers
e41471c088
Fix wrong node parameter widgets, attempt 2 at #2323
2025-03-01 04:34:12 -08:00
Keavon Chambers
bc6e76208d
Fix bug introduced in #2276 causing number inputs to abort on any keyboard input, not just Esc
2025-03-01 01:28:27 -08:00
Keavon Chambers
390574d5c6
Limit the Sample to Points node's spacing value to prevent freezing when 0
2025-02-25 00:45:54 -08:00
Keavon Chambers
fb13d58767
Declare the start of the Alpha 4 release series
2025-02-21 13:52:05 -08:00
Keavon Chambers
5115a05c5b
Make grid-aligned node graph wires an experimental feature disabled by default
2025-02-21 13:27:30 -08:00
Keavon Chambers
2c88bee0ee
Update some UI components to polish the frontend
2025-02-21 12:58:05 -08:00
Keavon Chambers
7bbbf7fa7c
Add icons and tooltips for the previous commit's feature
2025-02-12 01:54:30 -08:00
Keavon Chambers
1700c3a650
Update website with improved student project details
2025-02-11 17:18:57 -08:00
Keavon Chambers
ec8c8d6485
Polish and add aborting to several input widgets: no Esc closing parent menus; color picker axis align; repeat on arrow buttons ( #2276 )
...
* Remove color input outline; reduce antialiasing compositing artifacts in color widgets
* Rename ColorButton to ColorInput
* Add features and aborting to several other widgets
- Prevent Esc from closing parent floating menus when aborting
- Fix missing icon regression
- Gutter resizing abort
- Color picker aborts, Shift axis alignment, improve click/drag behavior for gradient spectrum
- Scrollbar abort, repeat when held, fix directional arrows when viewport is zoomed
- Number input abort, repeat when held
* Move ColorInput into the inputs folder
* Fix tiny logo
2025-02-10 05:46:41 -08:00
Keavon Chambers
0037f5158c
Add new icons to all menu bar entries
2025-02-07 19:08:06 -08:00
Keavon Chambers
0ec91bfe01
Add pin and cut icons; improve menu bar shortcut labels to choose shortest
2025-02-05 18:30:10 -08:00
Keavon Chambers
f13efd2d06
Standardize increment snapping to use the Shift key
2025-02-05 03:23:47 -08:00
Keavon Chambers
0cda8e2bb4
Code cleanup around the input mapper system
2025-02-04 19:36:30 -08:00
Keavon Chambers
0d8b25d37f
Update most Rust dependencies ( #2259 )
2025-02-04 02:41:13 -08:00
Keavon Chambers
5fedd5c234
Fix demo artwork
2025-02-01 05:50:30 -08:00
Keavon Chambers
303c1d45f8
Avoid adding an unnecessary Transform node with the TransformChange message
2025-01-30 03:17:31 -08:00
Keavon Chambers
eb0ff20d3c
Instance tables refactor part 1: wrap graphical data in the new Instances<T> struct ( #2230 )
...
* Port VectorData to Instances<VectorData>
* Port ImageFrame<P> and TextureFrame to Instances<ImageFrame<P>> and Instances<TextureFrame>
* Avoid mutation with the TransformMut trait
* Port GraphicGroup to Instances<GraphicGroup>
* It compiles!
* Organize debugging
* Document upgrading
* Fix Brush node
* Restore TransformMut in lieu of TransformSet trait
* Fix tests
* Final code review
2025-01-28 23:51:12 -08:00
Keavon Chambers
eada1eba54
Update content on the website hoe page, roadmap, and donate page
2025-01-25 04:29:40 -08:00
Keavon Chambers
8505ed3f10
Improve older document upgrading compatibility and make node type errors clearer ( #2201 )
...
* Improve older document upgrading compatibility and make node type errors clearer
Misc.
* Fixes
* Avoid unwrap
2025-01-21 01:40:43 -08:00
Keavon Chambers
9a25555732
Add marbled mandelbrot as unpublished demo art
2025-01-18 20:00:06 -08:00
Keavon Chambers
b36521e588
Improve readability of the donation page
2025-01-18 01:29:01 -08:00
Keavon Chambers
ab724d8b00
Add the 2024 yearly report to the blog
2025-01-17 16:03:43 -08:00
Keavon Chambers
b7907bc96f
Add Stipe donations to the website and polish other pages
2025-01-17 15:21:57 -08:00
Keavon Chambers
9ad6c31483
Remove blob URL dead code and clean up more frontend code ( #2199 )
2025-01-14 13:08:47 -08:00
Keavon Chambers
1e62af88cd
Remove trailing zeros in rendered SVG path output
2025-01-13 02:56:33 -08:00
Keavon Chambers
3582126ded
Remove the Pen tool's anchor square under the cursor when drawing a not-yet-placed segment
2025-01-10 13:12:51 -08:00
Keavon Chambers
51d1c4eeac
Fix drawing new layers not being put next to nested selected layers
...
A regression introduced in #2110
2025-01-09 20:37:49 -08:00
Keavon Chambers
07601a5c6c
Improve snapping with better snap target names, tooltips, cleaner overlay labels, code cleanup
2025-01-09 19:03:14 -08:00
Keavon Chambers
ae2637e08e
More website loading speed and code improvements
2025-01-08 20:49:42 -08:00
Keavon Chambers
68e6bec9b5
Reduce website loading times and related code cleanup
2025-01-08 18:29:54 -08:00
Keavon Chambers
93a60daa24
Comprehensively update user manual and contributor guide, add Adam to core team
2025-01-08 03:52:11 -08:00
Keavon Chambers
9eb544df74
Rename "options/top bar" terminology to "control bar" and update comments
2025-01-07 17:33:45 -08:00
Keavon Chambers
1c880daea2
Fix isometric dotted grid and avoid antialiasing on dashed line overlays
2025-01-07 17:27:35 -08:00
Keavon Chambers
54926d5474
We reached 10k stars on GitHub!
2024-12-31 10:14:33 -08:00
Keavon Chambers
740fcb73cc
Remove the hexagon shape from the above-the-fold part of the website homepage
2024-12-30 20:26:05 -08:00