Releases: jparkerweb/vector-it
Releases Β· jparkerweb/vector-it
Release list
VectorIt v1.3.1
See CHANGELOG.md for release notes. Download the installer for your platform below to get started.
VectorIt v1.3.0
See CHANGELOG.md for release notes. Download the installer for your platform below to get started.
v1.2.0
What's New π
[1.2.0] - 2026-07-03
Added
- Peek at the original: hold O to flash the source image in place of the traced vectors for a quick fidelity check. Works for opened, dropped, and pasted raster images (inactive for SVG/blank sources).
- Fill all same color: the Fill tool gained an "All same color" toggle β clicking a path replaces its color on every path that shares it (fill and stroke), making global recolors one click. Fully undoable.
- Output palette panel: a floating palette (bottom-left of the canvas) lists every color in the result with its path count. Click a swatch to recolor that color everywhere, or pick another palette color to merge the two into one. Undoable like all canvas edits.
- Tool keyboard shortcuts: one-key tool switching β H Pan, V Select, B Draw, L Lines, U Shape, E Erase, F Fill, A Reshape β plus zoom keys (+/-, Ctrl+0 fit, Ctrl+1 100%) and a keyboard-shortcuts cheat sheet on ? (or the β¨ toolbar button) covering all tools, view, edit, and app shortcuts.
- PNG export with resolution multiplier: the export dropdown now includes PNG with a 1Γ/2Γ/4Γ scale selector β re-rasterize your cleaned-up vectors at up to 4Γ the source resolution (true supersampled rendering, works in single export and Quick Save).
- Drop files anytime: drag-and-drop now works with an image already loaded (a drop hint overlays the workspace), and dropping an
.svgopens it for direct editing just like Open does. - Settings persist across sessions: all fine-tune settings (mode, colors, thresholds, preset, Auto-Render, export format) are remembered between launches.
- Window title shows the loaded file name.
- Smart preset suggestion: on load, the image-type detector (Sobel + entropy analysis, previously unused by the UI) classifies the image and offers a matching preset in a dismissible chip β "Looks like a photo β Apply" / "Looks like pixel art β Apply".
- Crash guard: a top-level error boundary turns any unexpected interface error into a recoverable in-app screen (with the error text and a Recover button) instead of a white window.
- Auto threshold (Otsu): B&W and Centerline modes gained an β¨ Auto button that computes the statistically optimal threshold for the loaded image via Otsu's method on the same Rec. 601 luma the tracer uses β no more guessing on the 1β254 slider.
- Auto colors: the Colors slider gained an β¨ Auto button that picks the smallest palette explaining β₯92% of the image's color variance (backed by the previously-unwired palette-quality analyzer).
- Despeckle: one-click toolbar cleanup removes tiny closed shapes below a chosen size (2/3/5/8px) left over from tracing or editing β with a removed-count flash, fully undoable.
- Simplify All: one click adaptively reduces node counts across every path at once (each path gets an epsilon scaled to its size and node density) β ideal before plotter/laser/CNC export where nodes are cost. Shows the removed-node count; undoable; click again to go further.
- Copy as PNG: a πΌ PNG button next to Copy renders the vectors at 2Γ and places the image on the system clipboard β paste straight into chat, docs, or image editors.
- Shift constraints everywhere: hold Shift to snap rotation to 90Β° increments, lock drag-moves to horizontal/vertical, straighten the curves connected to a dragged Reshape anchor, snap a dragged Reshape control handle to 45Β° around its anchor, draw straight 45Β°-snapped lines with the Draw tool, and snap Lines-tool segments to 45Β° (the Shape tool's proportion lock already existed). All listed in the β¨ cheat sheet.
Changed
- Smaller SVG and EPS files: exported coordinates now use compact number formatting (up to 2 decimals with trailing zeros trimmed β max 0.005px deviation, visually identical); SVG additionally drops redundant separators before path commands. Typical exports shrink 25β60% depending on content, verified pixel-identical by the visual-regression suite.
- Snappier re-processing: vectorization now runs on a background thread and each new run cancels the in-flight one, so dragging sliders with Auto-Render on no longer queues stale full-pipeline work β only the newest settings are traced to completion.
- ~55% faster pipeline: color quantization β the pipeline hotspot β is now multi-threaded (rayon) in its three embarrassingly-parallel loops (Lab conversion, K-means assignment, K-means++ seeding). The 1024Γ1024 benchmark drops from 553 ms to 249 ms; output is bit-for-bit identical (the accumulation step stays serial to keep float summation deterministic, verified by the golden-SVG snapshot).
- ~18Γ faster bitmap export: the supersampled rasterizer now renders rows in parallel (paths still painted in z-order; every pixel written by exactly one thread, so output is byte-identical). A 4Γ PNG re-rasterization of a real-world image dropped from 70.4 s to 3.8 s.
- Removed the superseded wizard-era UI (wizard steps, segmentation tool panels, advanced/palette/viewer panels and their stores, ~1,900 lines of unmounted code) that was never reachable from the live single-screen UI;
appStorenow contains only live state. Slims the bundle and removes a whole class of "which code path is real?" confusion.
Fixed
- Draw tool strokes now keep their brush size: the Size slider previously only affected the live preview β the committed path was stored without a stroke width, so it rendered and exported as a filled centerline sliver. Drawn paths are now real stroked paths (stroke width = brush size, in image pixels). Draw and Erase also get independent sizes: Draw defaults to 4 px and maxes at 20, Erase keeps its 1β100 px range.
- Stroked paths (drawn strokes, shapes with outlines, centerline traces) are now clickable along their visible stroke for Select/Fill/Erase β hit-testing previously only registered their fill geometry.
- Fill tool now recolors centerline (open stroked) paths β previously it only set the invisible fill color, so clicks appeared to do nothing.
- Quick Save (Ctrl+S) silently did nothing when DXF was the last-used export format β the generic re-export call omitted DXF's required arguments and the failure was swallowed. Export dispatch is now centralized and format-aware.
- Drag-and-dropped images were vectorized through a leftover legacy code path with hardcoded default settings instead of the settings shown in the sidebar; file loading is now unified so Open, drop, and paste all use the same flow.
[1.1.0] - 2026-07-03
Added
- Tracing modes: new Mode selector with four options β Color, Grayscale, Black & White (binary), and Centerline. Grayscale collapses the image to tonal shades; Black & White produces two-tone outline tracing with a Threshold slider and Invert toggle (ideal for logos, text, and scanned line art).
- Centerline (skeleton) tracing: brand-new engine that traces a single open stroke down the middle of each line rather than a doubled outline. Pipeline: threshold β Zhang-Suen thinning β junction-aware skeleton traversal β Douglas-Peucker simplification β cubic-BΓ©zier fitting β stroked open paths. Purpose-built for line art, signatures, handwriting, technical/CAD drawings, and single-line plotter/laser/Cricut workflows. Adjustable stroke width.
- Layering control: choose Stacked (layered shapes with shared edges) or Cutout (non-overlapping) clustering for color mode, plus a Gradient Step slider to tune how aggressively similar shades merge into layers.
- Straighten edges (on by default): a new post-trace regularization pass makes geometric artwork trace faithfully β wobbly multi-segment edges merge into true straight lines (with a net-turn cap that provably never flattens curves), near-horizontal/vertical edges snap perfectly square, and pixel-rounding corner chamfers are sharpened to exact edge intersections. Toggleable in Fine-tune.
- Color-grouped SVG output: optional "Group by color" export merges same-color paths into per-color
<g>layers, producing dramatically smaller files and clean color separation for downstream editing. - Output statistics panel: live readout of path count, node (segment) count, unique colors, and open-stroke count for the current result.
- Per-color DXF layers: DXF export now places each color on its own named layer (
COLOR_RRGGBB) tinted with the nearest ACI color, so CAD/cutter software can separate colors. - Open-path export across formats: SVG, EPS, PDF, and bitmap exporters now render open, stroked centerline paths correctly (stroke-only, round caps/joins) instead of filling them.
- Two new presets: B&W / Line, Grayscale, and Sketch / Centerline.
- Lines tool (multi-click polygon): classic paint-style drawing β each click places a vertex with a live rubber-band preview, double-click or Enter closes the shape into a filled path, Escape cancels.
Changed
- Select and Reshape panels merged into the toolbar: path-selection actions (delete/duplicate/merge/z-order) and reshape node/path actions (delete node, simplify, straighten, scale) now appear as subpanels directly under the main canvas toolbar instead of separate floating panels on the right.
- Frontend vectorization config is now built from a single source of truth (
buildConfig) rather than four duplicated inline objects. - vtracer
splice_thresholdaligned to the upstream default (45Β°) for smoother spline joins.
[1.0.0] - 2026-06-18
Added
- Core vectorization pipeline: decode β quantize β segment β trace β simplify β corners β fit β optimize β export
- Input formats: PNG, JPG, BMP, GIF (first frame), TIFF
- Output formats: SVG, EPS, PDF, DXF (Spline & Line-only), Bitmap (PNG/BMP/JPEG)
- Color quantization: K-means++ in CIE Lab color space with configurable color count (2β256)
...