diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index c137b5799..4dccb10ca 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -42,7 +42,7 @@ jobs: MODE: prod run: | cd website - npm run install-fonts + npm ci zola --config config.toml build --minify - name: 🔍 Check if `website/other` directory changed diff --git a/website/content/about.md b/website/content/about.md index 22c6d4c4c..19cb4604a 100644 --- a/website/content/about.md +++ b/website/content/about.md @@ -38,9 +38,9 @@ Mission success will come when Graphite is an industry standard. A cohesive prod ## Funding -Graphite has no investors to answer to and will always be free and open source. [Keavon](#keavon), the project founder, has been personally funding all expenses out-of-pocket and turning down a tech industry salary to work full-time bringing Graphite to life. He asks for [your support](/donate) bearing a small fraction of that cost. +Graphite has no investors to answer to and will always be free and open source. The project runs entirely on donations and volunteer contributions. Its founder has turned down a tech industry salary to work full-time bringing Graphite to life. He asks for [your support](/donate) bearing a small fraction of that cost. -Long-term, donations will be supplemented by revenue from optional cloud storage/sync and high-speed GPU render services. +Long-term, a supplemental revenue source is planned from offering optional paid hosting of network rendering, multi-device sync, and remote storage services for professional users. diff --git a/website/content/blog/2023-12-31-graphite-development-progress-2021-2023.md b/website/content/blog/2023-12-31-graphite-development-progress-2021-2023.md new file mode 100644 index 000000000..d1e060f3e --- /dev/null +++ b/website/content/blog/2023-12-31-graphite-development-progress-2021-2023.md @@ -0,0 +1,809 @@ ++++ +title = "Graphite development progress: 2021-2023" +date = 2023-12-31 + +[extra] +banner = "https://static.graphite.rs/content/blog/2022-03-12-graphite-a-vision-for-the-future-of-2d-content-creation.avif" +banner_png = "https://static.graphite.rs/content/blog/2022-03-12-graphite-a-vision-for-the-future-of-2d-content-creation.png" +author = "Keavon Chambers" +summary = "An archive of Graphite development history with progress updates from 2021 to 2023." + +js = ["/js/youtube-embed.js"] +css = ["/component/youtube-embed.css"] ++++ + +TODO + + + +## 2021 + +### February 2021 + +***Watch the [project announcement presentation](https://youtu.be/Ea4Wt_FgEEw?t=564) and first month [project update presentation](https://youtu.be/gqCxt8XL92o?t=392) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#19](https://gamedev.rs/news/019/#graphite):* + +After this month's Rust Gamedev Meetup announcement presentation where the Graphite vision has attracted tremendous interest, advice of the community has resulted in shifting the development strategy to focus on an MVP release as soon as possible, which has begun: + +- The past year's in-development custom GUI has been shelved in lieu of an interim web GUI. Graphite intends to natively support Windows, Mac, Linux, and web. This change unblocks core application development but means Graphite is web-only until the Rust GUI ecosystem matures. Good progress this month has been made building a [Vue](https://vuejs.org/) web GUI. +- Graphite's MVP will now support only vector editing. This defers the large complexity of the graph render engine required for node-based raster editing. It should be less difficult to first focus on building a vector editor that improves upon the UX of other similar apps. + +This image shows the current GUI implementation state of progress: + +![Progress on the GUI](/images/2021-02.png) + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/1?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-02-14&until=2021-02-28) + +### March 2021 + +***Watch the [project update presentation](https://youtu.be/XE0lH0tlbBs?t=3661) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#20](https://gamedev.rs/news/020/#graphite):* + +Major progress was made building out the core architectural Rust code. A large accomplishment was designing a first draft software architecture diagram: + +
+Draft architecture diagram (click to expand) + +

+Graphite architecture diagram +

+ +
+ +The current editor now has functional Select, Rectangle, and Ellipse tools thanks to the newly-added tool state machine and SVG viewport drawing. The UI now also implements tool-related icons and buttons, bringing it closer to parity with the design mockup. The team also set up a Web/Rust-WASM build system, GitHub CI to confirm PRs compile, and put together starter documentation for the codebase, UX design, and manual. + +This image shows the latest editor UI and "Graphite" drawn crudely with its new shape tools: + +!["Graphite" drawn using the circles and rectangles of the new tool drawing system](/images/2021-03.png) + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/2?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-03-01&until=2021-03-31) + +### April 2021 + +***Watch the [project update presentation](https://youtu.be/6drrul3p_hU?t=3029) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#21](https://gamedev.rs/news/021/#graphite):* + +The team size has doubled in the past month — thank you to the new contributors! Since then, systems related to editor tools and data flow were added. The editor now has proper input behavior on the existing Rectangle and Ellipse tools plus the new Shape and Line tools while holding modifier keys. Pen tool implementation has begun, supporting polylines. Shapes are now drawn with live previews. + +Additional work has gone into improving render performance, building the color system in the Rust backend, and adding initial support for displaying shapes in the Layers panel. + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/3?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-04-01&until=2021-04-30) + +### May 2021 + +***Watch the [project update presentation](https://youtu.be/Wuwxh958P6I?t=2088) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#22](https://gamedev.rs/news/022/#graphite):* + +In the past month, new frontend features have mostly closed the gap for a visually complete UI while a major Rust backend refactor took place. + +A new frontend system for floating menus was added to draw menus over the UI, like dropdown menu input widgets and popovers to display the new color picker. Also, the application menu bar was built with working buttons for the new Undo and Export SVG actions. + +A large refactor in the Rust backend created a simpler communication strategy between all components in the software stack and a standard method of handling user inputs. + +This image shows a famous art piece by Piet Mondrian replicated in Graphite with its latest UI: + +![Piet Mondrian's artwork replicated in Graphite using the new color picker](/images/2021-05.png) + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/4?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-05-01&until=2021-05-31) + +### June 2021 + +***Watch the [project update presentation](https://youtu.be/0cefGQyZXH4?t=3423) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#23](https://gamedev.rs/news/023/#graphite):* + +Since last newsletter, the editor has received the ability to select layers via the Layers panel and by clicking or dragging a box selection in the viewport. Selected layers can be deleted, duplicated, and copy/pasted. + +It is now possible to create, edit, and close multiple documents in their own editor tabs. Additional frontend cleanup and polish has also improved many parts of the editor experience. + +Lastly, support for transforms was added to the layers and document, paving the way for moving/scaling/rotating layers and the whole document within the viewport. + +This artwork, created by Graphite community member BillyDM, won our first art contest: + +![Geometric cherry tree artwork](/images/2021-06.png) + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/5?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-06-01&until=2021-06-30) + +### July 2021 + +***Watch the [project update presentation](https://youtu.be/g-QZAVipiuU?t=1906) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#24](https://gamedev.rs/news/024/#graphite):* + +In the past month, the editor has gained numerous vector editing features, including moving layers with the keyboard or mouse, filling and copying colors, flipping and aligning selected layers, and setting blend modes and layer opacity. + +Scrollbars, rulers, and thumbnails are now functional. Full screen support has been added, along with a hotkey to center the artwork. An options bar with tool-specific settings and actions has been implemented, currently allowing the number of sides of a polygon to be selected. The order of layers can now be changed using hotkeys. + +This image by Graphite community member Norgate shows a recreation of Edvard Munch's "The Scream" using the new drawing tools: + +![A recreation of "The Scream" in Graphite by Norgate](/images/2021-07.png) + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/6?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-07-01&until=2021-07-31) + +### August 2021 + +***Watch the [project update presentation](https://youtu.be/TH3AErcNcTY?t=3070) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#25](https://gamedev.rs/news/025/#graphite):* + +Work has progressed on features for the app and designs for the project website. Crucial user-facing features have been added: saving/opening documents; a bug report dialog for panics; an auto-generated list of dependency license notices; and a new undo/redo system. + +The new Path tool shows Bézier anchors/handles (soon to be draggable). Render performance is much better. Scrollbars now work with the infinite canvas. There's a new transform cage around selected shapes, which may be transformed with Blender-inspired G/R/S keys. + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/7?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-08-01&until=2021-08-31) + +### September & October 2021 + +***Watch the [project update presentation](https://youtu.be/nLyiLnC5mn4?t=2410) at the Rust Gamedev Meetup.*** + +Exploratory research has been ongoing for GPU-driven graphics in Rust and its place in the Graphite pipeline. + +Several development tooling upgrades have been made, from TypeScript type checking and cutting down unnecessary dependencies to speeding up build time on license notice generation. An internal refactor made multi-document support now utilize unique document IDs. + +The editor's ruler measurements now move and scale with the document. Users of incompatible browsers are now visibly told to upgrade. And meanwhile, further progress has been made on the project website design. + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/8?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-09-01&until=2021-10-31) + +### November 2021 + +***Watch the [project update presentation](https://youtu.be/S7aoi_4a2uE?t=2538) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#28](https://gamedev.rs/news/028/#graphite):* + +Development continues to pick up speed. Design of the project website has continued for its launch soon, alongside the forthcoming alpha release. + +The project upgraded to the Rust 2021 edition and made big improvements to the frontend TypeScript and web infrastructure. The editor UI is now fully responsive at small window sizes. Unsaved document tabs display an `*` and warn before closing the window. And the new snapping system helps draw/move shapes aligned with others. + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/9?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-11-01&until=2021-11-30) + +### December 2021 + +***Watch the [project update presentation](https://youtu.be/BIMsBFbPV-c?t=1869) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#29](https://gamedev.rs/news/029/#graphite):* + +This wraps up a productive month of features and stability improvements. Documents persist page reloads via IndexedDB browser storage. The Layers panel got some love. Vector anchor points can be dragged (beginnings of the Path/Pen tools). Per-tool footer bar hints teach possible user input actions. And a big code cleanup/refactor took place behind the scenes. + +Additional new features and QoL improvements: artboards, panel resizing, the Navigate tool, outline view mode, support for touch input and non-Latin keyboards, an *About Graphite* dialog with version info, plus dozens of bugs and crashes were resolved. + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/10?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2021-12-01&until=2021-12-31) + +## 2022 + +### January 2022 + +***Watch the [project update presentation](https://youtu.be/adt63Gqt6yA?t=7143) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#30](https://gamedev.rs/news/030/#graphite):* + +As January winds to a close and the project anniversary nears, the team is proud and excited to announce Graphite alpha 1, the minimum viable product release for a web-based vector graphics editor. + +After one year in pre-alpha development by Graphite community members, this first milestone of alpha is nearly here. + +Graphite alpha 1 launches **Saturday, February 12** together with the project's website. + +Work now begins on alpha 2, focused on building the node graph engine and vector renderer. + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/11?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-01-01&until=2022-01-31) + +### February 2022 + +***Watch the [project update presentation](https://youtu.be/dQPkyjbd36Y?t=3953) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#31](https://gamedev.rs/news/031/#graphite):* + +After [officially launching the alpha](../announcing-graphite-alpha) version early this month, work has progressed in designing the node graph system. Also, the team has spent this month adding polish to the application and continuing work on more website content. + +A new editor feature is the Gradient tool which makes it possible to add some colorful pizzazz. This means that finally all vector editing tools are implemented, but some can still use improvement. Additional work has gone into visual changes to help aid in clarity and discoverability for new users. + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/12?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-02-01&until=2022-02-28) + +### March 2022 + +***Watch the [project update presentation](https://youtu.be/okWFrfaaADs?t=2936) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#32](https://gamedev.rs/news/032/#graphite):* + +With the completion of the initial node graph UX design, work has begun building the frontend and backend systems for the big leap to node-driven vector editing. This works by composing groups of Rust functions together at runtime and/or compile time. [Watch the (brief) talk](https://youtu.be/okWFrfaaADs?t=4014) about how the backend implementation works around challenges imposed by Rust. + +New editor features this month include importing bitmap image layers and customizing stroke styling with dashed lines and rounded or beveled corners. The project website is also now mostly content-complete, including new node graph mockups. + +This image shows the first full illustration drawn in Graphite, together with its latest UI: + +![Vector artwork of Yosemite Valley illustrated in Graphite](/images/2022-03.png) + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/13?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-03-01&until=2022-03-31) + +### April 2022 + +***Watch the [project update presentation](https://youtu.be/XOpZIzmFifk?t=3845) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#33](https://gamedev.rs/news/033/#graphite):* + +April's development has focused on further editor features and UX improvements: + +- **It's your type:** The Text tool now provides over 1400 fonts with bold/italic styles from the Google Fonts library. + +- **Oh snap!:** A refactor and polish pass on the snapping system provides better clarity and consistency. And shapes now have outlines on hover and selection for easier targeting. + +- **Have a dialog:** Supported by a refactor that moved dialog layouts into the Rust backend, users can now create new documents of specified sizes and export artwork as PNG/JPG with new *File* menu dialogs. + +- **Pack it up:** The web component of the stack was finally upgraded to Webpack 5 which cleans up a mess of outdated dependencies. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/14?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-04-01&until=2022-04-30) + +### May 2022 + +***Watch the [project update presentation](https://youtu.be/drcX3dCS5MY?t=3509) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#34](https://gamedev.rs/news/034/#graphite):* + +May's development has focused on project cleanup: + +- **Spring cleaning:** The past month's work has focused mostly on technical debt cleanup, documentation, and bug fixes around the frontend. That continues with the Rust backend next month. + +- **A radiant gradient:** The Gradient tool now supports radial styles in addition to linear. + +- **New blog post:** [Learn about plans](../distributed-computing-in-the-graphene-runtime/) for distributed computing across many CPUs and GPUs with Graphene, the Rust-based node graph engine and renderer that will power Graphite. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/15?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-05-01&until=2022-05-31) + +### June 2022 + +***Watch the [project update presentation](https://youtu.be/mnuchYuR_ck?t=4309) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#35](https://gamedev.rs/news/035/#graphite):* + +June's development focused mainly on bug fixes and big under-the-hood changes: + +- **Ahead of the curve:** A long-awaited refactor replaces the underlying Bézier curve data structure in alignment with requirements for Pen tool improvements and the upcoming node system. +- **Sending mixed messages:** The internal messaging system was upgraded to sequence the message processing in a more predictable stack-based order. A new subscription-based event broadcaster was integrated as well. +- **Back on the menu:** The application menu bar content definitions were moved from the JS frontend to a permanent home in the Rust backend. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/16?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-06-01&until=2022-06-30) + +### July 2022 + +***Watch the [project update presentation](https://youtu.be/s9kf9HVUKYE?t=2481) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#36](https://gamedev.rs/news/036/#graphite):* + +July's development focused on editor-centric refactors upgrading stopgap measures to more robust systems: + +- **Making a splash:** The default document is replaced by a welcome splash screen following a refactor allowing for zero open documents. +- **Modifying for Macs:** Input handling supports the nonstandard modifier keys on Mac keyboards, including labels in the UI. +- **Setting a high bar:** The menu bar cleans up actions and supports new ones like *File* > *Import*. Displayed hotkeys are based on the actual key mapping source, varying by OS. +- **Keeping organized:** The editor codebase is restructured to cut away technical debt and create consistency for new contributors and better docs going forward. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/17?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-07-01&until=2022-07-31) + +### August 2022 + +***Watch the [project update presentation](https://youtu.be/QKqqDilZ448?t=1096) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#37](https://gamedev.rs/news/037/#graphite):* + +August's development focused on Bézier shape editing and easier layer transformation: + +- **The pen is mightier than before:** Bézier shapes gain support for curve extension and shape closing using the Pen tool and inserting points along curves with the Path tool. +- **Front and center:** Layer origins may be set to control the center of rotation and scale using the Transform tool. + +Meanwhile, design and architecture work on the Graphene node-based programming language has been well underway. Graphene is the data graph engine that will replace Graphite's tree-based layer system in the next few months and evolve into a raster-and-vector render engine over time. + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/18?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-08-01&until=2022-08-31) + +### September & October 2022 + +***Watch the [project update presentation](https://youtu.be/BS_446HI12I?t=1096) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#39](https://gamedev.rs/news/039/#graphite):* + +September and October's development focused on major new features and improvements to make Graphite more useful and usable: + +- **Like magic:** Stable Diffusion, the open source AI image generator, is integrated into Graphite as the experimental Imaginate tool. It provides an innovative non-destructive workflow to interactively co-create art with AI. +- **Right on the nodes:** Graphite's node graph engine prototype is finally up and running, now integrated with a node-powered tool that desaturates the underlying artwork. A graph panel will be ready shortly. +- **With flying colors:** The color picker menu gains hex/RGB/HSV controls. Gradients get unlimited color transitions. The Eyedropper tool is rewritten to sample pixels from the viewport. The editor UI gets a color scheme design refresh for improved clarity, plus helpful new input widgets. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/19?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-09-01&until=2022-10-31) + +### November 2022 + +***Watch the [project update presentation](https://youtu.be/Ck2R0yqTLcU?t=2849) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#40](https://gamedev.rs/news/040/#graphite):* + +- **Filling in the blanks:** The experimental Imaginate tool gains Inpaint/Outpaint, letting users [replace content](https://youtube.com/watch?v=Ck2R0yqTLcU&t=3269) in masked areas and even [un-crop](https://youtube.com/watch?v=Ck2R0yqTLcU&t=3862s) images, powered by Stable Diffusion. +- **Connecting the dots:** The node graph compositor now [supports interactive editing](https://youtube.com/watch?v=Ck2R0yqTLcU&t=4332), so users can drag nodes and chain together effects. Nodes can be set in the Properties panel or exposed as inputs in the graph. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/20?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-11-01&until=2022-11-30) + +### December 2022 + +***Watch the [project update presentation](https://youtu.be/iSu-9yKsCRY?t=2138) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#41](https://gamedev.rs/news/041/#graphite):* + +- **Chain reaction:** The experimental Imaginate feature, an AI image generation workflow powered by Stable Diffusion, becomes a node. Chain together a sequence of fine-tuned generation steps. And explore ideas by branching the graph into new creative directions. +- **Node nurturing:** New features provide polish to the node graph. Nodes can be copy/pasted, hidden, previewed, and linked more easily. +- **Bugs, begone!:** A major effort to improve editor usability fixes dozens of bugs and paper cuts. Boolean shape operations now crash less frequently, the UI no longer slows down badly over time, and undo history is finally fixed. + +This video shows a timelapse of creating mixed vector-and-raster art using the latest features: + +
+ Graphite - Vector Editing: "Commander Basstronaut" Artwork (25x Timelapse) +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/21?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2022-12-01&until=2022-12-31) + +## 2023 + +Full-year summary blog post: [**Looking back on 2023 and what's next**](../looking-back-on-2023-and-what-s-next) + +### January 2023 + +***Watch the [project update presentation](https://youtu.be/HTxX-Wm-3R8?t=2010) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#42](https://gamedev.rs/news/042/#graphite):* + +- **Picture this:** Imported images are now part of the node graph. The new *Image Frame* node converts bitmap data into a vector rectangle holding the image. This paves the way for other vector data like shapes and text to soon be converted into nodes and composited alongside images. +- **Instant iterations:** Incremental graph compilation avoids recompiling the whole graph each time an edit is made or a value changes. This makes iteration faster and enables caching of intermediate computations for faster rendering. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/22?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-01-01&until=2023-01-31) + +### February 2023 + +***Watch the [project update presentation](https://www.youtube.com/watch?v=UBtflhwgAHw) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#43](https://gamedev.rs/news/043/#graphite):* + +- **Shaping up:** Editing shapes is now easier thanks to point selection and manipulation improvements. +- **Deep dive:** The user experience of nested layer selection is improved by introducing "Deepest" and "Shallowest" modes. +- **Scroll settings:** Scroll up-and-down, or zoom in-and-out, at your preference using the new configuration for scroll wheel behavior. +- **Graph growth:** Additional node graph engineering introduces graceful type checking and brings GPU-accelerated compositing closer to realization. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/23?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-02-01&until=2023-02-28) + +### March 2023 + +***Watch the [project update presentation](https://www.youtube.com/watch?v=ZzxTtAuYk04) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#44](https://gamedev.rs/news/044/#graphite):* + +- **Vector nodes:** A major refactor moves vector shape layers into the node graph. Now the *shape*, *transform*, *fill*, and *stroke* are all set via nodes in the graph. Text is the final remaining holdout and will be node-ified next, letting the node graph act as the universal layer type. + +This image shows the latest vector artwork created in Graphite, with a glimpse at the new node graph shown beneath for the selected layer: + +![Valley of Spires - Vector art made in Graphite](/images/2023-03.png) + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/24?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-03-01&until=2023-03-31) + +### April 2023 + +***Watch the [project update presentation](https://www.youtube.com/watch?v=PrYO1gg7hX4) at the Rust Gamedev Meetup.*** + +*The following update originates from the Rust Gamedev Newsletter [#45](https://gamedev.rs/news/045/#graphite):* + +- **Brushing up:** The new Brush tool makes it possible to paint raster-based art. +- **Writing down:** A refactor of the Text tool integrates typographic content in the node graph. Finally, all artwork types are node-based. +- **Showing true colors:** Node graph compositing now uses linear, not gamma, color. Key new color adjustment nodes are added. +- **Laying the groundwork:** Further engineering work prepares the node graph language for GPU execution. And development continues toward in-graph layer stack compositing. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/25?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-04-01&until=2023-04-30) + +### May 2023 + +***Watch the [project update presentation](https://youtu.be/1DiA3OYqvqU?t=1923) at the Rust Gamedev Meetup.*** + +- **GPU goodness:** The node graph engine now offers experimental GPU-powered execution using [WGPU](https://wgpu.rs/) and WebGPU in Chromium browsers. Computation is now decoupled from the editor for asynchronous, high-performance workflows. Early [rust-gpu](https://rust-gpu.github.io/) shader compilation is also supported. +- **A better brush:** The brush tool is now smoother and more responsive, with real-time performance and new eraser and blend modes for versatile raster editing. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/26?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-05-01&until=2023-05-31) + +### June 2023 + +***Watch the [project update presentation](https://youtu.be/47wamZL5IFw?t=1968) at the Rust Gamedev Meetup.*** + +- **Menu makeover:** The menu for inserting nodes into the graph has been revamped. +- **Engine engineering:** Further work has gone into the infrastructure of the Graphene node engine. + +
+ +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/27?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-06-01&until=2023-06-30) + +### July 2023 + +***Watch the [project update presentation](https://youtu.be/I_7AgjiE9RA?t=2681) at the Rust Gamedev Meetup.*** + +- **Reach for the stars:** Vector editing is now more pleasant and comes with new support for box selection of points and drawing star shapes. + + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/28?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-07-01&until=2023-07-31) + +### August 2023 + + + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/29?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-08-01&until=2023-08-31) + +### September & October 2023 + + + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/30?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-09-01&until=2023-10-31) + +### November 2023 + + + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/31?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-11-01&until=2023-11-30) + +### December 2023 + + + +- [List of closed issues this month](https://github.com/GraphiteEditor/Graphite/milestone/32?closed=1) + +- [List of code commits completed this month](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2023-12-01&until=2023-12-31) + +## 2024 (addendum) + +Full-year summary blog post: [**Year in review: 2024 highlights and a peek at 2025**](../year-in-review-2024-highlights-and-a-peek-at-2025) + +For completeness, the following is compiled as an addendum to the 2021-2023 development summaries presented above. For the year 2024, we explored breaking down the progress updates into detailed quarterly reports filled with visual feature demonstrations, each published as individual blog posts. They are linked below for further reading. + +### Q1 (January - March 2024) + +![](https://static.graphite.rs/content/blog/2024-05-09-graphite-progress-report-q1-2024__2.avif) + +Blog post: [**Graphite progress report (Q1 2024)**](../graphite-progress-report-q1-2024/) + +Further details by month: + +- January: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/33?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-01-01&until=2024-01-31) • [update presentation](https://youtu.be/lYHWuORYUOU?t=4179) + +- February: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/34?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-02-01&until=2024-02-29) • [update presentation](https://youtu.be/4RiTqzgRSFE?t=2410) + +- March: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/35?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-03-01&until=2024-03-31) + +### Q2 (April - June 2024) + +![](https://static.graphite.rs/content/blog/2024-07-31-graphite-progress-report-q2-2024.avif) + +Blog post: [**Graphite progress report (Q2 2024)**](../graphite-progress-report-q2-2024/) + +Further details by month: + +- April: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/36?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-04-01&until=2024-04-30) + +- May: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/37?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-05-01&until=2024-05-31) + +- June: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/38?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-06-01&until=2024-06-30) + +### Q3 (July - September 2024) + +![](https://static.graphite.rs/content/blog/2024-10-15-graphite-progress-report-q3-2024.avif) + +Blog post: [**Graphite progress report (Q3 2024)**](../graphite-progress-report-q3-2024/) + +Further details by month: + +- July: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/39?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-07-01&until=2024-07-31) + +- August: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/40?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-08-01&until=2024-08-31) + +- September: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/41?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-09-01&until=2024-09-30) + +### Q4 (October - December 2024) + +![](https://static.graphite.rs/content/blog/2025-03-31-graphite-progress-report-q4-2024.avif) + +Blog post: [**Graphite progress report (Q4 2024)**](../graphite-progress-report-q4-2024/) + +Further details by month: + +- October & November: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/42?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-10-01&until=2024-11-30) + +- December: [closed issues](https://github.com/GraphiteEditor/Graphite/milestone/43?closed=1) • [code commits](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-12-01&until=2024-12-31) diff --git a/website/package-lock.json b/website/package-lock.json index 4870c39c6..d2b6fc1fd 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -5,6 +5,7 @@ "packages": { "": { "name": "graphite-website", + "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@fontsource-variable/inter": "^5.2.5", diff --git a/website/package.json b/website/package.json index 429df6552..e21d09dd0 100644 --- a/website/package.json +++ b/website/package.json @@ -10,7 +10,7 @@ "license": "Apache-2.0", "homepage": "https://graphite.rs", "scripts": { - "install-fonts": "npm ci && node install-fonts.js" + "postinstall": "node install-fonts.js" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^8.7.0", diff --git a/website/static/images/2021-02.png b/website/static/images/2021-02.png new file mode 100644 index 000000000..e51f7a12a Binary files /dev/null and b/website/static/images/2021-02.png differ diff --git a/website/static/images/2021-03-architecture-diagram.png b/website/static/images/2021-03-architecture-diagram.png new file mode 100644 index 000000000..968c00885 Binary files /dev/null and b/website/static/images/2021-03-architecture-diagram.png differ diff --git a/website/static/images/2021-03.png b/website/static/images/2021-03.png new file mode 100644 index 000000000..e885b498e Binary files /dev/null and b/website/static/images/2021-03.png differ diff --git a/website/static/images/2021-05.png b/website/static/images/2021-05.png new file mode 100644 index 000000000..f4feb8310 Binary files /dev/null and b/website/static/images/2021-05.png differ diff --git a/website/static/images/2021-06.png b/website/static/images/2021-06.png new file mode 100644 index 000000000..a23f94976 Binary files /dev/null and b/website/static/images/2021-06.png differ diff --git a/website/static/images/2021-07.png b/website/static/images/2021-07.png new file mode 100644 index 000000000..04369cdf9 Binary files /dev/null and b/website/static/images/2021-07.png differ diff --git a/website/static/images/2022-03.png b/website/static/images/2022-03.png new file mode 100644 index 000000000..2bd84a028 Binary files /dev/null and b/website/static/images/2022-03.png differ diff --git a/website/static/images/2022-12.png b/website/static/images/2022-12.png new file mode 100644 index 000000000..255dc504b Binary files /dev/null and b/website/static/images/2022-12.png differ diff --git a/website/static/images/2023-03.png b/website/static/images/2023-03.png new file mode 100644 index 000000000..5f4a97a00 Binary files /dev/null and b/website/static/images/2023-03.png differ diff --git a/website/templates/base.html b/website/templates/base.html index d3ed68c49..f31bd668c 100644 --- a/website/templates/base.html +++ b/website/templates/base.html @@ -38,7 +38,7 @@ {%- set global_css = ["/base.css", "/fonts/common.css"] -%} {%- set fonts_loaded = load_data(path="static/fonts/common.css", format="plain", required=false) -%} {%- if not fonts_loaded -%} - {{ throw(message="------------------------------------------------------------> FONTS ARE NOT INSTALLED! Before running Zola, execute `npm run install-fonts` from the `/website` directory.") }} + {{ throw(message="------------------------------------------------------------> FONTS ARE NOT INSTALLED! Before running Zola, execute `npm install` from the `/website` directory.") }} {%- endif -%} {#- RETRIEVE FROM TEMPLATES AND PAGES: CSS AND JS TO LOAD EITHER AS A LINK OR INLINE -#}