← Back to context

Comment by jshxr

2 months ago

Very cool! A few notes:

- I really like the level of fine-grained control, even for changes that don't visibly affect the output, like reversing a path. For that case, some visual feedback would help, since it's hard to tell if it worked

- Copying a selection to the clipboard seems to include all fonts used in the scene (even if not selected) as base64 in the SVG, leading to a bloated output

Do you plan to keep the strict 1:1 mapping with SVG, or are you open to some abstractions? I still use Figma for creating SVGs because of one killer feature I can't work without anymore: Vector Networks [1]. They'd need some internal conversion to valid path data, but it's an abstraction that could add real value.

On the technical side, I'm surprised the editor uses SVG for rendering. Although of course it makes sense, I half expected it to use canvas under the hood. Lately I've been experimenting with rendering simple 3D objects using SVG and ran into performance issues pretty quickly, though I'm not yet sure what exactly' is causing them.

Did you do any stress testing yet, especially on older devices?

[1] https://www.figma.com/blog/introducing-vector-networks/

I realized a while ago that Vector Networks (I call them path graphs) is actually an intermediate structure that I already have when performing a boolean path operation. I was skeptical of Vector Networks until recently, when I realized that they would be awesome as a result of bitmap vectorization, which has become more important with all the AI generated images. So yes, I want to implement them, but there is so much more mundane work to do that I cannot say why.

I am doing stress testing and test it on really crappy devices (an old 100€ Android tablet is the worst), but this post was quite spontaneous and I should have done a bit more testing before it. I used to deliberately work on an old ThinkPad to immediately notice any performance issues, but the IDEs have become so demanding that this is almost impossible. But I keep those devices around and try to make sure that it runs on older hardware.

Regarding your other suggestions: I am currently going through all suggestions in the comments and will make issues for them. The amount of helpful responses was just overwhelming. I was hoping for about 5 upvotes and maybe two comments :)

Edit: The decision on using SVG for rendering was done because I wanted to make sure that the rendering looks exactly like the saved SVG file. I have been thinking about using Canvas or WebGL for the overlay, but for now it runs fast enough with most images.