Show HN: Hyvector – A fast and modern SVG editor

hyvector.com

325 points by jansan 4 days ago


I have been working on Hyvector for the last five years and finally decided to present the result of my work.

Hyvector is an SVG editor that runs in all modern browsers. It is stable, very fast, and capable of handling complex SVG images.

Big new features like art strokes, vector tracing, colorizing are in the making, but for now the focus is on pushing a polished first release out of the door.

I would love to hear any feedback on what you like, missing features, or any bugs you encounter via our issue tracker: https://github.com/hyvectorapp/hyvector-issues

Note that while Hyvector should work on a phone, it is much more usable on a desktop computer or tablet.

jwmcglynn - 4 days ago

Very nice! My side project is a C++ SVG rendering library, and I have never been able to find great SVG editors.

I usually fall back to Illustrator and then clean up the resulting markup, or a text-based editor such as https://www.svgviewer.dev/

Your UX is quite polished, and your tool already supports more features than other ones I've found, good work!

For reference this is my project, https://github.com/jwmcglynn/donner, which has a web-based "editor" (currently just code-based editing) prototype here: https://jwmcglynn.github.io/donner-editor/

SVG is one of those things that has lots of potential but has been impacted by not-so-great tooling, it's my passion and I'm glad to see innovation in the space.

WillAdams - 4 days ago

It's a nice beginning.

Some obvious features which I missed:

- nodes tool should want to snap begin/end nodes together when editing (and the snap distance could be larger when initially creating, esp. w/ the pencil tool)

- rather than a Nodes tool for editing, something like to Wick Editor's Flash/Futurewave Smarksetch pull/push deforming would be much more mobile friendly

- if corner rounding doesn't work on polygons it should be hidden/disabled

Gualdrapo - 4 days ago

This is what I wish KDE's Karbon was - a friendly but quick and capable SVG editor.

Granted, I wish it somehow could had the functionalities SVG Path Editor[0] has, which I haven't been able to find in any other editor (like, for example, converting absolute `<path>` coordinates to relative, editing each line, curve, and so on for each `<path>`).

Another feature that would be great to have but would require a monumental amount of work, or maybe even be its own project, would be animation.

lyu07282 - 4 days ago

Looks great! Not meant as a critique but I always thought SVG is the wrong level of abstraction for an editor, I don't really want a SVG editor I want a vector drawing program. Sure it should render to optimized SVG, but a UI/UX built around the SVG concepts like path, clip-path and the like is not very end-user friendly. This always irked me about inkscape anyway.

Also what I always thought would be a real killer feature would be something similar to blender modifiers (array, mirror, etc.) but in a vector editor, allowing for non-destructive editing.

boomskats - 4 days ago

I really like the UX of this. Very usable on a Wacom enabled android tablet.

Don't know if your spline editing mechanism (i.e. the ability to drag the line around from an aribtrary point rather than tweaking the individual handles) is something you came up with yourself or borrowed from elsewhere, but I really really like it.

Only thing I noticed is that touch scrolling doesn't work on the tree on the left. Otherwise it's very smooth.

Have you implemented any keyboard shortcuts?

recursive - 4 days ago

I could not figure out how to do stuff. I made a line segment, but then could not find a way to move or resize it, although I did get some drag handles to show up. I couldn't figure out how to make any other shape, like rectangles or circles. I clicked on every button I could find probably twenty times in different orders, but could not get most of them to do anything.

schiffern - 4 days ago

Neat! I want this project to succeed.

A couple First Impression Experience pieces of feedback:

* when it first starts, how about a blank untitled document to play with, and maybe select a fun tool like the Bezier pencil as the initially selected tool. I was able and motivated to click around, realize there was no open document (probably the biggest stumbling block), create a new document, change the tool, and start playing, but many users won't be.

* it seems like a small thing, but please make the default canvas a bit larger (maybe 512 or 500 square). Again just more fun in that critical 10-20 second window, which is all most people will realistically give when checking out a new thing. If you can't hook 'em in that timeframe, they simply browse away and you lose a ton of folks.

Looks very good, thank you for sharing.

edu - 4 days ago

Nice, shows a lot of promise. A quick feedback, placign the floating toolbar at the top is distracting and takes up real-state from the actual drawing. I'd prefer to have a regular toolbar or placing it at the bottom of the canvas.

Edit: or make it moveable/collapsible

jshxr - 3 days 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/

jwmcglynn - 4 days ago

After using it, I think this is a great start. As I mentioned in the previous comment, I really like the UX, and this is specifically about:

- The Pen tool feels intuitive.

- I like how the Objects panel shows previews of each layer.

- It is nice to see clip-path support integrated well, and features such as converting text to outlines, and boolean operations - these seem like rare features.

Here's some critical feedback after using it:

- Keybindings to switch between tools would be useful, and they should be annotated on the tooltips

- I'd like to see zoom/panning supported with Ctrl +/- and panning when holding space and clicking/dragging.

- When editing groups of shapes, it is hard to select individual shapes in the group. Double-clicking switches to the Nodes tool, which is not exactly what I want. I'd like something where double-clicking a group goes into some sort of "Group Isolation" editing mode.

- When using the Pen tool, I'd like to be able to go back to tweak the previous points, such as adjusting the control points, etc.

- Undo in Pen mode does not undo the insertion of points in the path, instead of Undoes operations from before the shape was started.

- Text support seems limited, for example an embedded @font-face did not render correctly. Similarly for filter support. If the editor doesn't support these features I'd expect them to at least be rendered correctly by the browser, but it seems like SVG rendering here is independent.

ansc - 4 days ago

I've been thinking about why there's no modern SVG editor like this. Super nice to see. Inkscape can be a bit of a pain imo, even if it has extensive features. I'll definitely give it a spin. Good luck!

8mobile - 2 days ago

Congratulations for your SVG editor, I really like the idea. Clean graphics, easy to use. Would it be possible to export the created files also in PDF format? It would be really useful as an editor. Thanks and keep it up

pveierland - 4 days ago

This locked up my system so hard I couldn't recover by killing the browser or reloading the window manager (Firefox 133.0.3 / Sway 1.9). Had to reboot and don't have time to investigate further right now. Appeared to happen while double clicking and dragging around elements a bit rapidly.

Karliss - 4 days ago

There is no way to join 2 nodes without introducing new edge, unless there is some hidden shortcut. Also the "connect paths" ignores selection and instead randomly picks one of the two ends with matching direction. Even if you know the end direction rule you can't know which of the 2 endpoint pairs will be connected.

I might be slightly biased as I am more used to even/odd infill mode compared to non zero mode, but having user constantly keep track of which paths are clockwise and which are counterclockwise seems like unnecessary hassle, especially for paths without infill where it shouldn't matter. At least there is a UI indicator for it, otherwise I would be very confused.

artursapek - 4 days ago

Nice. I built something like this years ago. SVG is a really fun standard to build stuff around.

iFire - 4 days ago

The first thing that came to mind was my friend's project to do a SVG editor in Godot Engine https://www.godsvg.com/.

I'll write my first impressions of https://github.com/hyvectorapp so it helps usability and improvement.

Oh it's a freemium app.

hyvectorapp starts off looking like figma, penpot style which is a good sign.

I can export svg [x]

There's no align to grid system.

vector tracing is not generally solved except via the vectormagic product and machine learning research prototypes. I wonder how you solved it.

Can't interact more today so I'll end with this note of hopefulness.

mbar84 - 3 days ago

I really like how well the node editor preserves the path as much as possible when adding or removing nodes, apparently adjusting adjacent nodes to minimize distortion.

herpdyderp - 4 days ago

Not a single thing in this works in Safari

stared - 4 days ago

Thank you for sharing! Does it offer a way to edit relevant pieces of SVG code?

cssinate - 4 days ago

This looks great! If you're open to feedback, one thing I love is being able to edit the actual SVG properties right inside the app - the CSS, the path nodes, etc.

- a day ago
[deleted]
throwaway2562 - 4 days ago

Looks cool! Very polished, I appreciate just how much effort it takes to get something like this out of the door.

Couple of questions for OP

What is it written in? What will the license be?

Context: Currently evaluating the venerable SVGEdit (MIT, JavaScript) for a project

https://github.com/SVG-Edit/svgedit

Matheus28 - 4 days ago

You might wanna look into Skia’s pathkit for a lot of path transformations it can do and you could use.

kiney - 4 days ago

how does it compare to inkscape?

sandreas - 4 days ago

Nice thank you. I often use https://github.com/Yqnn/svg-path-editor, but I'm going to try this one out.

Mystery-Machine - a day ago

Just tried to edit this icon so that the arrow is in the center of the circle. The mask wasn't properly recognized and so it only shows a black circle:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" stroke-width="2" stroke="black"> <circle cx="10" cy="10" r="10" fill="currentColor" mask="url(#maskArrow)"></circle> <mask id="maskArrow"> <circle cx="10" cy="10" r="10" fill="white"></circle> <path d="M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.41z"></path> </mask> </svg>

popalchemist - 4 days ago

Would be interesting if it were open source. This is not enough to be a product, but it's enough to be a package you could build products with.

whartung - 4 days ago

If you're willing, I'd like to ask some questions about your implementation. My email is in my profile.

syntaxfree - 4 days ago

What’s the story behind the naming?

(I presume it’s not written in Hy/Hylang, the cute little Lisp that compiles to Python.)

upofadown - 3 days ago

It's modern? What counts as old and busted in this space?

VoltCraft - 4 days ago

checked the generated SVG for clues and was glad to see you have a link to the editor. very nice! https://www.hyvector.com/dtd

jvidalv - 4 days ago

Cool! Can you add support for an MCP API so we can use it within claude?

julik - 3 days ago

Super impressive!

dmje - 2 days ago

This is really lovely, very responsive, and better than other tools I've tried.

Is it just me though, or is the saving functionality wonky? I seem to be able to save but then "save as" doesn't prompt for a new filename / location. I wanted to fiddle with an svg, add additional layers, save a few versions locally - but seem unable to do this?

mwilcox - 4 days ago

Can you open source it

Lalo-ATX - 4 days ago

does not work on latest Chrome on Windows (136.0.7103.93)

Alex_001 - 3 days ago

[dead]

rizky05 - 4 days ago

Good job! but somehow the UI looks blurry on mac.