Skip to content

Commit d51736e

Browse files
committed
More
1 parent a8f1cb5 commit d51736e

1 file changed

Lines changed: 166 additions & 5 deletions

File tree

website/content/blog/2024-12-30-graphite-progress-report-q4-2024.md

Lines changed: 166 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
+++
22
title = "Graphite progress report (Q4 2024)"
3-
date = 2024-12-30
3+
date = 2025-03-26
44
[extra]
55
banner = "..."
66
banner_png = "..."
77
author = "Keavon Chambers & Hypercube"
88
summary = "TODO: Summary and date above"
9+
css = ["/component/demo-artwork.css"]
910
+++
1011

1112
[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.
@@ -39,7 +40,17 @@ The new *todo!()* artwork shown here ...
3940
EDITOR'S NOTE: The grammatical structure of each bullet point should follow the form: "Check out our new... [Bullet point description]"
4041
-->
4142
- Text controls for line height, character spacing, and wrappable box areas that can be dragged with the Text tool <small>([#2016](https://github.com/GraphiteEditor/Graphite/pull/2016), [#2118](https://github.com/GraphiteEditor/Graphite/pull/2118))</small>
43+
<div class="video-background">
44+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
45+
<source src="https://files.keavon.com/-/ExhaustedBrokenCalf/capture_44_.mp4" type="video/mp4" />
46+
</video>
47+
</div>
4248
- Pinable node sections in the Properties panel <small>([commit e6d8c47](https://github.com/GraphiteEditor/Graphite/commit/e6d8c4743d2aff15985c929df2cc7381a61908a0))</small>
49+
<div class="video-background">
50+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
51+
<source src="https://files.keavon.com/-/PaleFrayedGentoopenguin/capture_47_.mp4" type="video/mp4" />
52+
</video>
53+
</div>
4354
- New demo artwork, *Changing Seasons*, featured in the [last blog post](../graphite-progress-report-q3-2024) <small>([commit fa6b5f2](https://github.com/GraphiteEditor/Graphite/commit/fa6b5f298adf395362e1aaa2c07be89fa89eaee2))</small>
4455

4556
<div class="demo-artwork" style="justify-content: left">
@@ -56,33 +67,183 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
5667
</span>
5768
</p>
5869
</div>
70+
<div class="video-background">
71+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
72+
<source src="https://files.keavon.com/-/WeePaleAmbushbug/capture_48_.mp4" type="video/mp4" />
73+
</video>
74+
</div>
5975

6076
- *Offset Path* node that expands or contracts a vector shape <small>([#2030](https://github.com/GraphiteEditor/Graphite/pull/2030))</small>
77+
78+
<div class="video-background">
79+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
80+
<source src="https://files.keavon.com/-/FriendlyDrearyIsopod/capture_49_.mp4" type="video/mp4" />
81+
</video>
82+
</div>
83+
6184
- *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 <small>([#2011](https://github.com/GraphiteEditor/Graphite/pull/2011), [#2045](https://github.com/GraphiteEditor/Graphite/pull/2045))</small>
85+
86+
<img src="https://files.keavon.com/-/FemaleSafeOx/capture.png" onerror="this.onerror = null; this.src = this.src.replace('.avif', '.png')" alt="TODO:" />
87+
6288
- Support for *Fill* and *Stroke* nodes with groups, applying to each vector layer within <small>([#2046](https://github.com/GraphiteEditor/Graphite/pull/2046))</small>
89+
90+
<div class="video-background">
91+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
92+
<source src="https://files.keavon.com/-/UtterMysteriousHaddock/capture_50_.mp4" type="video/mp4" />
93+
</video>
94+
</div>
95+
6396
- *Switch* node that routes one of two data connections based on a true or false value <small>([#2064](https://github.com/GraphiteEditor/Graphite/pull/2064))</small>
97+
98+
<div class="video-background">
99+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
100+
<source src="https://files.keavon.com/-/LimpingCadetblueFairybluebird/capture_51_.mp4" type="video/mp4" />
101+
</video>
102+
</div>
103+
64104
- *Bevel* node that flattens the corners of vector shapes <small>([#2067](https://github.com/GraphiteEditor/Graphite/pull/2067), [#2096](https://github.com/GraphiteEditor/Graphite/pull/2096))</small>
105+
106+
<div class="video-background">
107+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
108+
<source src="https://files.keavon.com/-/LowPointedBorer/capture_53_.mp4" type="video/mp4" />
109+
</video>
110+
</div>
111+
65112
- *Jitter Points* node that randomly offsets each point in a vector path <small>([commit 7d86bf4](https://github.com/GraphiteEditor/Graphite/commit/7d86bf4abf7edfe6a5d021075e050614bee07c13))</small>
113+
114+
<div class="video-background">
115+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
116+
<source src="https://files.keavon.com/-/DistinctBountifulDove/capture_54_.mp4" type="video/mp4" />
117+
</video>
118+
</div>
119+
66120
- Node insertion button, and layer renaming, directly from the Properties panel <small>([#2072](https://github.com/GraphiteEditor/Graphite/pull/2072), [#2081](https://github.com/GraphiteEditor/Graphite/pull/2081))</small>
121+
122+
<div class="video-background">
123+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
124+
<source src="https://files.keavon.com/-/PartialAnySturgeon/capture_55_.mp4" type="video/mp4" />
125+
</video>
126+
</div>
127+
67128
- Path tool feature where pressing <kbd>Space</kbd> while dragging a handle makes the anchor be dragged as well <small>([#2065](https://github.com/GraphiteEditor/Graphite/pull/2065))</small>
129+
130+
<div class="video-background">
131+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
132+
<source src="https://files.keavon.com/-/WhitesmokeCanineWireworm/capture_57_.mp4" type="video/mp4" />
133+
</video>
134+
</div>
135+
68136
- Path tool feature where pressing <kbd>Tab</kbd> while dragging a handle makes it swap to the opposite handle <small>([#2058](https://github.com/GraphiteEditor/Graphite/pull/2058))</small>
137+
138+
<div class="video-background">
139+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
140+
<source src="https://files.keavon.com/-/MisguidedNegativeGoldeneye/capture_58_.mp4" type="video/mp4" />
141+
</video>
142+
</div>
143+
69144
- Pen tool feature allowing the connection of layers by their endpoints so they both get merged into a single layer <small>([#2076](https://github.com/GraphiteEditor/Graphite/pull/2076))</small>
145+
146+
<div class="video-background">
147+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
148+
<source src="https://files.keavon.com/-/SkyblueBaggyWeasel/capture_60_.mp4" type="video/mp4" />
149+
</video>
150+
</div>
151+
70152
- *Clamp* node that limits an input number between a minimum and maximum range <small>([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087))</small>
71-
- *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 <small>([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087))</small>
153+
154+
<div class="video-background">
155+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
156+
<source src="https://files.keavon.com/-/SerpentineBoringLeonberger/capture_63_.mp4" type="video/mp4" />
157+
</video>
158+
</div>
159+
160+
- *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 <small>([#2087](https://github.com/GraphiteEditor/Graphite/pull/2087))</small>
72161
- *Dot Product* node that calculates the mathematical dot product between two numerical vectors <small>([#2126](https://github.com/GraphiteEditor/Graphite/pull/2126))</small>
73-
- *Math* node that calculates a full math expression <small>([#2121](https://github.com/GraphiteEditor/Graphite/pull/2121))</small>
162+
- *Math* node that calculates a custom math expression with variables "A" and "B" <small>([#2121](https://github.com/GraphiteEditor/Graphite/pull/2121))</small>
74163
- Node graph control bar revamp <small>([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093))</small>
164+
165+
<img src="https://files.keavon.com/-/NewBurlywoodIrishterrier/capture.png" onerror="this.onerror = null; this.src = this.src.replace('.avif', '.png')" alt="TODO:" />
166+
75167
- Node graph support for making a custom node by merging the selected nodes into a subgraph with <kbd>Ctrl</kbd><kbd>M</kbd> (macOS: <kbd>⌘</kbd><kbd>M</kbd>) <small>([#2097](https://github.com/GraphiteEditor/Graphite/pull/2097))</small>
168+
169+
<div class="video-background">
170+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
171+
<source src="https://files.keavon.com/-/ProperCoolZorilla/capture_64_.mp4" type="video/mp4" />
172+
</video>
173+
</div>
174+
76175
- Freehand tool feature for drawing new subpaths on an existing vector layer by holding <kbd>Shift</kbd> <small>([commit ed119ad](https://github.com/GraphiteEditor/Graphite/commit/ed119ad3d799030dbc488ccfc8ca9ad057eeff2c))</small>
176+
177+
<div class="video-background">
178+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
179+
<source src="https://files.keavon.com/-/AlarmedEnchantedCapeghostfrog/capture_65_.mp4" type="video/mp4" />
180+
</video>
181+
</div>
182+
77183
- Proper automatic placement of layers into the artboard they're drawn inside of <small>([#2110](https://github.com/GraphiteEditor/Graphite/pull/2110))</small>
78-
- Menu bar additions of *Layer* > *New Layer*, *Layer* > *Group Selected*, and *Layer* > *Delete Selected* <small>([commit feba874](https://github.com/GraphiteEditor/Graphite/commit/feba87449bb490e47df6f267576bec5ab4238dc3))</small>
184+
185+
<div class="video-background">
186+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
187+
<source src="https://files.keavon.com/-/SplendidKlutzyOtter/capture_66_.mp4" type="video/mp4" />
188+
</video>
189+
</div>
190+
191+
- Menu bar additions of *Layer* > *New*, *Layer* > *Group Selected*, and *Layer* > *Delete Selected* <small>([commit feba874](https://github.com/GraphiteEditor/Graphite/commit/feba87449bb490e47df6f267576bec5ab4238dc3))</small>
192+
193+
<div class="video-background">
194+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
195+
<source src="https://files.keavon.com/-/AverageMediumseagreenCat/capture_67_.mp4" type="video/mp4" />
196+
</video>
197+
</div>
198+
79199
- 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 <small>([#2162](https://github.com/GraphiteEditor/Graphite/pull/2162))</small>
200+
201+
<div class="video-background">
202+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
203+
<source src="https://files.keavon.com/-/ShimmeringOptimisticAtlanticsharpnosepuffer/capture_68_.mp4" type="video/mp4" />
204+
</video>
205+
</div>
206+
80207
- Path tool feature for snapping to 15° increments and locking the angles of dragged handles when <kbd>Shift</kbd> and <kbd>Ctrl</kbd> modifier keys are pressed <small>([#2160](https://github.com/GraphiteEditor/Graphite/pull/2160))</small>
81-
- Support for multiple top output wires connected to the same layer <small>([#2049](https://github.com/GraphiteEditor/Graphite/pull/2049))</small>
208+
209+
<div class="video-background">
210+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
211+
<source src="https://files.keavon.com/-/ConfusedDazzlingPenguin/capture_69_.mp4" type="video/mp4" />
212+
</video>
213+
</div>
214+
215+
- Support for multiple top output wires extending from the same layer stack <small>([#2049](https://github.com/GraphiteEditor/Graphite/pull/2049))</small>
216+
217+
<div class="video-background">
218+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
219+
<source src="https://files.keavon.com/-/UnselfishTepidKob/capture_70_.mp4" type="video/mp4" />
220+
</video>
221+
</div>
222+
82223
- 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 <small>([commit 1264ea8](https://github.com/GraphiteEditor/Graphite/commit/1264ea8246cbb06e0602a93be983762ab17adf30))</small>
224+
225+
<div class="video-background">
226+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
227+
<source src="https://files.keavon.com/-/MonthlyNeedyGlobefish/capture_73_.mp4" type="video/mp4" />
228+
</video>
229+
</div>
230+
83231
- Revamped quick measurement overlays now supporting every layer arrangement scenario <small>([#2147](https://github.com/GraphiteEditor/Graphite/pull/2147), [#2155](https://github.com/GraphiteEditor/Graphite/pull/2155))</small>
232+
233+
<div class="video-background">
234+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
235+
<source src="https://files.keavon.com/-/UpsetHumiliatingSkink/capture_74_.mp4" type="video/mp4" />
236+
</video>
237+
</div>
238+
84239
- 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 <small>([commit d649052](https://github.com/GraphiteEditor/Graphite/commit/d649052255c10c15754c3a3707f2edf996d2468d))</small>
85240

241+
<div class="video-background">
242+
<video autoplay loop muted playsinline disablepictureinpicture disableremoteplayback>
243+
<source src="https://files.keavon.com/-/DirectShyGnat/capture_76_.mp4" type="video/mp4" />
244+
</video>
245+
</div>
246+
86247
## Fixes
87248
- Fix for viewport tools no longer remaining active in the background when the node graph is open <small>([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093))</small>
88249
- Fix to boolean operations so open subpaths are automatically closed <small>([#2014](https://github.com/GraphiteEditor/Graphite/pull/2014))</small>

0 commit comments

Comments
 (0)