Vecline: a free, MIT image-to-SVG toolkit that measures its own accuracy (SSIM/PSNR/CIEDE2000) instead of asserting it
▲ 19 r/3DPrintingTools+2 crossposts

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

u/Rajput118 — 5 days ago