SVG stroke to path online

Turn supported line and Bézier strokes into filled outlines. Compare the result, then download it. Conversion runs in your browser; use the offline workflow below for confidential artwork.

Works with untransformed paths, lines, polygons and unrounded rectangles with solid colours. No transforms, arcs, smooth-cubic S commands, circles, rounded rectangles or dashes. Use Inkscape for other artwork.

Loading the local outlining engine…

Limit: 256 KB, 500 elements. This tool does not trace PNG or JPG images.

What the visual check proves

We render the original and output in your browser, up to 800 pixels on the longest edge. A pixel differs when its premultiplied colour or alpha changes by more than 16 / 255. Download is withheld if 2% or more of ink pixels differ, the preview is blank, or the check cannot finish. This does not prove topology or physical cutting accuracy. Ink pixels are the union of pixels with nonzero alpha in either image, including antialiased edges. The 800-pixel limit can hide small changes; inspect the downloaded geometry yourself. The 2% threshold is our screening rule, not an SVG standard or manufacturing tolerance. A passing result can still contain visible or fabrication-relevant defects.

Before you cut

A closed stroked shape can create outer and inner contours; an open stroke usually becomes one closed boundary. Shapes are not merged and cutting operations are not assigned. Check dimensions, overlaps and small features in your actual cutter software. This is not a cut-readiness certificate.

Original filled paths remain in the download. An open or zero-area filled source can therefore leave an extra contour, even when its fill is invisible. Inspect and remove unwanted source contours in your editor. Stroke-only paths marked fill="none" and line elements are replaced by their outlines. For a shape with both fill and stroke, the original fill path stays below a separate new stroke-outline path. They are not combined or unioned.

  1. Reopen the download in a vector editor. Select the outlines and confirm they are filled paths with closed contours.
  2. Compare the canvas dimensions and viewBox with your original. Zoom into caps, joins and narrow gaps.
  3. Import into your actual cutter software. Check imported size, overlapping contours and assigned cutting operations before a test cut.

Local conversion and privacy

SVG outlining and its visual comparison run in this browser and do not require uploading artwork. The page and outlining engine must load first. Once the engine is ready, you can disconnect and convert offline. This page does not start analytics scripts; site analytics already loaded on another page may remain active after navigation. The artwork area is masked in session recordings and previews use local blob URLs, but masking does not prove that every other script cannot access input during a connected session. We have not audited every previously loaded script. For confidential artwork, open this page directly, wait for Engine ready, then disconnect before selecting your file.

Supported input and explicit limits

Path commands M, L, H, V, C, Q, T and Z; line, polyline, polygon and unrounded rectangle elements. Solid fill and stroke, currentColor, inline paint styles, ordinary groups and opacity. Butt, round and square caps; miter, round and bevel joins.

Unsupported: all transforms, arcs, smooth-cubic S commands, circles, ellipses, rounded rectangles, dashes, zero-length subpaths, text, images, CSS stylesheets, clones, gradients, filters, masks, clips, markers, pathLength, non-scaling strokes and custom paint order. Unsupported inputs produce an error, not a partial download. Limits: 24 nesting levels, 50,000 path characters, 5,000 commands, 10-second timeout and 2 MB output. Limits are separate: even a file below 256 KB can exceed the element or command limit. The first exceeded limit stops conversion, with no partial download.

For those files, use Inkscape’s Path → Stroke to Path. Object to Path alone does not outline stroke width. Inspect your saved result before fabrication.

Measured fixtures, not a promise of exactness

We run PathKit WASM 1.0.0 at 16× scale for precision, then scale the outline back to your coordinates. The full fixture matrix includes Chromium, Firefox and WebKit results and failing arc/transform cases that this tool rejects. The runtime fixture results record 17 supported fixtures run in three engines (51 checks) and 29 rejection fixtures run in three engines (87 checks). These cover lines, caps, joins, curves, fills, currentColor and opacity across all three engines.

Our comparison uses the upstream oslllo-svg-fixer 6.0.1 library at trace resolution 600, not Iconly or 10015’s deployed sites. Simple black line controls worked in both libraries; other fixtures exposed edge differences, changed paint or empty library output. The JSON reports differing ink and alpha fractions, mean premultiplied error, bytes and path-command-letter counts. These are raster comparison metrics and a complexity proxy, not geometric error or semantic node counts.

Download the opaque curve input · Download its outlined output

References