From 0f81c9b1eeeb87eabc908f9f44c2fc4632133c91 Mon Sep 17 00:00:00 2001 From: hypercube <0hypercube@gmail.com> Date: Mon, 30 Dec 2024 10:35:52 +0000 Subject: [PATCH 1/4] Q4 blog draft --- ...-12-30-graphite-progress-report-q4-2024.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md diff --git a/website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md b/website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md new file mode 100644 index 0000000000..56a4b66fc6 --- /dev/null +++ b/website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md @@ -0,0 +1,146 @@ ++++ +title = "Graphite progress report (Q4 2024)" +date = 2024-12-30 +[extra] +banner = "..." +banner_png = "..." +author = "Keavon Chambers & Hypercube" +summary = "Graphite's Q4 2024 update includes a multitude of bug fixes and quality of life improvements." +reddit = "..." +twitter = "..." ++++ + +[Graphite](/), a new open source 2D procedural graphics editor, has spent October-December on a multitude of smaller quality-of-life features and bug fixes, making Graphite a usable alternative to vector graphics software such as Inkscape for the web. + +All Q4 2024 commits may be [viewed in this list](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-10-01&until=2024-12-31) and all noteworthy changes are detailed below. + + + +This is the forth in our series of quarterly progress reports (congratulations on a full year @Keavon). If you missed the [last one](../graphite-progress-report-q3-2024), be sure to check it out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars of GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.rs), too. + +The new *todo!()* artwork shown here ... + + +
+ + Vector art of ... + +

+ + todo!() + +
+ + Open this artwork to
explore it yourself. +
+

+
+ +## Additions + + +- Add line height and character spacing to the Text node ([#2016](https://github.com/GraphiteEditor/Graphite/pull/2016)) +- Add support for pinning nodes in the Properties panel ([commit e6d8c47](https://github.com/GraphiteEditor/Graphite/commit/e6d8c4743d2aff15985c929df2cc7381a61908a0)) +- New demo artwork: "Changing Seasons" ([commit fa6b5f2](https://github.com/GraphiteEditor/Graphite/commit/fa6b5f298adf395362e1aaa2c07be89fa89eaee2)) +- New node: Offset Path ([#2030](https://github.com/GraphiteEditor/Graphite/pull/2030)) +- Make Copy to Points and (Circular) Repeat and nodes output group data, and add flattening nodes ([#2011](https://github.com/GraphiteEditor/Graphite/pull/2011)) +- Allow the Fill and Stroke nodes to work on groups ([#2046](https://github.com/GraphiteEditor/Graphite/pull/2046)) +- Add switch node and fix log to console node ([#2064](https://github.com/GraphiteEditor/Graphite/pull/2064)) +- New node: Bevel ([#2067](https://github.com/GraphiteEditor/Graphite/pull/2067)) +- Add a node insertion button and layer renaming from the Properties panel ([#2072](https://github.com/GraphiteEditor/Graphite/pull/2072)) +- In the Path tool, make Space shift the anchor while dragging handles ([#2065](https://github.com/GraphiteEditor/Graphite/pull/2065)) +- Add Path tool support for the Tab key swapping to dragging the opposite handle ([#2058](https://github.com/GraphiteEditor/Graphite/pull/2058)) +- Allow the Pen tool to connect layers by their endpoints, merging into a single layer ([#2076](https://github.com/GraphiteEditor/Graphite/pull/2076)) +- New nodes: "Clamp", "To U32", and "To U64" ([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087)) +- New node: Jitter Points ([commit 7d86bf4](https://github.com/GraphiteEditor/Graphite/commit/7d86bf4abf7edfe6a5d021075e050614bee07c13)) +- Improve the node graph with revamped top bar and disabling tools when graph is open ([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093)) +- Add merging nodes into a subgraph with Ctrl+M and basic subgraph signature customization ([#2097](https://github.com/GraphiteEditor/Graphite/pull/2097)) +- New node: Dot Product ([#2126](https://github.com/GraphiteEditor/Graphite/pull/2126)) +- New node: Math ([#2121](https://github.com/GraphiteEditor/Graphite/pull/2121)) +- Add Freehand tool drawing new subpaths on an existing layer with Shift held ([commit ed119ad](https://github.com/GraphiteEditor/Graphite/commit/ed119ad3d799030dbc488ccfc8ca9ad057eeff2c)) +- Automatically place layers into the artboard they're drawn inside of ([#2110](https://github.com/GraphiteEditor/Graphite/pull/2110)) +- Add more actions to the Layer menu bar entries ([commit feba874](https://github.com/GraphiteEditor/Graphite/commit/feba87449bb490e47df6f267576bec5ab4238dc3)) +- Add selection removal to the Select tool's box select (Ctrl+Shift modifier) ([#2162](https://github.com/GraphiteEditor/Graphite/pull/2162)) + + +## Fixes +- Make Upload Texture node resolution-aware ([#2018](https://github.com/GraphiteEditor/Graphite/pull/2018)) +- Always close subpaths before applying boolean ops ([#2014](https://github.com/GraphiteEditor/Graphite/pull/2014)) +- Fix double clicking anchor to convert between smooth and sharp ([#2023](https://github.com/GraphiteEditor/Graphite/pull/2023)) +- Fix faulty contravariance checking ([#2025](https://github.com/GraphiteEditor/Graphite/pull/2025)) +- Fix the Scatter Points node ([commit 7a56af0](https://github.com/GraphiteEditor/Graphite/commit/7a56af01efc82460e780c78b008a52487972a7eb)) +- Update Wasm dependencies to fix WebGPU spec change crash in Firefox with Vello ([#2027](https://github.com/GraphiteEditor/Graphite/pull/2027)) +- Factor in artboard clipping to the click target x-ray function ([#2028](https://github.com/GraphiteEditor/Graphite/pull/2028)) +- Fix Ctrl+H layer hiding and Ctrl+L layer locking only working with the graph open ([#2029](https://github.com/GraphiteEditor/Graphite/pull/2029)) +- Improve text overlay styling and fix artboard label positioning bug ([#2032](https://github.com/GraphiteEditor/Graphite/pull/2032)) +- Fix crash from empty document with no artboards introduced in #2028 ([#2036](https://github.com/GraphiteEditor/Graphite/pull/2036)) +- Fix brush tool broken by #2011 ([#2045](https://github.com/GraphiteEditor/Graphite/pull/2045)) +- Allow multiple top output wires to come from layers ([#2049](https://github.com/GraphiteEditor/Graphite/pull/2049)) +- Fix various crashes and bugs ([#2075](https://github.com/GraphiteEditor/Graphite/pull/2075)) +- Fix gradient render transforms with Vello ([#2059](https://github.com/GraphiteEditor/Graphite/pull/2059)) +- Fix alignment snapping not preserving aspect ratio when Shift is held ([#2062](https://github.com/GraphiteEditor/Graphite/pull/2062)) +- Fix Text tool clearing text when hitting Escape by changing it to commit the edit instead ([#2052](https://github.com/GraphiteEditor/Graphite/pull/2052)) +- Allow the Path tool to edit an upstream path even if there's a type conversion midway ([#2055](https://github.com/GraphiteEditor/Graphite/pull/2055)) +- Fix layer name text input ([#2081](https://github.com/GraphiteEditor/Graphite/pull/2081)) +- Fix NumberInput widget not being reactive to changes to the unit ([#2080](https://github.com/GraphiteEditor/Graphite/pull/2080)) +- Improve Sample Points, Scatter Points, and Splines from Points to include segments and work with subpaths ([#2085](https://github.com/GraphiteEditor/Graphite/pull/2085)) +- Avoid sometimes breaking the selected layer upon switching away from the Select tool ([commit 8d3da83](https://github.com/GraphiteEditor/Graphite/commit/8d3da83606c23366d2688602afbc0917e7224e68)) +- Hide the left border notch in layers when a wire isn't entering from the layer's left ([commit 12ca060](https://github.com/GraphiteEditor/Graphite/commit/12ca06035cd7463ed895671ff7eebe53fde655c6)) +- Fix point nudging to work in document space ([#2095](https://github.com/GraphiteEditor/Graphite/pull/2095)) +- Fix Bevel node crash with zero-length segments ([#2096](https://github.com/GraphiteEditor/Graphite/pull/2096)) +- Fix the spline node algorithm to be continuous across start/end points ([#2092](https://github.com/GraphiteEditor/Graphite/pull/2092)) +- Improve nudging when tilted and add Artboard tool nudge resizing; disable menu bar entries when no layer is selected ([#2098](https://github.com/GraphiteEditor/Graphite/pull/2098)) +- Add Brush tool warning; move font list loading to document creation time ([commit de366f9](https://github.com/GraphiteEditor/Graphite/commit/de366f951424fcdf4463a419db3fa659910fabfd)) +- Make the Pen tool only append new paths when Shift is held ([#2102](https://github.com/GraphiteEditor/Graphite/pull/2102)) +- Make Pen tool always snap to endpoint anchors, even when snapping is off ([#2107](https://github.com/GraphiteEditor/Graphite/pull/2107)) +- Fix crash when upgrading a document with a Modulo node from 3 commits ago ([commit 4c4d559](https://github.com/GraphiteEditor/Graphite/commit/4c4d559d97b4d131d2777c0aab19590531ae47a9)) +- Clean up editor preferences dialog ([commit 99cf8f0](https://github.com/GraphiteEditor/Graphite/commit/99cf8f0c4f91a051b59fc2c9e5cc6c7417bdd74b)) +- Refactor collection of snap targets ([#2114](https://github.com/GraphiteEditor/Graphite/pull/2114)) +- Remove Double-Click Behavior for Switching to Path Tool on Non-Path Layers ([#2116](https://github.com/GraphiteEditor/Graphite/pull/2116)) +- Disabling colinear state when both the handles are selected and moved ([#2120](https://github.com/GraphiteEditor/Graphite/pull/2120)) +- Fix bitmap bounding box ([#2122](https://github.com/GraphiteEditor/Graphite/pull/2122)) +- Fixes shortcut key not showed in File->Close ([#2135](https://github.com/GraphiteEditor/Graphite/pull/2135)) +- Fix SVG `viewBox` capitalization in renderer ([#2131](https://github.com/GraphiteEditor/Graphite/pull/2131)) +- Tidy up the UI with clearer Layers panel selection marks and removal of most "coming soon" UI elements ([commit 1264ea8](https://github.com/GraphiteEditor/Graphite/commit/1264ea8246cbb06e0602a93be983762ab17adf30)) +- Improve issues with selection history ([#2138](https://github.com/GraphiteEditor/Graphite/pull/2138)) +- Fix transform cage rotation abort causing broken state upon next transformation ([#2149](https://github.com/GraphiteEditor/Graphite/pull/2149)) +- Make Path tool deselect all points on single-click, and select all on double-click, of shape's fill ([#2148](https://github.com/GraphiteEditor/Graphite/pull/2148)) +- Fix Select tool's box selection not being able to extend a selection with shift ([#2157](https://github.com/GraphiteEditor/Graphite/pull/2157)) +- Fix several bugged vector-related nodes ([commit b81f483](https://github.com/GraphiteEditor/Graphite/commit/b81f48385afc8c9c27820ffe8d5953529f89b7bd)) +- Improve quick measurement overlays across all possible arrangement scenarios ([#2147](https://github.com/GraphiteEditor/Graphite/pull/2147)) +- Improve quick measurement overlays with better number alignment and decimal rounding ([#2155](https://github.com/GraphiteEditor/Graphite/pull/2155)) +- Improve Text tool click targets on text layers to use the text box ([#2145](https://github.com/GraphiteEditor/Graphite/pull/2145)) + +## Internal +- Simplify the Bezier-rs interactive web demo code ([#2020](https://github.com/GraphiteEditor/Graphite/pull/2020)) +- Fix/suppress new Clippy warnings introduced in Rust 1.82 ([commit a395fbf](https://github.com/GraphiteEditor/Graphite/commit/a395fbf0637c23b8b05a7c451ff7b8421587b655)) +- Raw-rs: Refactor to run multiple steps in a single loop ([#1972](https://github.com/GraphiteEditor/Graphite/pull/1972)) +- Raw-rs: Fix naming convention of matrices ([#2071](https://github.com/GraphiteEditor/Graphite/pull/2071)) +- Raw-rs: Remove from workspace ([#2066](https://github.com/GraphiteEditor/Graphite/pull/2066)) +- Clean up old usages of `NodeId(generate_uuid())` by replacing it with `NodeId::new()` ([#2009](https://github.com/GraphiteEditor/Graphite/pull/2009)) +- Fix Bezier-rs web demos failing to run wasm-opt in CI ([commit 4df7803](https://github.com/GraphiteEditor/Graphite/commit/4df780391c0cbb87b12812d0249ed9b62e2740e4)) +- Raw-rs: Remove fortuples dependency ([#2082](https://github.com/GraphiteEditor/Graphite/pull/2082)) +- Rename Raw-rs to Rawkit ([#2088](https://github.com/GraphiteEditor/Graphite/pull/2088)) +- Parse description from node doc comments ([#2089](https://github.com/GraphiteEditor/Graphite/pull/2089)) +- Upgrade and document the math operation nodes ([commit d649052](https://github.com/GraphiteEditor/Graphite/commit/d649052255c10c15754c3a3707f2edf996d2468d)) +- Bezier-rs: Make rectangle constructor produce linear segments ([#2109](https://github.com/GraphiteEditor/Graphite/pull/2109)) +- Add math-parser library ([#2033](https://github.com/GraphiteEditor/Graphite/pull/2033)) +- Fix clippy lints ([#2119](https://github.com/GraphiteEditor/Graphite/pull/2119)) +- Simplify the implementation of the message buffering ([#2123](https://github.com/GraphiteEditor/Graphite/pull/2123)) +- Update some dependencies ([#2134](https://github.com/GraphiteEditor/Graphite/pull/2134)) +- Parse doc comments on node parameters ([#2163](https://github.com/GraphiteEditor/Graphite/pull/2163)) + +## Website +- Blog post: Graphite progress report (Q3 2024) ([#2013](https://github.com/GraphiteEditor/Graphite/pull/2013)) +- Update the screenshots on the website home page carousel ([commit f892687](https://github.com/GraphiteEditor/Graphite/commit/f89268757614bda5f949144f84ccc79bd33ddec2)) +- Update the website roadmap and other details ([commit d7a271f](https://github.com/GraphiteEditor/Graphite/commit/d7a271f67595863835e80e58636fead9b1fe0a1d)) + + +## Announcements + + +### Community art contest + +There were no submissions to the Q4 art contest. Post your creations in the `#🎨art-showcase` channel in [our Discord](https://discord.graphite.rs) before the end of March to be featured in the Q1 progress report. From 8201c388b3b7d5d56f5ab4a16c0ecb91712613e3 Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Sat, 15 Feb 2025 22:39:12 -0800 Subject: [PATCH 2/4] Make all the change messages descriptive for readers --- ...-10-15-graphite-progress-report-q3-2024.md | 2 +- ...-12-30-graphite-progress-report-q4-2024.md | 203 +++++++++--------- 2 files changed, 103 insertions(+), 102 deletions(-) diff --git a/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md b/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md index e07b83fc43..17e0cca071 100644 --- a/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md +++ b/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md @@ -385,6 +385,6 @@ We're excited to be participating in [Nodevember](https://nodevember.io/) next m ### Community art contest -Congratulations to [VDawg](https://www.instagram.com/vdawg.jpg/), the winner of the community art contest, whose work is featured below. The next contest is open now! Submit before the end of the year to be featured in the Q4 progress report by posting your creations in the `#🎨art-showcase` channel in [our Discord](https://discord.graphite.rs). +Congratulations to [VDawg](https://www.instagram.com/vdawg.jpg/), the winner of the community art contest, whose work is featured below. Winning artwork depicts a dark landscape with an ethereal diamond forming a constellation with the stars above diff --git a/website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md b/website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md index 56a4b66fc6..a1fbfb8488 100644 --- a/website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md +++ b/website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md @@ -5,9 +5,7 @@ date = 2024-12-30 banner = "..." banner_png = "..." author = "Keavon Chambers & Hypercube" -summary = "Graphite's Q4 2024 update includes a multitude of bug fixes and quality of life improvements." -reddit = "..." -twitter = "..." +summary = "TODO: Summary and date above" +++ [Graphite](/), a new open source 2D procedural graphics editor, has spent October-December on a multitude of smaller quality-of-life features and bug fixes, making Graphite a usable alternative to vector graphics software such as Inkscape for the web. @@ -20,7 +18,6 @@ This is the forth in our series of quarterly progress reports (congratulations o The new *todo!()* artwork shown here ... -
Vector art of ... @@ -41,106 +38,110 @@ The new *todo!()* artwork shown here ... -- Add line height and character spacing to the Text node ([#2016](https://github.com/GraphiteEditor/Graphite/pull/2016)) -- Add support for pinning nodes in the Properties panel ([commit e6d8c47](https://github.com/GraphiteEditor/Graphite/commit/e6d8c4743d2aff15985c929df2cc7381a61908a0)) -- New demo artwork: "Changing Seasons" ([commit fa6b5f2](https://github.com/GraphiteEditor/Graphite/commit/fa6b5f298adf395362e1aaa2c07be89fa89eaee2)) -- New node: Offset Path ([#2030](https://github.com/GraphiteEditor/Graphite/pull/2030)) -- Make Copy to Points and (Circular) Repeat and nodes output group data, and add flattening nodes ([#2011](https://github.com/GraphiteEditor/Graphite/pull/2011)) -- Allow the Fill and Stroke nodes to work on groups ([#2046](https://github.com/GraphiteEditor/Graphite/pull/2046)) -- Add switch node and fix log to console node ([#2064](https://github.com/GraphiteEditor/Graphite/pull/2064)) -- New node: Bevel ([#2067](https://github.com/GraphiteEditor/Graphite/pull/2067)) -- Add a node insertion button and layer renaming from the Properties panel ([#2072](https://github.com/GraphiteEditor/Graphite/pull/2072)) -- In the Path tool, make Space shift the anchor while dragging handles ([#2065](https://github.com/GraphiteEditor/Graphite/pull/2065)) -- Add Path tool support for the Tab key swapping to dragging the opposite handle ([#2058](https://github.com/GraphiteEditor/Graphite/pull/2058)) -- Allow the Pen tool to connect layers by their endpoints, merging into a single layer ([#2076](https://github.com/GraphiteEditor/Graphite/pull/2076)) -- New nodes: "Clamp", "To U32", and "To U64" ([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087)) -- New node: Jitter Points ([commit 7d86bf4](https://github.com/GraphiteEditor/Graphite/commit/7d86bf4abf7edfe6a5d021075e050614bee07c13)) -- Improve the node graph with revamped top bar and disabling tools when graph is open ([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093)) -- Add merging nodes into a subgraph with Ctrl+M and basic subgraph signature customization ([#2097](https://github.com/GraphiteEditor/Graphite/pull/2097)) -- New node: Dot Product ([#2126](https://github.com/GraphiteEditor/Graphite/pull/2126)) -- New node: Math ([#2121](https://github.com/GraphiteEditor/Graphite/pull/2121)) -- Add Freehand tool drawing new subpaths on an existing layer with Shift held ([commit ed119ad](https://github.com/GraphiteEditor/Graphite/commit/ed119ad3d799030dbc488ccfc8ca9ad057eeff2c)) -- Automatically place layers into the artboard they're drawn inside of ([#2110](https://github.com/GraphiteEditor/Graphite/pull/2110)) -- Add more actions to the Layer menu bar entries ([commit feba874](https://github.com/GraphiteEditor/Graphite/commit/feba87449bb490e47df6f267576bec5ab4238dc3)) -- Add selection removal to the Select tool's box select (Ctrl+Shift modifier) ([#2162](https://github.com/GraphiteEditor/Graphite/pull/2162)) - +- Text controls for line height, character spacing, and wrappable box areas that can be dragged with the Text tool ([#2016](https://github.com/GraphiteEditor/Graphite/pull/2016), [#2118](https://github.com/GraphiteEditor/Graphite/pull/2118)) +- Pinable node sections in the Properties panel ([commit e6d8c47](https://github.com/GraphiteEditor/Graphite/commit/e6d8c4743d2aff15985c929df2cc7381a61908a0)) +- New demo artwork, *Changing Seasons*, featured in the [last blog post](../graphite-progress-report-q3-2024) ([commit fa6b5f2](https://github.com/GraphiteEditor/Graphite/commit/fa6b5f298adf395362e1aaa2c07be89fa89eaee2)) + +
+ + Vector art of Changing Seasons + +

+ + Changing Seasons + +
+ + Open this artwork to
explore it yourself. +
+

+
+ +- *Offset Path* node that expands or contracts a vector shape ([#2030](https://github.com/GraphiteEditor/Graphite/pull/2030)) +- *Flatten Vector Elements* node that turns multiple layers of vector paths into a single combined path; and changes to the *Copy to Points*, *Repeat*, and *Circular Repeat* nodes so they output group data instead of a single vector path, allowing each separate layer to be modified by nodes which operate on groups (like *Assign Colors*), or flattened with *Flatten Vector Elements* to have the prior behavior ([#2011](https://github.com/GraphiteEditor/Graphite/pull/2011), [#2045](https://github.com/GraphiteEditor/Graphite/pull/2045)) +- Support for *Fill* and *Stroke* nodes with groups, applying to each vector layer within ([#2046](https://github.com/GraphiteEditor/Graphite/pull/2046)) +- *Switch* node that routes one of two data connections based on a true or false value ([#2064](https://github.com/GraphiteEditor/Graphite/pull/2064)) +- *Bevel* node that flattens the corners of vector shapes ([#2067](https://github.com/GraphiteEditor/Graphite/pull/2067), [#2096](https://github.com/GraphiteEditor/Graphite/pull/2096)) +- *Jitter Points* node that randomly offsets each point in a vector path ([commit 7d86bf4](https://github.com/GraphiteEditor/Graphite/commit/7d86bf4abf7edfe6a5d021075e050614bee07c13)) +- Node insertion button, and layer renaming, directly from the Properties panel ([#2072](https://github.com/GraphiteEditor/Graphite/pull/2072), [#2081](https://github.com/GraphiteEditor/Graphite/pull/2081)) +- Path tool feature where pressing Space while dragging a handle makes the anchor be dragged as well ([#2065](https://github.com/GraphiteEditor/Graphite/pull/2065)) +- Path tool feature where pressing Tab while dragging a handle makes it swap to the opposite handle ([#2058](https://github.com/GraphiteEditor/Graphite/pull/2058)) +- Pen tool feature allowing the connection of layers by their endpoints so they both get merged into a single layer ([#2076](https://github.com/GraphiteEditor/Graphite/pull/2076)) +- *Clamp* node that limits an input number between a minimum and maximum range ([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087)) +- *To U32* and *To U64* node that converts numbers to a positive integer type required by a few nodes, as a workaround for automatic type conversion not being fully supported yet ([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087)) +- *Dot Product* node that calculates the mathematical dot product between two numerical vectors ([#2126](https://github.com/GraphiteEditor/Graphite/pull/2126)) +- *Math* node that calculates a full math expression ([#2121](https://github.com/GraphiteEditor/Graphite/pull/2121)) +- Node graph control bar revamp ([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093)) +- Node graph support for making a custom node by merging the selected nodes into a subgraph with CtrlM (macOS: ⌘M) ([#2097](https://github.com/GraphiteEditor/Graphite/pull/2097)) +- Freehand tool feature for drawing new subpaths on an existing vector layer by holding Shift ([commit ed119ad](https://github.com/GraphiteEditor/Graphite/commit/ed119ad3d799030dbc488ccfc8ca9ad057eeff2c)) +- Proper automatic placement of layers into the artboard they're drawn inside of ([#2110](https://github.com/GraphiteEditor/Graphite/pull/2110)) +- Menu bar additions of *Layer* > *New Layer*, *Layer* > *Group Selected*, and *Layer* > *Delete Selected* ([commit feba874](https://github.com/GraphiteEditor/Graphite/commit/feba87449bb490e47df6f267576bec5ab4238dc3)) +- Select tool box selection feature for subtracting the targetted layers from the active selection with a modifier key as shown in the contextual input hints at the bottom of the editor ([#2162](https://github.com/GraphiteEditor/Graphite/pull/2162)) +- Path tool feature for snapping to 15° increments and locking the angles of dragged handles when Shift and Ctrl modifier keys are pressed ([#2160](https://github.com/GraphiteEditor/Graphite/pull/2160)) +- Support for multiple top output wires connected to the same layer ([#2049](https://github.com/GraphiteEditor/Graphite/pull/2049)) +- Style improvements to the Layers panel UI to clarify which layers contain selected children, even if hidden within a collapsed layer which previously obscured where selected layers were within the hierarchy ([commit 1264ea8](https://github.com/GraphiteEditor/Graphite/commit/1264ea8246cbb06e0602a93be983762ab17adf30)) +- Revamped quick measurement overlays now supporting every layer arrangement scenario ([#2147](https://github.com/GraphiteEditor/Graphite/pull/2147), [#2155](https://github.com/GraphiteEditor/Graphite/pull/2155)) +- Degrees/radians option in the trig-related math nodes and "Always Positive" option in the *Modulo* node for more convenient usage of the math nodes ([commit d649052](https://github.com/GraphiteEditor/Graphite/commit/d649052255c10c15754c3a3707f2edf996d2468d)) ## Fixes -- Make Upload Texture node resolution-aware ([#2018](https://github.com/GraphiteEditor/Graphite/pull/2018)) -- Always close subpaths before applying boolean ops ([#2014](https://github.com/GraphiteEditor/Graphite/pull/2014)) -- Fix double clicking anchor to convert between smooth and sharp ([#2023](https://github.com/GraphiteEditor/Graphite/pull/2023)) -- Fix faulty contravariance checking ([#2025](https://github.com/GraphiteEditor/Graphite/pull/2025)) -- Fix the Scatter Points node ([commit 7a56af0](https://github.com/GraphiteEditor/Graphite/commit/7a56af01efc82460e780c78b008a52487972a7eb)) -- Update Wasm dependencies to fix WebGPU spec change crash in Firefox with Vello ([#2027](https://github.com/GraphiteEditor/Graphite/pull/2027)) -- Factor in artboard clipping to the click target x-ray function ([#2028](https://github.com/GraphiteEditor/Graphite/pull/2028)) -- Fix Ctrl+H layer hiding and Ctrl+L layer locking only working with the graph open ([#2029](https://github.com/GraphiteEditor/Graphite/pull/2029)) -- Improve text overlay styling and fix artboard label positioning bug ([#2032](https://github.com/GraphiteEditor/Graphite/pull/2032)) -- Fix crash from empty document with no artboards introduced in #2028 ([#2036](https://github.com/GraphiteEditor/Graphite/pull/2036)) -- Fix brush tool broken by #2011 ([#2045](https://github.com/GraphiteEditor/Graphite/pull/2045)) -- Allow multiple top output wires to come from layers ([#2049](https://github.com/GraphiteEditor/Graphite/pull/2049)) -- Fix various crashes and bugs ([#2075](https://github.com/GraphiteEditor/Graphite/pull/2075)) -- Fix gradient render transforms with Vello ([#2059](https://github.com/GraphiteEditor/Graphite/pull/2059)) -- Fix alignment snapping not preserving aspect ratio when Shift is held ([#2062](https://github.com/GraphiteEditor/Graphite/pull/2062)) -- Fix Text tool clearing text when hitting Escape by changing it to commit the edit instead ([#2052](https://github.com/GraphiteEditor/Graphite/pull/2052)) -- Allow the Path tool to edit an upstream path even if there's a type conversion midway ([#2055](https://github.com/GraphiteEditor/Graphite/pull/2055)) -- Fix layer name text input ([#2081](https://github.com/GraphiteEditor/Graphite/pull/2081)) -- Fix NumberInput widget not being reactive to changes to the unit ([#2080](https://github.com/GraphiteEditor/Graphite/pull/2080)) -- Improve Sample Points, Scatter Points, and Splines from Points to include segments and work with subpaths ([#2085](https://github.com/GraphiteEditor/Graphite/pull/2085)) -- Avoid sometimes breaking the selected layer upon switching away from the Select tool ([commit 8d3da83](https://github.com/GraphiteEditor/Graphite/commit/8d3da83606c23366d2688602afbc0917e7224e68)) -- Hide the left border notch in layers when a wire isn't entering from the layer's left ([commit 12ca060](https://github.com/GraphiteEditor/Graphite/commit/12ca06035cd7463ed895671ff7eebe53fde655c6)) -- Fix point nudging to work in document space ([#2095](https://github.com/GraphiteEditor/Graphite/pull/2095)) -- Fix Bevel node crash with zero-length segments ([#2096](https://github.com/GraphiteEditor/Graphite/pull/2096)) -- Fix the spline node algorithm to be continuous across start/end points ([#2092](https://github.com/GraphiteEditor/Graphite/pull/2092)) -- Improve nudging when tilted and add Artboard tool nudge resizing; disable menu bar entries when no layer is selected ([#2098](https://github.com/GraphiteEditor/Graphite/pull/2098)) -- Add Brush tool warning; move font list loading to document creation time ([commit de366f9](https://github.com/GraphiteEditor/Graphite/commit/de366f951424fcdf4463a419db3fa659910fabfd)) -- Make the Pen tool only append new paths when Shift is held ([#2102](https://github.com/GraphiteEditor/Graphite/pull/2102)) -- Make Pen tool always snap to endpoint anchors, even when snapping is off ([#2107](https://github.com/GraphiteEditor/Graphite/pull/2107)) -- Fix crash when upgrading a document with a Modulo node from 3 commits ago ([commit 4c4d559](https://github.com/GraphiteEditor/Graphite/commit/4c4d559d97b4d131d2777c0aab19590531ae47a9)) -- Clean up editor preferences dialog ([commit 99cf8f0](https://github.com/GraphiteEditor/Graphite/commit/99cf8f0c4f91a051b59fc2c9e5cc6c7417bdd74b)) -- Refactor collection of snap targets ([#2114](https://github.com/GraphiteEditor/Graphite/pull/2114)) -- Remove Double-Click Behavior for Switching to Path Tool on Non-Path Layers ([#2116](https://github.com/GraphiteEditor/Graphite/pull/2116)) -- Disabling colinear state when both the handles are selected and moved ([#2120](https://github.com/GraphiteEditor/Graphite/pull/2120)) -- Fix bitmap bounding box ([#2122](https://github.com/GraphiteEditor/Graphite/pull/2122)) -- Fixes shortcut key not showed in File->Close ([#2135](https://github.com/GraphiteEditor/Graphite/pull/2135)) -- Fix SVG `viewBox` capitalization in renderer ([#2131](https://github.com/GraphiteEditor/Graphite/pull/2131)) -- Tidy up the UI with clearer Layers panel selection marks and removal of most "coming soon" UI elements ([commit 1264ea8](https://github.com/GraphiteEditor/Graphite/commit/1264ea8246cbb06e0602a93be983762ab17adf30)) -- Improve issues with selection history ([#2138](https://github.com/GraphiteEditor/Graphite/pull/2138)) -- Fix transform cage rotation abort causing broken state upon next transformation ([#2149](https://github.com/GraphiteEditor/Graphite/pull/2149)) -- Make Path tool deselect all points on single-click, and select all on double-click, of shape's fill ([#2148](https://github.com/GraphiteEditor/Graphite/pull/2148)) -- Fix Select tool's box selection not being able to extend a selection with shift ([#2157](https://github.com/GraphiteEditor/Graphite/pull/2157)) -- Fix several bugged vector-related nodes ([commit b81f483](https://github.com/GraphiteEditor/Graphite/commit/b81f48385afc8c9c27820ffe8d5953529f89b7bd)) -- Improve quick measurement overlays across all possible arrangement scenarios ([#2147](https://github.com/GraphiteEditor/Graphite/pull/2147)) -- Improve quick measurement overlays with better number alignment and decimal rounding ([#2155](https://github.com/GraphiteEditor/Graphite/pull/2155)) -- Improve Text tool click targets on text layers to use the text box ([#2145](https://github.com/GraphiteEditor/Graphite/pull/2145)) +- Fix for viewport tools no longer remaining active in the background when the node graph is open ([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093)) +- Fix to boolean operations so open subpaths are automatically closed ([#2014](https://github.com/GraphiteEditor/Graphite/pull/2014)) +- Fix for a problem with double clicking an anchor for converting it between smooth and sharp ([#2023](https://github.com/GraphiteEditor/Graphite/pull/2023)) +- Fix for a *Scatter Points* node breakage ([commit 7a56af0](https://github.com/GraphiteEditor/Graphite/commit/7a56af01efc82460e780c78b008a52487972a7eb)) +- Fix for properly considering artboard clipping when calculating click targets ([#2028](https://github.com/GraphiteEditor/Graphite/pull/2028), [#2036](https://github.com/GraphiteEditor/Graphite/pull/2036)) +- Fix for CtrlH layer hiding and CtrlL layer locking only working with the graph open ([#2029](https://github.com/GraphiteEditor/Graphite/pull/2029)) +- Fix to artboard label positioning and styling of text overlays ([#2032](https://github.com/GraphiteEditor/Graphite/pull/2032)) +- Fix for an assortment of crashes and bugs ([#2075](https://github.com/GraphiteEditor/Graphite/pull/2075)) +- Fix for broken gradient transforms with the Vello renderer ([#2059](https://github.com/GraphiteEditor/Graphite/pull/2059)) +- Fix for alignment snapping not preserving aspect ratio when Shift is held ([#2062](https://github.com/GraphiteEditor/Graphite/pull/2062)) +- Fix for the Text tool clearing the text when hitting Esc ([#2052](https://github.com/GraphiteEditor/Graphite/pull/2052)) +- Fix for allowing the Path tool to edit an upstream vector path even if there's a type conversion midway ([#2055](https://github.com/GraphiteEditor/Graphite/pull/2055)) +- Fix for the number input widget not updating its unit symbol when changing to show another input field ([#2080](https://github.com/GraphiteEditor/Graphite/pull/2080)) +- Fix to make the *Sample Points*, *Scatter Points*, and *Splines from Points* nodes generate segments (not just invisible points) and work with subpaths ([#2085](https://github.com/GraphiteEditor/Graphite/pull/2085)) +- Fix for sometimes breaking the selected layer upon switching away from the Select tool ([commit 8d3da83](https://github.com/GraphiteEditor/Graphite/commit/8d3da83606c23366d2688602afbc0917e7224e68)) +- Fix to remove a visual cutout from the left border of a layer in the node graph when a wire doesn't entering through the cutout ([commit 12ca060](https://github.com/GraphiteEditor/Graphite/commit/12ca06035cd7463ed895671ff7eebe53fde655c6)) +- Fix to make point nudging with the Path tool work in document space ([#2095](https://github.com/GraphiteEditor/Graphite/pull/2095)) +- Fix to make the *Spline* node algorithm be continuous across start/end points ([#2092](https://github.com/GraphiteEditor/Graphite/pull/2092)) +- Fix to properly support layer nudging when the view is tilted and make nudge resizing work in the Artboard tool ([#2098](https://github.com/GraphiteEditor/Graphite/pull/2098)) +- Fix to disable menu bar entries when no layer is selected ([#2098](https://github.com/GraphiteEditor/Graphite/pull/2098)) +- Fix for clarifying the present state of the Brush tool with a warning message ([commit de366f9](https://github.com/GraphiteEditor/Graphite/commit/de366f951424fcdf4463a419db3fa659910fabfd)) +- Fix to load the editor faster by moving font catalog loading to document creation time ([commit de366f9](https://github.com/GraphiteEditor/Graphite/commit/de366f951424fcdf4463a419db3fa659910fabfd)) +- Fix to make the Pen tool only append new paths when Shift is held ([#2102](https://github.com/GraphiteEditor/Graphite/pull/2102)) +- Fix to make the Pen tool always snap to endpoint anchors, even when snapping is off ([#2107](https://github.com/GraphiteEditor/Graphite/pull/2107)) +- Fix crash when upgrading a document with a *Modulo* node from 3 commits ago ([commit 4c4d559](https://github.com/GraphiteEditor/Graphite/commit/4c4d559d97b4d131d2777c0aab19590531ae47a9)) +- Fix to clean up the consistency of the editor preferences dialog ([commit 99cf8f0](https://github.com/GraphiteEditor/Graphite/commit/99cf8f0c4f91a051b59fc2c9e5cc6c7417bdd74b)) +- Fix to remove the inconsistently functioning double-click behavior of switching to the Path tool on vector layers, which previously worked only on layers with a Path node ([#2116](https://github.com/GraphiteEditor/Graphite/pull/2116)) +- Fix for dragging a pair of colinear handles to break the colinearity so they can move without their anchor ([#2120](https://github.com/GraphiteEditor/Graphite/pull/2120)) +- Fix for the broken bounding box of image layers, which also impacted their layer thumbnails ([#2122](https://github.com/GraphiteEditor/Graphite/pull/2122)) +- Fix to restore the keyboard shortcut label in the menu bar's *File* > *Close* menu item ([#2135](https://github.com/GraphiteEditor/Graphite/pull/2135)) +- Fix to the syntax of exported SVG files that minorly deviated from spec and may have impact some strict SVG viewers ([#2131](https://github.com/GraphiteEditor/Graphite/pull/2131)) +- Fix for the UI by removing most "coming soon" elements left over from earlier times when placeholders were necessary ([commit 1264ea8](https://github.com/GraphiteEditor/Graphite/commit/1264ea8246cbb06e0602a93be983762ab17adf30)) +- Fix for issues with selection history ([#2138](https://github.com/GraphiteEditor/Graphite/pull/2138)) +- Fix for a cancellation of a transform cage rotation causing broken state upon the next transformation ([#2149](https://github.com/GraphiteEditor/Graphite/pull/2149)) +- Fix to make the Path tool deselect all of a filled shape's points when single-clicked, and select all when double-clicked ([#2148](https://github.com/GraphiteEditor/Graphite/pull/2148)) +- Fix for the Select tool's box selection not being able to extend a selection with Shift ([#2157](https://github.com/GraphiteEditor/Graphite/pull/2157)) +- Fix for several bugs in vector-related nodes ([commit b81f483](https://github.com/GraphiteEditor/Graphite/commit/b81f48385afc8c9c27820ffe8d5953529f89b7bd)) +- Fix for the Text tool making it easier to select existing text layers with more forgiving click targets ([#2145](https://github.com/GraphiteEditor/Graphite/pull/2145)) +- Fix for text layers getting deselected after clicking out of Text tool's interactive editing mode ([#2144](https://github.com/GraphiteEditor/Graphite/pull/2144)) +- Fix to make the Artboard tool shift its contents if resizing from the top/left so artwork remains stationary ([#2166](https://github.com/GraphiteEditor/Graphite/pull/2166)) + ## Internal -- Simplify the Bezier-rs interactive web demo code ([#2020](https://github.com/GraphiteEditor/Graphite/pull/2020)) -- Fix/suppress new Clippy warnings introduced in Rust 1.82 ([commit a395fbf](https://github.com/GraphiteEditor/Graphite/commit/a395fbf0637c23b8b05a7c451ff7b8421587b655)) -- Raw-rs: Refactor to run multiple steps in a single loop ([#1972](https://github.com/GraphiteEditor/Graphite/pull/1972)) -- Raw-rs: Fix naming convention of matrices ([#2071](https://github.com/GraphiteEditor/Graphite/pull/2071)) -- Raw-rs: Remove from workspace ([#2066](https://github.com/GraphiteEditor/Graphite/pull/2066)) -- Clean up old usages of `NodeId(generate_uuid())` by replacing it with `NodeId::new()` ([#2009](https://github.com/GraphiteEditor/Graphite/pull/2009)) -- Fix Bezier-rs web demos failing to run wasm-opt in CI ([commit 4df7803](https://github.com/GraphiteEditor/Graphite/commit/4df780391c0cbb87b12812d0249ed9b62e2740e4)) -- Raw-rs: Remove fortuples dependency ([#2082](https://github.com/GraphiteEditor/Graphite/pull/2082)) -- Rename Raw-rs to Rawkit ([#2088](https://github.com/GraphiteEditor/Graphite/pull/2088)) -- Parse description from node doc comments ([#2089](https://github.com/GraphiteEditor/Graphite/pull/2089)) -- Upgrade and document the math operation nodes ([commit d649052](https://github.com/GraphiteEditor/Graphite/commit/d649052255c10c15754c3a3707f2edf996d2468d)) -- Bezier-rs: Make rectangle constructor produce linear segments ([#2109](https://github.com/GraphiteEditor/Graphite/pull/2109)) -- Add math-parser library ([#2033](https://github.com/GraphiteEditor/Graphite/pull/2033)) -- Fix clippy lints ([#2119](https://github.com/GraphiteEditor/Graphite/pull/2119)) -- Simplify the implementation of the message buffering ([#2123](https://github.com/GraphiteEditor/Graphite/pull/2123)) -- Update some dependencies ([#2134](https://github.com/GraphiteEditor/Graphite/pull/2134)) -- Parse doc comments on node parameters ([#2163](https://github.com/GraphiteEditor/Graphite/pull/2163)) +- Change to make the *Upload Texture* node resolution-aware ([#2018](https://github.com/GraphiteEditor/Graphite/pull/2018)) +- Fix for faulty contravariance checking in the type system ([#2025](https://github.com/GraphiteEditor/Graphite/pull/2025)) +- Update of Wasm dependencies to fix a crash in Firefox with Vello due to a WebGPU spec change ([#2027](https://github.com/GraphiteEditor/Graphite/pull/2027)) +- Simplification of the Bezier-rs interactive web demo code ([#2020](https://github.com/GraphiteEditor/Graphite/pull/2020), [commit 4df7803](https://github.com/GraphiteEditor/Graphite/commit/4df780391c0cbb87b12812d0249ed9b62e2740e4)) +- Fix for Clippy code warnings ([commit a395fbf](https://github.com/GraphiteEditor/Graphite/commit/a395fbf0637c23b8b05a7c451ff7b8421587b655), [#2119](https://github.com/GraphiteEditor/Graphite/pull/2119)) +- Refactor of assorted parts of the RawKit crate ([#1972](https://github.com/GraphiteEditor/Graphite/pull/1972), [#2071](https://github.com/GraphiteEditor/Graphite/pull/2071), [#2066](https://github.com/GraphiteEditor/Graphite/pull/2066), [#2082](https://github.com/GraphiteEditor/Graphite/pull/2082), [#2088](https://github.com/GraphiteEditor/Graphite/pull/2088)) +- Code tidyness cleanup for node ID generation ([#2009](https://github.com/GraphiteEditor/Graphite/pull/2009)) +- Refactor collection of snap targets ([#2114](https://github.com/GraphiteEditor/Graphite/pull/2114)) +- System for parsing node and parameter descriptions from doc comments, enabling better node tooltips going forward ([#2089](https://github.com/GraphiteEditor/Graphite/pull/2089), [#2163](https://github.com/GraphiteEditor/Graphite/pull/2163), [commit d649052](https://github.com/GraphiteEditor/Graphite/commit/d649052255c10c15754c3a3707f2edf996d2468d)) +- Fix for the rectangle constructor in the Bezier-rs library to produce linear segments ([#2109](https://github.com/GraphiteEditor/Graphite/pull/2109)) +- Math-Parser library for reading and evaluating math expressions ([#2033](https://github.com/GraphiteEditor/Graphite/pull/2033)) +- Simplifications to the implementation of buffered message passing within the editor architecture ([#2123](https://github.com/GraphiteEditor/Graphite/pull/2123)) +- Updates to dependencies ([#2134](https://github.com/GraphiteEditor/Graphite/pull/2134)) ## Website -- Blog post: Graphite progress report (Q3 2024) ([#2013](https://github.com/GraphiteEditor/Graphite/pull/2013)) -- Update the screenshots on the website home page carousel ([commit f892687](https://github.com/GraphiteEditor/Graphite/commit/f89268757614bda5f949144f84ccc79bd33ddec2)) -- Update the website roadmap and other details ([commit d7a271f](https://github.com/GraphiteEditor/Graphite/commit/d7a271f67595863835e80e58636fead9b1fe0a1d)) - - -## Announcements - - -### Community art contest - -There were no submissions to the Q4 art contest. Post your creations in the `#🎨art-showcase` channel in [our Discord](https://discord.graphite.rs) before the end of March to be featured in the Q1 progress report. +- Publication of the previous blog post, [*Graphite progress report (Q3 2024)*](../graphite-progress-report-q3-2024) ([#2013](https://github.com/GraphiteEditor/Graphite/pull/2013)) +- Updates to the screenshots on the home page carousel ([commit f892687](https://github.com/GraphiteEditor/Graphite/commit/f89268757614bda5f949144f84ccc79bd33ddec2)) +- Updates to the website roadmap and other details ([commit d7a271f](https://github.com/GraphiteEditor/Graphite/commit/d7a271f67595863835e80e58636fead9b1fe0a1d), [commit ce0cd39](https://github.com/GraphiteEditor/Graphite/commit/ce0cd39c9b4291e76d59d5b7c427afd39702aed6), [commit 740fcb7](https://github.com/GraphiteEditor/Graphite/commit/740fcb73cc1202d89107a08f3dfccd88dd17a6a3), [commit 54926d5](https://github.com/GraphiteEditor/Graphite/commit/54926d5474f3bcaffd54d0fd0d2509e989cfa425)) From c8602c59fd6bb37016e9d3ff2c17725421a771df Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Tue, 25 Feb 2025 00:43:22 -0800 Subject: [PATCH 3/4] More --- ...-07-31-graphite-progress-report-q2-2024.md | 2 +- ...-10-15-graphite-progress-report-q3-2024.md | 2 +- ...12-31-graphite-progress-report-q4-2024.md} | 194 ++++++++++++++++-- 3 files changed, 182 insertions(+), 16 deletions(-) rename website/content/blog/{2024-12-30-graphite-progress-report-q4-2024.md => 2024-12-31-graphite-progress-report-q4-2024.md} (67%) diff --git a/website/content/blog/2024-07-31-graphite-progress-report-q2-2024.md b/website/content/blog/2024-07-31-graphite-progress-report-q2-2024.md index e2a468f3f9..72b73f0db3 100644 --- a/website/content/blog/2024-07-31-graphite-progress-report-q2-2024.md +++ b/website/content/blog/2024-07-31-graphite-progress-report-q2-2024.md @@ -17,7 +17,7 @@ Overall, editor functionality has been shaping up and becoming an all around use -This is the second of our quarterly progress report blog posts. If you missed the [first one](../graphite-progress-report-q1-2024), be sure to check it out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars of GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.rs), too. +This is the second of our quarterly progress report blog posts. If you missed the [first one](../graphite-progress-report-q1-2024), be sure to check it out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars on GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.rs), too. All Q2 2024 commits may be [viewed in this list](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-04-01&until=2024-06-30) and all noteworthy changes are detailed below. To showcase the much anticipated introduction of boolean path operations, the new *Painted Dreams* artwork shown here extensively utilizes nondestructive booleans. diff --git a/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md b/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md index 17e0cca071..149e0c3c6d 100644 --- a/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md +++ b/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md @@ -17,7 +17,7 @@ This has been the most productive quarter yet in the project's three-year histor -This is the third in our series of quarterly progress reports. If you missed the [first](../graphite-progress-report-q1-2024) or [second](../graphite-progress-report-q2-2024) ones, be sure to check them out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars of GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.rs), too. +This is the third in our series of quarterly progress reports. If you missed the [first](../graphite-progress-report-q1-2024) or [second](../graphite-progress-report-q2-2024) ones, be sure to check them out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars on GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.rs), too. The new *Changing Seasons* artwork shown here showcases some of the recently introduced nodes in this update. And it animates! Give it a try yourself by opening the artwork and dragging the percentage slider to morph from oak to maple leaves as the colors change. diff --git a/website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md b/website/content/blog/2024-12-31-graphite-progress-report-q4-2024.md similarity index 67% rename from website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md rename to website/content/blog/2024-12-31-graphite-progress-report-q4-2024.md index a1fbfb8488..fc57268c95 100644 --- a/website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md +++ b/website/content/blog/2024-12-31-graphite-progress-report-q4-2024.md @@ -1,30 +1,31 @@ +++ title = "Graphite progress report (Q4 2024)" -date = 2024-12-30 +date = 2025-03-31 [extra] -banner = "..." -banner_png = "..." +banner = "https://files.keavon.com/-/BelatedDoubleLonghornbeetle/Dunes.png" +banner_png = "https://files.keavon.com/-/BelatedDoubleLonghornbeetle/Dunes.png" author = "Keavon Chambers & Hypercube" summary = "TODO: Summary and date above" +css = ["/component/demo-artwork.css"] +++ -[Graphite](/), a new open source 2D procedural graphics editor, has spent October-December on a multitude of smaller quality-of-life features and bug fixes, making Graphite a usable alternative to vector graphics software such as Inkscape for the web. +[Graphite](/), a new open source 2D procedural graphics editor, has [wrapped up 2024](../year-in-review-2024-highlights-and-a-peek-at-2025) with a fourth quarter (October-December) focused on introducing **quality of life features** for both Graphite's interactive **tools-driven and procedural editing** workflows. All Q4 2024 commits may be [viewed in this list](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-10-01&until=2024-12-31) and all noteworthy changes are detailed below. -This is the forth in our series of quarterly progress reports (congratulations on a full year @Keavon). If you missed the [last one](../graphite-progress-report-q3-2024), be sure to check it out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars of GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.rs), too. +This is the fourth in our 2024 series of quarterly progress reports. If you missed [the previous post](../graphite-progress-report-q3-2024), be sure to check it out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars on GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.rs), too. -The new *todo!()* artwork shown here ... +To showcase the newly introduced feature of converting selected nodes into conveniently reusable subgraphs, the new *Procedural Dunes* artwork is presented below. Each dune layer is controlled just by a color, height, and random seed.
- Vector art of ... + Vector art of Procedural Dunes

- todo!() + Procedural Dunes
@@ -38,8 +39,28 @@ The new *todo!()* artwork shown here ... +- Node graph support for making a custom node by merging the selected nodes into a subgraph with the node context menu's "Merge Selected Nodes" option, or the shortcut CtrlM (macOS: ⌘M) ([#2097](https://github.com/GraphiteEditor/Graphite/pull/2097)) + +

+ +
+ - Text controls for line height, character spacing, and wrappable box areas that can be dragged with the Text tool ([#2016](https://github.com/GraphiteEditor/Graphite/pull/2016), [#2118](https://github.com/GraphiteEditor/Graphite/pull/2118)) + +
+ +
+ - Pinable node sections in the Properties panel ([commit e6d8c47](https://github.com/GraphiteEditor/Graphite/commit/e6d8c4743d2aff15985c929df2cc7381a61908a0)) +
+ +
- New demo artwork, *Changing Seasons*, featured in the [last blog post](../graphite-progress-report-q3-2024) ([commit fa6b5f2](https://github.com/GraphiteEditor/Graphite/commit/fa6b5f298adf395362e1aaa2c07be89fa89eaee2))
@@ -56,32 +77,177 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the

+
+ +
- *Offset Path* node that expands or contracts a vector shape ([#2030](https://github.com/GraphiteEditor/Graphite/pull/2030)) + +
+ +
+ - *Flatten Vector Elements* node that turns multiple layers of vector paths into a single combined path; and changes to the *Copy to Points*, *Repeat*, and *Circular Repeat* nodes so they output group data instead of a single vector path, allowing each separate layer to be modified by nodes which operate on groups (like *Assign Colors*), or flattened with *Flatten Vector Elements* to have the prior behavior ([#2011](https://github.com/GraphiteEditor/Graphite/pull/2011), [#2045](https://github.com/GraphiteEditor/Graphite/pull/2045)) + + TODO: + - Support for *Fill* and *Stroke* nodes with groups, applying to each vector layer within ([#2046](https://github.com/GraphiteEditor/Graphite/pull/2046)) + +
+ +
+ - *Switch* node that routes one of two data connections based on a true or false value ([#2064](https://github.com/GraphiteEditor/Graphite/pull/2064)) + +
+ +
+ - *Bevel* node that flattens the corners of vector shapes ([#2067](https://github.com/GraphiteEditor/Graphite/pull/2067), [#2096](https://github.com/GraphiteEditor/Graphite/pull/2096)) + +
+ +
+ - *Jitter Points* node that randomly offsets each point in a vector path ([commit 7d86bf4](https://github.com/GraphiteEditor/Graphite/commit/7d86bf4abf7edfe6a5d021075e050614bee07c13)) + +
+ +
+ - Node insertion button, and layer renaming, directly from the Properties panel ([#2072](https://github.com/GraphiteEditor/Graphite/pull/2072), [#2081](https://github.com/GraphiteEditor/Graphite/pull/2081)) + +
+ +
+ - Path tool feature where pressing Space while dragging a handle makes the anchor be dragged as well ([#2065](https://github.com/GraphiteEditor/Graphite/pull/2065)) + +
+ +
+ - Path tool feature where pressing Tab while dragging a handle makes it swap to the opposite handle ([#2058](https://github.com/GraphiteEditor/Graphite/pull/2058)) + +
+ +
+ - Pen tool feature allowing the connection of layers by their endpoints so they both get merged into a single layer ([#2076](https://github.com/GraphiteEditor/Graphite/pull/2076)) + +
+ +
+ - *Clamp* node that limits an input number between a minimum and maximum range ([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087)) -- *To U32* and *To U64* node that converts numbers to a positive integer type required by a few nodes, as a workaround for automatic type conversion not being fully supported yet ([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087)) + +
+ +
+ +- *To U32* and *To U64* nodes that convert numbers to a positive integer type required by a few nodes, as a workaround for automatic type conversion not being fully supported yet ([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087)) - *Dot Product* node that calculates the mathematical dot product between two numerical vectors ([#2126](https://github.com/GraphiteEditor/Graphite/pull/2126)) -- *Math* node that calculates a full math expression ([#2121](https://github.com/GraphiteEditor/Graphite/pull/2121)) +- *Math* node that calculates a custom math expression with variables "A" and "B" ([#2121](https://github.com/GraphiteEditor/Graphite/pull/2121)) + + TODO: + +- Degrees/radians option in the trig-related math nodes and "Always Positive" option in the *Modulo* node for more convenient usage of the math nodes ([commit d649052](https://github.com/GraphiteEditor/Graphite/commit/d649052255c10c15754c3a3707f2edf996d2468d)) + +
+ +
+ - Node graph control bar revamp ([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093)) -- Node graph support for making a custom node by merging the selected nodes into a subgraph with CtrlM (macOS: ⌘M) ([#2097](https://github.com/GraphiteEditor/Graphite/pull/2097)) + + TODO: + - Freehand tool feature for drawing new subpaths on an existing vector layer by holding Shift ([commit ed119ad](https://github.com/GraphiteEditor/Graphite/commit/ed119ad3d799030dbc488ccfc8ca9ad057eeff2c)) + +
+ +
+ - Proper automatic placement of layers into the artboard they're drawn inside of ([#2110](https://github.com/GraphiteEditor/Graphite/pull/2110)) -- Menu bar additions of *Layer* > *New Layer*, *Layer* > *Group Selected*, and *Layer* > *Delete Selected* ([commit feba874](https://github.com/GraphiteEditor/Graphite/commit/feba87449bb490e47df6f267576bec5ab4238dc3)) + +
+ +
+ +- Menu bar additions of *Layer* > *New*, *Layer* > *Group Selected*, and *Layer* > *Delete Selected* ([commit feba874](https://github.com/GraphiteEditor/Graphite/commit/feba87449bb490e47df6f267576bec5ab4238dc3)) + +
+ +
+ - Select tool box selection feature for subtracting the targetted layers from the active selection with a modifier key as shown in the contextual input hints at the bottom of the editor ([#2162](https://github.com/GraphiteEditor/Graphite/pull/2162)) + +
+ +
+ - Path tool feature for snapping to 15° increments and locking the angles of dragged handles when Shift and Ctrl modifier keys are pressed ([#2160](https://github.com/GraphiteEditor/Graphite/pull/2160)) -- Support for multiple top output wires connected to the same layer ([#2049](https://github.com/GraphiteEditor/Graphite/pull/2049)) + +
+ +
+ +- Support for multiple top output wires extending from the same layer stack ([#2049](https://github.com/GraphiteEditor/Graphite/pull/2049)) + +
+ +
+ - Style improvements to the Layers panel UI to clarify which layers contain selected children, even if hidden within a collapsed layer which previously obscured where selected layers were within the hierarchy ([commit 1264ea8](https://github.com/GraphiteEditor/Graphite/commit/1264ea8246cbb06e0602a93be983762ab17adf30)) + +
+ +
+ - Revamped quick measurement overlays now supporting every layer arrangement scenario ([#2147](https://github.com/GraphiteEditor/Graphite/pull/2147), [#2155](https://github.com/GraphiteEditor/Graphite/pull/2155)) -- Degrees/radians option in the trig-related math nodes and "Always Positive" option in the *Modulo* node for more convenient usage of the math nodes ([commit d649052](https://github.com/GraphiteEditor/Graphite/commit/d649052255c10c15754c3a3707f2edf996d2468d)) + +
+ +
## Fixes - Fix for viewport tools no longer remaining active in the background when the node graph is open ([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093)) From 24be15a4fb9b423976c70c629b522a7ff0cfa716 Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Tue, 1 Apr 2025 21:47:35 -0700 Subject: [PATCH 4/4] And more --- ...-12-31-graphite-progress-report-q4-2024.md | 117 ++++++++++-------- .../guide/student-projects/_index.md | 7 ++ 2 files changed, 70 insertions(+), 54 deletions(-) diff --git a/website/content/blog/2024-12-31-graphite-progress-report-q4-2024.md b/website/content/blog/2024-12-31-graphite-progress-report-q4-2024.md index fc57268c95..55ef1d130c 100644 --- a/website/content/blog/2024-12-31-graphite-progress-report-q4-2024.md +++ b/website/content/blog/2024-12-31-graphite-progress-report-q4-2024.md @@ -2,34 +2,34 @@ title = "Graphite progress report (Q4 2024)" date = 2025-03-31 [extra] -banner = "https://files.keavon.com/-/BelatedDoubleLonghornbeetle/Dunes.png" -banner_png = "https://files.keavon.com/-/BelatedDoubleLonghornbeetle/Dunes.png" +banner = "https://static.graphite.rs/content/blog/2025-03-31-graphite-progress-report-q4-2024.avif" +banner_png = "https://static.graphite.rs/content/blog/2025-03-31-graphite-progress-report-q4-2024.png" author = "Keavon Chambers & Hypercube" -summary = "TODO: Summary and date above" +summary = "Graphite's Q4 2024 update introduces quality of life features for its interactive and procedural editing workflows." css = ["/component/demo-artwork.css"] +++ -[Graphite](/), a new open source 2D procedural graphics editor, has [wrapped up 2024](../year-in-review-2024-highlights-and-a-peek-at-2025) with a fourth quarter (October-December) focused on introducing **quality of life features** for both Graphite's interactive **tools-driven and procedural editing** workflows. - -All Q4 2024 commits may be [viewed in this list](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-10-01&until=2024-12-31) and all noteworthy changes are detailed below. +[Graphite](/), a new open source 2D procedural graphics editor, has [wrapped up 2024](../year-in-review-2024-highlights-and-a-peek-at-2025) with a fourth quarter (October-December) focused on introducing **quality of life features** for both Graphite's interactive **tools-driven and procedural editing workflows**. +All Q4 2024 commits may be [viewed in this list](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-10-01&until=2024-12-31) and all noteworthy changes are detailed below. + This is the fourth in our 2024 series of quarterly progress reports. If you missed [the previous post](../graphite-progress-report-q3-2024), be sure to check it out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars on GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.rs), too. -To showcase the newly introduced feature of converting selected nodes into conveniently reusable subgraphs, the new *Procedural Dunes* artwork is presented below. Each dune layer is controlled just by a color, height, and random seed. +To showcase the newly introduced feature of converting selected nodes into conveniently reusable subgraphs, the new *Parametric Dunescape* artwork is presented below. Every dune layer is generated just by its custom parameters for color, height, and random seed.
- - Vector art of Procedural Dunes + + Vector art of Parametric Dunescape

- Procedural Dunes + Parametric Dunescape
- Open this artwork to
explore it yourself. + Open this artwork to
explore it yourself.

@@ -43,7 +43,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -51,35 +52,24 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
-- Pinable node sections in the Properties panel ([commit e6d8c47](https://github.com/GraphiteEditor/Graphite/commit/e6d8c4743d2aff15985c929df2cc7381a61908a0)) +- Pinnable node sections in the Properties panel ([commit e6d8c47](https://github.com/GraphiteEditor/Graphite/commit/e6d8c4743d2aff15985c929df2cc7381a61908a0))
-- New demo artwork, *Changing Seasons*, featured in the [last blog post](../graphite-progress-report-q3-2024) ([commit fa6b5f2](https://github.com/GraphiteEditor/Graphite/commit/fa6b5f298adf395362e1aaa2c07be89fa89eaee2)) - -
- - Vector art of Changing Seasons - -

- - Changing Seasons - -
- - Open this artwork to
explore it yourself. -
-

-
+- New demo artwork, [*Changing Seasons*](https://editor.graphite.rs/#demo/changing-seasons), featured in the [previous progress report](../graphite-progress-report-q3-2024) ([commit fa6b5f2](https://github.com/GraphiteEditor/Graphite/commit/fa6b5f298adf395362e1aaa2c07be89fa89eaee2)) +
@@ -87,19 +77,21 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
- *Flatten Vector Elements* node that turns multiple layers of vector paths into a single combined path; and changes to the *Copy to Points*, *Repeat*, and *Circular Repeat* nodes so they output group data instead of a single vector path, allowing each separate layer to be modified by nodes which operate on groups (like *Assign Colors*), or flattened with *Flatten Vector Elements* to have the prior behavior ([#2011](https://github.com/GraphiteEditor/Graphite/pull/2011), [#2045](https://github.com/GraphiteEditor/Graphite/pull/2045)) - TODO: + Visual description of the change introduced by the Flatten Vector Elements node and its usage with instancing nodes - Support for *Fill* and *Stroke* nodes with groups, applying to each vector layer within ([#2046](https://github.com/GraphiteEditor/Graphite/pull/2046))
@@ -107,7 +99,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -115,7 +108,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -123,7 +117,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -131,7 +126,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -139,7 +135,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -147,7 +144,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -155,7 +153,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -163,7 +162,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -171,25 +171,27 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the - *Dot Product* node that calculates the mathematical dot product between two numerical vectors ([#2126](https://github.com/GraphiteEditor/Graphite/pull/2126)) - *Math* node that calculates a custom math expression with variables "A" and "B" ([#2121](https://github.com/GraphiteEditor/Graphite/pull/2121)) - TODO: + Visualization of the Math node properties showing the example expression: 0.33 * A + (1 - 0.33) * B - Degrees/radians option in the trig-related math nodes and "Always Positive" option in the *Modulo* node for more convenient usage of the math nodes ([commit d649052](https://github.com/GraphiteEditor/Graphite/commit/d649052255c10c15754c3a3707f2edf996d2468d))
- Node graph control bar revamp ([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093)) - TODO: + View of the control bar area of the UI in the node graph featuring new buttons - Freehand tool feature for drawing new subpaths on an existing vector layer by holding Shift ([commit ed119ad](https://github.com/GraphiteEditor/Graphite/commit/ed119ad3d799030dbc488ccfc8ca9ad057eeff2c))
@@ -197,7 +199,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -205,7 +208,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -213,7 +217,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -221,7 +226,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -229,7 +235,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -237,7 +244,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -245,7 +253,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
diff --git a/website/content/volunteer/guide/student-projects/_index.md b/website/content/volunteer/guide/student-projects/_index.md index 9c93996dcb..537d45dd94 100644 --- a/website/content/volunteer/guide/student-projects/_index.md +++ b/website/content/volunteer/guide/student-projects/_index.md @@ -90,6 +90,12 @@ Based on the experience and insight brought to the table by the student, the nat +### Native development + +#### Graphite desktop app engineering + +*Check back shortly for a full project description, or ask on Discord right now for more details.* + ### Rendering and graphics Several of these require a good understanding of computer graphics rendering techniques and algorithms. Experience in game development and writing your own rendering engines is a plus. @@ -157,6 +163,7 @@ Several of these require a good understanding of computer graphics rendering tec - The SVG spec supports a number of filters and other raster effects, and we currently only implement a small subset. - Add support for the rest of the SVG spec, including filters, masks, and other raster effects. - Allow roundtrip import and export of SVG files with these features. +- Import, render (through SVG and Vello), and export of [filters like these](https://codepen.io/miXTim/pen/ZErggMQ). ### Editor tooling