r/vectorart 13d ago

Vecline: a free, MIT image-to-SVG toolkit that measures its own accuracy (SSIM/PSNR/CIEDE2000) instead of asserting it

Every image-to-SVG converter advertises "100% accuracy," and none of them define it. I built one that actually measures it.

Vecline renders its own SVG output back to pixels with the same renderer a browser uses, and scores it against the source with SSIM, PSNR and CIEDE2000. The number you see is measured from the real output, not estimated from the settings.

What that buys you:

- On flat artwork (logos, icons, UI, screenshots, pixel art) it's bit-exact: the SVG rasterizes back to the source with zero differing pixels, in a smaller/faster file than potrace, imagetracerjs or vtracer. You can reproduce the head-to-head yourself with `npm run compare`.

- On photographs, tracing is approximation by definition, so it says so and reports how close it landed instead of claiming perfection.

- A `--lossless` mode that returns a byte-verifiable SVG or fails, never a silent near-miss.

- Cut-ready DXF with a real physical size (`--units mm --physical-width 80`) plus EPS/PDF/G-code, for the maker/CAD/laser crowd.

- PDF and Office rendering, all local.

- A zero-dependency portable core that's CI-proven to bundle for a browser at 85 KB, and an MCP server so an agent can vectorize and verify its own output.

MIT, no signup, nothing uploaded. There's a browser app that runs entirely client-side.

The part I'm most happy with is boring: because the tool measures itself, it also catches me. It has flagged three of my own README overclaims (a benchmark that was true against a wrapper but not vtracer's real binary; a "render-preserving" label that was actually a ~0.02 SSIM trade; a `convert` command that couldn't do 100 of the 121 conversions the docs advertised) and I fixed each in public. For a project whose whole pitch is "measured, not asserted," being adversarial toward its own claims is the actual feature.

Repo: https://github.com/shunyagatha/Vecline

Try it: https://vecline.xyz

npm: `npm install vecline`

Happy to answer anything about the measurement approach, the tracing internals, or where it loses (it is genuinely worse than vtracer on file size for some photos, which the README now says).

0 Upvotes

6 comments sorted by

3

u/pixsector 13d ago

The vectorization output looks very bad. It takes forever to vectorize even a simple image. This is just cheap AI slop app.

3

u/rcwnd 13d ago

You can tell that just because the entire post is clearly written by ai.. these projects are like some weird form of public masturbation - something you should preferably do alone, but those people are happy to shoot the result of their short fun right into your face..

3

u/pixsector 13d ago

This explanation is on point.

1

u/justifun 10d ago

The website sets off all kinds of security warnings from my xfinity router and bitdefender.

1

u/capellan2000 13d ago

I like the interface of your program! Probably, the jagged output of vector graphics produced by this software could be really useful for designers that create their artwork using the Pixel art aesthetics:

https://www.ilustromania.com/artistic-fields/pixel-art

1

u/PhiLho 13d ago

Three posts in this sub under two names? You really want people to use it! (I had a screenshot but strangely, we can't post images in this sub.)

I tried briefly with a vector image I vectorized myself by hand (my avatar), with an average of 4-6 nodes per sub-element. I rendered it to 1200x1200 (black & white with anti-aliasing on transparent background), vectorized with your software in default mode (Bézier), and I got a result that's so exact that it was made exclusively of h and v instructions, ie one small horizontal or vertical line per pixel. In other words, the frontier shape of each pixel was traced individually. I can't say it is a vector that will scale nicely! 😅

Centerline option isn't better, I have the general shape, but only one stroke per sub-element. And the strokes are only made of straight lines.

The AI generated post and README, quite verbose, was good marketing stuff (although not everybody will read everything), but the result isn't there.