Show HN: Graphite, a Blender-inspired 2D procedural design Rust app

Keavon | 337 points

This is amazing. I love Inskcapke but I think this tool is too good.

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?

wg0 | 5 hours ago

This looks neat. I’ve been using Illustrator for twenty five years and have been wishing for a node-oriented replacement of the Appearance stack a lot lately. I will have to check it out when you have binaries, I hate web apps.

egypturnash | 9 hours ago

Related. Others?

[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)

dang | 10 hours ago

I had to re-read your intro paragraph a few times to understand what this is supposed to be.

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?

bangaladore | 9 hours ago

Wow this looks fantastic! Good open-source tools for design are so necessary [1].

You should probably add Graphite to this list [2]. I'll definitely try Graphite and follow its progress.

Good luck!

--

1: https://www.youtube.com/watch?v=lthVYUB8JLs

2: https://github.com/KenneyNL/Adobe-Alternatives

emmanueloga_ | 7 hours ago

Congrats on releasing such a complex tool, that's a big achievement.

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.

mightyham | 8 hours ago

What a fantastic UX. You guys can really be very proud. Between this and Zed there are already two apps that can replace everyday apps for me.

I wish I could do this kind of Rust code in my day job.

lionkor | 2 hours ago

I opened a medium complex SVG and the app became unresponsive beyond useable. After scaling it down by manually entering the scale values I could not find the SVG any more (the Align... buttons in the top bar are always grayed out/not implemented yet, it seems).

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.

virtualritz | 32 minutes ago

The appeal of Blender for me is not just the open-sourceness, but also the fact that everything in it is programmable. Any action you can do via UI, you can do by calling some Python method.

Why create a new project instead of advancing InkScape though?

bufferoverflow | 7 hours ago

Love it! I've never liked how 2D graphics currently involves so many separate programs and forces you into a feed forward pipeline workflow.

eternityforest | 3 hours ago

Wow! That's something really useful and awesome. Shame on Adobe while having so much resources not pushing more to build a diverse eco system of creative apps like Graphite

martin_henk | 4 hours ago

This is the kind of stuff I love to see at the top of HN, that application looks absolutely professional.

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?

qwertox | 3 hours ago

Wow, cool! I think I remember a post years ago about this project. IIRC you did a thesis in something to do with simulating brush strokes? Anyway, congrats on releasing this, super impressive to have worked on this for so long and come out with something that looks so good. (And it's awesome that you're looking into using Vello too.)

ChadNauseam | 6 hours ago

Looks good! I'm not too much into graphics these days, but when I was I would've loved that.

nassimm | 6 hours ago

This is really cool but I have an RTX 4080 and it's really struggling to open and subsequently manipulate the example art.

Maybe just because it's in the browser?

lacoolj | 10 hours ago

Oh cool! I've had a very unfinished unpublished SVG editor from a couple years ago with blender-ish controls that I started cleaning up a couple days ago; guess I don't need to anymore.

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

dzaima | 6 hours ago

What UI crate are you using for the GUI?

adastra22 | 9 hours ago
[deleted]
| 9 hours ago

this is cool.great job.

android521 | 3 hours ago

Love the design.

revskill | 4 hours ago

this looks really promising. I'm missing the old days of PSP to dr up some image for meme fun etc. This looks like it'd do the job.

senectus1 | 8 hours ago

(The submitted URL was https://graphite.rs/blog/graphite-progress-report-q3-2024/ but I converted the post to a Show HN per https://news.ycombinator.com/newsguidelines.html and added the progress report link to the bottom of your text. I hope this helps!)

dang | 10 hours ago

[dead]

OhNoNotAgain_99 | an hour ago
[deleted]
| 10 hours ago
[deleted]
| 5 hours ago