Vecto logo

Vecto

Free, open-source bitmap-to-vector tracing app that converts PNG/JPG images into clean, editable SVG based on a planar partition model.

View Repository on GitHub

Vecto application screenshot, showing a side-by-side comparison of a bitmap image and its traced vector counterpart, with a dark UI

Vecto features a live side-by-side comparison with synced zoom and pan.

Why Vecto instead of other vectorizers?

Vecto is built specifically around the idea of shared-boundary planar tracing. Every boundary between two shapes is fitted once and shared by both sides, ensuring the output physically cannot contain hairline gaps or overlaps.

Geometric Intelligence

Straight edges become true straight lines; circles and round caps become mathematically exact arcs via circular arc or least-squares Bezier fits—not wobbly approximations.

Sub-Pixel Precision

Vecto reads anti-aliasing to place boundaries at exact sub-pixel positions instead of snapping to the pixel grid.

C# .NET 8 Performance

Built with C# on .NET 8.0 with a zero-dependency, deterministic engine. High-speed tracing: a 250px logo processes in ~60ms; a 4K photo posterizes in ~4.5s.

Deterministic & Tested

Byte-identical SVG output for identical inputs. Includes 14 geometric-invariant tests verifying area preservation and circle accuracy.

Dual Interface

A native Windows WPF desktop application for interactive use and a cross-platform CLI tool for Windows, Linux, and macOS (coming soon).

Headless CLI + Benchmarks

Includes a powerful headless CLI for automated, batch tracing and objective quality measurement benchmarks.

Quick Start

Get Vecto running locally to trace images from your terminal or desktop.

Build From Source

Requires Windows 10/11 and the free .NET 8 SDK:

git clone https://github.com/DanielMevit/Vecto.git
cd Vecto
dotnet build -c Release

After the build, binaries will be located at:

Install and Use

Grab the latest from the Releases page:

CLI Usage Examples

# Vectorize an image
vecto trace logo.png -o logo.svg --stats

# Tracing style and color control
vecto trace photo.jpg --style photo --colors 24

# Quality benchmark vs ground truth
vecto bench original.svg --scale 2

Development and Tuning Roadmap

While the core engine is robust, Vecto has a clear tuning backlog to close the gap with high-end commercial tracers.

Frequently Asked Questions

Common questions from developers and users about Vecto.

What problem does Vecto solve?

Vecto solves the problem of hairline gaps and overlaps that plague most open-source vectorizers. Its shared-boundary planar partition model makes it ideal for clean, deterministic logo conversion.

Is Vecto completely local?

Yes. The engine (Vecto.Core) runs entirely on your local machine and has zero external dependencies. Your images are never sent to third-party APIs.

Does Vecto support full color?

Yes. Vecto performs a color segmentation with palette inference (weighted k-means++ in Oklab) that allows it to trace and fit every colored shape as a true planar region.

Can I contribute to Vecto?

Absolutely. The repository is designed to be agent and human-friendly. Please start at AGENTS.md or docs/ai/START_HERE.md. The build must stay at 0 warnings and pass the vecto bench verification.