diff --git a/website/content/_index.md b/website/content/_index.md index e2c38fea..dd8f08a8 100644 --- a/website/content/_index.md +++ b/website/content/_index.md @@ -342,6 +342,7 @@ Proceduralism lets you create sophisticated design elements that are easy to edi
@@ -350,12 +351,12 @@ Proceduralism lets you create sophisticated design elements that are easy to edi Vector art of Procedural String Lights

- + Procedural String Lights
- - Open this artwork to explore it yourself. + + Open this artwork to
explore it yourself.

@@ -452,6 +453,7 @@ Style shapes with strokes, fills, and gradients. Mix layers with blend modes. Th
@@ -460,12 +462,12 @@ Style shapes with strokes, fills, and gradients. Mix layers with blend modes. Th Vector art of Just of Potted Cactus

- + Just a Potted Cactus
- - Open this artwork to explore it yourself. + + Open this artwork to
explore it yourself.

diff --git a/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md b/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md index f6bbe993..adb11271 100644 --- a/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md +++ b/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md @@ -20,6 +20,7 @@ I am grateful to everyone who has placed their faith in my vision for Graphite s
diff --git a/website/content/blog/2024-05-09-graphite-progress-report-q1-2024.md b/website/content/blog/2024-05-09-graphite-progress-report-q1-2024.md new file mode 100644 index 00000000..9fbf5545 --- /dev/null +++ b/website/content/blog/2024-05-09-graphite-progress-report-q1-2024.md @@ -0,0 +1,242 @@ ++++ +title = "Graphite progress report (Q1 2024)" +date = 2024-05-09 +[extra] +banner = "https://static.graphite.rs/content/blog/2024-05-09-graphite-progress-report-q1-2024.avif" +banner_png = "https://static.graphite.rs/content/blog/2024-05-09-graphite-progress-report-q1-2024.png" +author = "Keavon Chambers & Hypercube" +reddit = "https://www.reddit.com/r/graphite/comments/1coa0if/blog_post_graphite_progress_report_q1_2024/" +twitter = "https://twitter.com/GraphiteEditor/status/1788698448348266946" ++++ + +[Graphite](/) is a new 2D vector graphics editor bringing a modern, nondestructive approach to creative workflows with node-based procedural generation. The project is currently three years into development, with a focus on streamlining the creative process for procedural vector artwork. See the [roadmap](/features#roadmap) for a more in-depth summary of the goals for 2024 and beyond. + + + +Starting in 2024, we are now publishing quarterly reports to summarize the new features and improvements made to Graphite. If you missed the [2023 year in review](../looking-back-on-2023-and-what-s-next), be sure to check it out after this. We anticipate sending our first email newsletter (with more to follow roughly quarterly) in the near future as well, so be sure to [subscribe](/#community) if you haven't already. + +Over the first three months of the year, we are delighted to have seen many contributions both from new and recurrent contributors, including substantial interest by students through [Google Summer of Code](/blog/graphite-internships-announcing-participation-in-gsoc-2024/). We would like to send a big thanks to all of the contributors who made this progress happen. If you are interested in getting involved or just following development, see the [contributor guide](/volunteer/guide) and join [our Discord](https://discord.graphite.rs). + +All Q1 2024 commits may be [viewed in this list](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-01-01&until=2024-03-31) and all noteworthy changes are detailed below. As two of the major new features are the grid and snapping systems, the *Isometric Fountain* artwork shown on this blog post demonstrates what those features can achieve. + +
+ + Vector art of Isometric Fountain + +

+ + Isometric Fountain + +
+ + Open this artwork to
explore it yourself. +
+

+
+ +## Additions + +- *Copy to Points* node improvements, including randomization of scale and rotation with biasing ([#1540](https://github.com/GraphiteEditor/Graphite/pull/1540), [#1541](https://github.com/GraphiteEditor/Graphite/pull/1541), [commit ed82c5](https://github.com/GraphiteEditor/Graphite/commit/ed82c5f20fccd66a959334dee33351657968cdb6), [#1592](https://github.com/GraphiteEditor/Graphite/pull/1592), [commit 7e5069](https://github.com/GraphiteEditor/Graphite/commit/7e5069f638cfcc3e7af21f32eded67a005490402)) +
+ +
+ +- Improvements to the node graph UI ([#1564](https://github.com/GraphiteEditor/Graphite/pull/1564), [#1568](https://github.com/GraphiteEditor/Graphite/pull/1568)) + +- Grid overlay for the canvas with customizable rectangular and isometric grid lines ([#1521](https://github.com/GraphiteEditor/Graphite/pull/1521), [commit 5c9d3c](https://github.com/GraphiteEditor/Graphite/commit/5c9d3c5d755e67411c110c0d5fd38d991cb6696c)) +
+ +
+ +
+ +
+ +- New and improved snapping system for aligning shapes with one another and the grid ([#1521](https://github.com/GraphiteEditor/Graphite/pull/1521), [#1567](https://github.com/GraphiteEditor/Graphite/pull/1567), [#1547](https://github.com/GraphiteEditor/Graphite/pull/1547), [#1570](https://github.com/GraphiteEditor/Graphite/pull/1570), [#1574](https://github.com/GraphiteEditor/Graphite/pull/1574)) +
+ +
+ +- *Morph* node for tweening vector shapes ([#1576](https://github.com/GraphiteEditor/Graphite/pull/1576)) +
+ +
+ +- Visualize which nodes are the source of a graph type error ([#1577](https://github.com/GraphiteEditor/Graphite/pull/1577)) + + Graph error visualization screenshot + +- Improvements to document tilting and resetting tilt ([commit 8eef96](https://github.com/GraphiteEditor/Graphite/commit/8eef96511e575d58a36289f3d0e30eb68098b4e7)) + +- SVG import ([#1579](https://github.com/GraphiteEditor/Graphite/pull/1579), [#1656](https://github.com/GraphiteEditor/Graphite/pull/1656)) +
+ +
+ +- Re-add Select tool functionality that was lost from a code change last year ([#1583](https://github.com/GraphiteEditor/Graphite/pull/1583)) + +- *Poisson-Disk Points* node for sampling randomly distributed points in a shape, with Red Dress demo artwork ([#1586](https://github.com/GraphiteEditor/Graphite/pull/1586), [commit 12e16b](https://github.com/GraphiteEditor/Graphite/commit/12e16b9a4efe40fcf779c34f83d3df8b3e3542f3), [#1590](https://github.com/GraphiteEditor/Graphite/pull/1590), [#1596](https://github.com/GraphiteEditor/Graphite/pull/1596)) +
+ +
+ +- Pen tool point-by-point undo while drawing without wiping out the full in-progress shape ([#1587](https://github.com/GraphiteEditor/Graphite/pull/1587), [#1597](https://github.com/GraphiteEditor/Graphite/pull/1597)) +
+ +
+ +- Freehand tool support for extending the endpoints of open paths ([#1594](https://github.com/GraphiteEditor/Graphite/pull/1594), [#1623](https://github.com/GraphiteEditor/Graphite/pull/1623)) +
+ +
+ +- Path tool support for breaking a closed shape into an open path by deleting (not dissolving) a point ([#1593](https://github.com/GraphiteEditor/Graphite/pull/1593)) +
+ +
+ +- Path tool insertion of a point on a path segment by sliding to the desired spot ([#1581](https://github.com/GraphiteEditor/Graphite/pull/1581)) +
+ +
+ +- Box-based drag selection in the node graph ([#1616](https://github.com/GraphiteEditor/Graphite/pull/1616)) +
+ +
+ +- Auto-save the document every 30 seconds ([#1580](https://github.com/GraphiteEditor/Graphite/pull/1580)) + +- Auto-panning when drawing with each interactive tool when the user's pointer extends past the edge of the viewport ([#1625](https://github.com/GraphiteEditor/Graphite/pull/1625), [#1652](https://github.com/GraphiteEditor/Graphite/pull/1652), [#1682](https://github.com/GraphiteEditor/Graphite/pull/1682), [#1690](https://github.com/GraphiteEditor/Graphite/pull/1690)) +
+ +
+ +- Launch of the Alpha 3 release series in February ([commit f02dd5](https://github.com/GraphiteEditor/Graphite/commit/f02dd5c0f625b25bf3510ba0e9839ca182d930e4)) + + Alpha 3 release series in the 'About Graphite' menu screenshot + +- Search functionality by typing in menu lists ([#1499](https://github.com/GraphiteEditor/Graphite/pull/1499)) +
+ +
+ +- Improvements to the dynamic input hints of several tools ([commit 9f8466](https://github.com/GraphiteEditor/Graphite/commit/9f84661facd545bfdfeaa5d37038abeacc00ee08), [#1667](https://github.com/GraphiteEditor/Graphite/pull/1667), [#1670](https://github.com/GraphiteEditor/Graphite/pull/1670)) + +- *Solidify Stroke* node for converting a stroke into a filled shape ([#1650](https://github.com/GraphiteEditor/Graphite/pull/1650)) + +- Path tool point selection checkbox for locking an anchor point's handles as colinear ([commit 5bca93](https://github.com/GraphiteEditor/Graphite/commit/5bca931813e456e2f6035844c21e77ee590b7728)) +
+ +
+ +## Fixes + +- *Sample Points* node performance issues and bug with open paths ([#1542](https://github.com/GraphiteEditor/Graphite/pull/1542), [commit b3e4ca](https://github.com/GraphiteEditor/Graphite/commit/b3e4caec1aa4d7b702ac36638b968cf165780149), [commit 93aa10](https://github.com/GraphiteEditor/Graphite/commit/93aa10a76f96946314d5c5787418522423a76544), [#1546](https://github.com/GraphiteEditor/Graphite/pull/1546)) + +- Some numerical node data incompatible with others ([#1543](https://github.com/GraphiteEditor/Graphite/pull/1543), [commit c14c6f](https://github.com/GraphiteEditor/Graphite/commit/c14c6fbe9345be91d04825fe8364e6639430b5e5), [#1618](https://github.com/GraphiteEditor/Graphite/pull/1618)) + +- Incorrect placement when pasting an image ([commit cd61da](https://github.com/GraphiteEditor/Graphite/commit/cd61daf869780e1302de1a34bca7b79485ca69c3)) + +- Unable to select upside-down (negative scale) layers ([#1560](https://github.com/GraphiteEditor/Graphite/pull/1560)) + +- Memory leak in a type inference hashmap ([#1566](https://github.com/GraphiteEditor/Graphite/pull/1566)) + +- Non-filled shapes are drawn missing the solid color field from their *Fill* node ([#1572](https://github.com/GraphiteEditor/Graphite/pull/1572)) + +- *Circular Repeat* node crash when it has no input connection ([#1571](https://github.com/GraphiteEditor/Graphite/pull/1571)) + +- Safari rendering bug that occurs with Graphite's floating menus ([commit b4dccb](https://github.com/GraphiteEditor/Graphite/commit/b4dccb865540e25a6d859e5284a50a36e361d5ee)) + +- Performance issue affecting Windows users where every render occurred thrice ([commit a7bf6e](https://github.com/GraphiteEditor/Graphite/commit/a7bf6e24599fc3d7dc51699f916ba049758a2081)) + +- Performance issue with nonfunctional caching of images ([#1595](https://github.com/GraphiteEditor/Graphite/pull/1595)) + +- Numerous history steps created while dragging an input widget every frame ([#1584](https://github.com/GraphiteEditor/Graphite/pull/1584), [#1598](https://github.com/GraphiteEditor/Graphite/pull/1598)) + +- Ugly anti-aliasing in overlays from non-alignment with the pixel grid ([#1603](https://github.com/GraphiteEditor/Graphite/pull/1603)) + +- Dragging nodes in the graph along only one axis causes them to snap back ([#1619](https://github.com/GraphiteEditor/Graphite/pull/1619)) + +- Path tool point coordinates using the wrong coordinate system ([#1626](https://github.com/GraphiteEditor/Graphite/pull/1626)) + +- Layer panel grouping causing unintended reordering and loss of names ([#1627](https://github.com/GraphiteEditor/Graphite/pull/1627), [#1645](https://github.com/GraphiteEditor/Graphite/pull/1645), [#1672](https://github.com/GraphiteEditor/Graphite/pull/1672), [#1678](https://github.com/GraphiteEditor/Graphite/pull/1678), [#1637](https://github.com/GraphiteEditor/Graphite/pull/1637)) + +- Keyboard shortcut modifier keys displayed in the UI with the wrong order ([commit 4405e0](https://github.com/GraphiteEditor/Graphite/commit/4405e01f5595c76ff8c1cdb7e6ebf752ab53943c)) + +- Polygon tool stars and convex polygons drawn with an undesired tilt ([#1640](https://github.com/GraphiteEditor/Graphite/pull/1640)) + +- Dropdown menus not navigable with with keyboard arrow keys ([#1630](https://github.com/GraphiteEditor/Graphite/pull/1630), [#1649](https://github.com/GraphiteEditor/Graphite/pull/1649)) + +- Changes to a tool's options only applying after a subsequent usage ([#1646](https://github.com/GraphiteEditor/Graphite/pull/1646)) + +- Orphaned child layers left behind when a group is ungrouped or deleted ([#1655](https://github.com/GraphiteEditor/Graphite/pull/1655)) + +- Some tools lacking a cancelable interaction by right clicking or hitting the Escape key ([#1658](https://github.com/GraphiteEditor/Graphite/pull/1658), [#1664](https://github.com/GraphiteEditor/Graphite/pull/1664), [#1666](https://github.com/GraphiteEditor/Graphite/pull/1666)) + +- Several related issues related to extraneous undo/redo history steps ([#1660](https://github.com/GraphiteEditor/Graphite/pull/1660), [#1668](https://github.com/GraphiteEditor/Graphite/pull/1668), [#1675](https://github.com/GraphiteEditor/Graphite/pull/1675)) + +- Node graph not updated when switching tabs to a different document ([#1691](https://github.com/GraphiteEditor/Graphite/pull/1691)) + +- Artboard deletion causes its child artwork to also get deleted ([#1651](https://github.com/GraphiteEditor/Graphite/pull/1651)) + +- Path tool's point dragging gets offset when the viewport is panned ([#1693](https://github.com/GraphiteEditor/Graphite/pull/1693)) + +- Incorrect scale-nudging behavior when multiple layers are selected ([#1699](https://github.com/GraphiteEditor/Graphite/pull/1699)) + +- Copy-pasted layers not preserving their hidden/visible state ([#1698](https://github.com/GraphiteEditor/Graphite/pull/1698)) + +- Non-editability of hidden layers that are selected ([#1697](https://github.com/GraphiteEditor/Graphite/pull/1697)) + +## Internal + +- Several large refactors and code cleanups ([#1565](https://github.com/GraphiteEditor/Graphite/pull/1565), [#1582](https://github.com/GraphiteEditor/Graphite/pull/1582), [#1620](https://github.com/GraphiteEditor/Graphite/pull/1620), [#1695](https://github.com/GraphiteEditor/Graphite/pull/1695), [#1708](https://github.com/GraphiteEditor/Graphite/pull/1708)) + +- Refactor for the vector format to begin being based around a concept of attributes ([#1624](https://github.com/GraphiteEditor/Graphite/pull/1624)) + +- Preconfigure dev containers for easy containerized development environment setup ([commit 99c199](https://github.com/GraphiteEditor/Graphite/commit/99c199a8f64a3557e21f5dc002fbcfb789c40632), [#1636](https://github.com/GraphiteEditor/Graphite/pull/1636)) diff --git a/website/sass/base.scss b/website/sass/base.scss index 415d032a..db4ca36f 100644 --- a/website/sass/base.scss +++ b/website/sass/base.scss @@ -393,6 +393,13 @@ summary { p:has(> img) + center:has(> em) { margin-top: 10px; } + + p { + & ~ img { + width: auto; + max-width: 100%; + } + } } } @@ -411,6 +418,28 @@ summary { font-weight: 500; } +.demo-artwork { + display: flex; + align-items: center; + justify-content: center; + margin-top: 20px; + + img { + height: 128px; + border: 12px solid var(--color-walnut); + vertical-align: top; + flex: 0 0 auto; + } + + p { + display: flex; + flex-direction: column; + max-width: 300px; + margin-left: 40px; + text-align: left; + } +} + .video-embed { position: relative; width: 100%; diff --git a/website/sass/index.scss b/website/sass/index.scss index 26c46838..3de54d48 100644 --- a/website/sass/index.scss +++ b/website/sass/index.scss @@ -387,24 +387,3 @@ } // ▙ GET INVOLVED ▟ -.demo-artwork { - display: flex; - align-items: center; - margin-top: 20px; - - img { - width: 128px; - height: 128px; - border: 12px solid var(--color-walnut); - vertical-align: top; - flex: 0 0 auto; - } - - p { - display: flex; - flex-direction: column; - max-width: 300px; - margin-left: 40px; - text-align: left; - } -}