Show HN: Graphite, a Blender-inspired 2D procedural design Rust app
Graphite is an open-source graphics editor in alpha, combining vector and raster capabilities. It features a nondestructive workflow, with native desktop apps expected in 2024 and ongoing performance improvements.
Read original articleGraphite is an open-source vector and raster graphics editor currently in alpha, designed for 2D content creation. It features a nondestructive editing workflow that integrates layer-based compositing with node-based generative design. Initially focused on vector editing, Graphite is evolving into a comprehensive graphics toolbox, aiming to consolidate various creative workflows such as graphic design, image editing, motion graphics, and digital painting into a single application. The software is lightweight and accessible as a web app, with plans for native desktop applications for Windows, Mac, and Linux expected in 2024. Key features include procedural workflows, node-based layers, and the ability to make adjustments through sliders, allowing for rapid iteration and customization. Upcoming enhancements will introduce fully-featured raster manipulation, live collaborative editing, and support for generative AI pipelines. Graphite's architecture is optimized for performance on both desktop and web platforms, utilizing advanced technologies like WebAssembly and WebGPU. The project has seen significant progress in recent months, with numerous improvements and new features being implemented, driven by contributions from Google Summer of Code interns. Users are encouraged to support the project through donations and stay updated via newsletters and social media.
- Graphite is a free, open-source graphics editor focused on procedural editing.
- It combines vector and raster graphics capabilities in a single application.
- Native desktop applications are expected to launch in 2024.
- The software supports rapid iteration through adjustable node parameters.
- Recent updates have significantly improved performance and functionality.
Related
Show HN: Stipple Effect – a scriptable pixel art editor to make game art faster
Stipple Effect is a lightweight pixel art editor for indie game developers, featuring animation support, scripting, layer management, and robust tools for creating and managing video game art assets.
Rnote – Sketch and take handwritten notes
Rnote is an open-source vector drawing application for sketching and note-taking, featuring an adaptive interface, multiple layouts, various formats, and community engagement, available on Linux, MacOS, and Windows.
IOGraphica
IOGraphica is a free application that converts mouse movements into visual art, developed by Anatoly Zenkov and Andrey Shipilov. It is available on multiple operating systems and encourages donations for development.
Show HN: Graphiti – LLM-Powered Temporal Knowledge Graphs
Graphiti is a framework for creating dynamic Knowledge Graphs that process structured and unstructured data. It features temporal awareness, episodic processing, and requires Python, Neo4j, and an OpenAI API key.
SVGEdit: A fast, JavaScript-driven SVG drawing editor
SVGEdit is an open-source web-based SVG drawing editor compatible with modern browsers, allowing users to create and edit graphics, host locally, contribute to the project, and integrate into web applications.
- Users express enthusiasm for Graphite's potential as an open-source alternative to existing graphics software like Illustrator and Inkscape.
- Several commenters highlight the need for features such as "ungrouping" elements and scripting support to enhance usability.
- Performance issues are noted, with some users experiencing lag when handling complex SVG files.
- There is curiosity about the development choices, including why the creators opted for a new project instead of improving existing tools like Inkscape.
- Overall, the community shows strong support for open-source tools and a desire for continued development and feature expansion.
The one thing is when something is drawn in the interactive UI, rather than becoming a single node which cannot be decomposed/worked with via sub-elements, it should become (or there should be an option for) "ungrouping" it to an equivalent set of nodes/values --- if this capability is present, I couldn't figure it out, and I'd be glad to know of it.
It makes me very excited to see tools that are built as web apps because more gravity on web means more capabilities for the web platform which is more open and accessible.
Rust is great - amazing. I presume it is compiled to Web Assembly.
I'm just wondering how and why these three passionate gifted individuals didn't go Round A, Round B Investor funding, post valuation SAFE, Press briefing route?
Been thinking a lot about it lately when I see tons of AI wrappers, open weight fine tuned packaged models and everything in between.
Probably passion can't be priced? Happiness is not valuation?
[Open source Rust graphics editor] Graphite progress report (Q2 2024) - https://news.ycombinator.com/item?id=41138691 - Aug 2024 (3 comments)
Graphite 2D graphics editor built in Rust: Looking back on 2023 and what's next - https://news.ycombinator.com/item?id=38855850 - Jan 2024 (2 comments)
Graphite: 2D Raster and Vector Editor - https://news.ycombinator.com/item?id=38169500 - Nov 2023 (4 comments)
Graphite: Open-source raster and vector 2D graphics editor - https://news.ycombinator.com/item?id=36901406 - July 2023 (64 comments)
Graphite – open-source raster and vector 2D graphics editor written in Rust - https://news.ycombinator.com/item?id=30675530 - March 2022 (18 comments)
I read it as a replacement for Blender, but upon testing it I was confused as everything was 2D and looks like Photoshop.
But no, you meant the next Photoshop, while referencing Blender as a popular open source version of closed-source 3D modeling/rendering software? Is that right?
You should probably add Graphite to this list [2]. I'll definitely try Graphite and follow its progress.
Good luck!
--
Someday, I'd like to try my hand at making my own vector graphics tool that contains a constraint solver. I am just an amateur when it comes to graphic design, but I often find Inkscape incredibly difficult to use. Certain shapes take bizarre combinations of commands to create and once a design is finished it can be hard to make adjustments. I find it much easier to make 2D designs as a fusion 360 sketches because constraining a bunch of lines and curves then playing with measurements is significantly more intuitive and interactive. Also maybe a tool like this already exists and I'm just not aware of it.
Why create a new project instead of advancing InkScape though?
I wish I could do this kind of Rust code in my day job.
Every update (even moving the canvas around takes 1-2 secs on my laptop.
TLDR; looks like this is redrawing everything every time which makes it useable only for very simple projects atm, unless I miss sth. I.e. needs caching of vectors as bitmaps/textures of some sort.
Also doesn't seem to support OpenEXRs yet? They won't show in the file browser.
Screenshots look great and I love the node editor's mapping to the layer stack.
But as always with Graphite it's still unclear to me how many of the screenshots show actual functinality and how many are mockups or the functionality behind some UI elements is simply not implemented yet.
When searching for "scripting" on the pages, I don't see any scripting support. Are there plans to integrate it?
Also some kind of API?
Here are some things in mine that I've found useful but don't see here (/ might have missed) and could be food for thought (presumably some of these are just NYI but noting them regardless): [edit: a couple of these things are already noted at https://github.com/GraphiteEditor/Graphite/issues/1870]
- shift+G/R/S for setting handle mode (bent, colinear, and colinear+equidistant respectively) works out quite intuitively; mode can be displayed as a different icon on the point (square for bent, rectangle aligned to angle for colinear, and circle for equidistant is what I use; circle is somewhat questionable but my handles have arrow tips)
- while holding just a handle, set the rotation/scale anchor point to its point
- allow both rotate and scale at the same time (maybe never useful but I still did it. ¯\_(ツ)_/¯)
- while rotating/scaling, some shortcut for setting the anchor point (esp. snapped to an element representing the rotational center of a symmetric design)
- middle-mouse-dragging while holding an element should ignore the delta mouse movement during the movement
- I draw visual indicators of the current r/g/s accumulated action (g: a line from the starting mouse position in the canvas to where it'd be dragged to; s: line from the anchor point through the current and original mouse position with different colors (i.e. the ratio of the color lengths is the ratio of scaling); r: lines from the anchor to original & current mouse position, with an arc in between (very busy-looking, don't quite like it))
- some actions - cut a path into two (a thing I don't have but have wanted is drag-selecting to cut into three), snapping to existing points if near enough; and another to join paths if two end-points are selected; and select all linked to current selection
Maybe just because it's in the browser?
Related
Show HN: Stipple Effect – a scriptable pixel art editor to make game art faster
Stipple Effect is a lightweight pixel art editor for indie game developers, featuring animation support, scripting, layer management, and robust tools for creating and managing video game art assets.
Rnote – Sketch and take handwritten notes
Rnote is an open-source vector drawing application for sketching and note-taking, featuring an adaptive interface, multiple layouts, various formats, and community engagement, available on Linux, MacOS, and Windows.
IOGraphica
IOGraphica is a free application that converts mouse movements into visual art, developed by Anatoly Zenkov and Andrey Shipilov. It is available on multiple operating systems and encourages donations for development.
Show HN: Graphiti – LLM-Powered Temporal Knowledge Graphs
Graphiti is a framework for creating dynamic Knowledge Graphs that process structured and unstructured data. It features temporal awareness, episodic processing, and requires Python, Neo4j, and an OpenAI API key.
SVGEdit: A fast, JavaScript-driven SVG drawing editor
SVGEdit is an open-source web-based SVG drawing editor compatible with modern browsers, allowing users to create and edit graphics, host locally, contribute to the project, and integrate into web applications.