The cleaned versions below come from a separate analysis and reconstruction experiment in the repository. This does not mean the current DrowPack web tool automatically reduces every upload from 60,114 to 28 paths or guarantees the same visual result. We publish it as a case study of auto-tracing structure and limitations.
The problem: it was SVG, but the outline still wobbled when enlarged
The analyzed artwork_vector.svg contained no <image> elements holding PNG, JPEG, or WebP data. It also had no filters, masks, or clipping paths. In other words, it was not a raster image placed inside SVG; it was an SVG made from actual path coordinates. Yet when enlarged, the outer circle, hair, and small decorations showed bumps and fragments that appeared to follow a pixel staircase.
The cause was not a “fake SVG,” but geometry derived from a raster. The tracer interpreted intermediate antialiasing colors along the edge as separate regions, then recorded pixel boundaries as dense line and curve coordinates. Once converted to vector, rough coordinates remain rough, and enlarging them makes the shape more visibly uneven.
Values counted directly from the source
Of the 60,114 paths, 53,039 were tiny tracing fragments. Among those, 20,118 were small dark paths that could be treated as dark edge or noise fragments. There were 28 color bands, but a very large number of small fragments were distributed inside each band. The 523,692 half-pixel coordinates also match the signature of densely following the source pixel grid.
| File | Size | Path elements | Embedded raster | Meaning |
|---|---|---|---|---|
artwork_vector.svg | 10.63MB | 60,114 | 0 | Original auto-traced file |
clean_redraw.svg | 1.26MB | 28 | 0 | Automatic cleanup retaining more detail |
clean_web.svg | 666.5KB | 28 | 0 | Strong simplification for web display |
clean_flat.svg | 437.9KB | 14 | 0 | Fewer colors and less fine detail |
Before-and-after renders
The left image is a reference render of the original auto-traced file. The right image is the clean_redraw.svg render from the separate cleanup pipeline. The cleanup combines large color fields and outlines and removes tiny fragments, but it is not a lossless result that preserves every detail identically.

Rich visual information remains, but the SVG structure contains a large number of tiny edge fragments and stair-stepped coordinates.

The large color fields are simpler, but some small texture and curves in the hair, clothing, and border have changed.
At a small overall size, both can look similar. Enlarge the circular border, blue highlights in the hair, dress folds, and small lines on the book to evaluate both “noise reduction” and “loss of intended detail.”
What the automatic cleanup experiment did
- Rendered the source SVG at twice the resolution. Instead of simplifying the existing paths directly, this established a new visual reference.
- Applied downsampling and a light blur. This prepared the image by reducing pixel-level stairs and extremely small color fragments.
- Quantized to a limited palette based on the source. This prevented similar intermediate colors from splitting endlessly.
- Applied a majority filter and removed small connected components. Isolated dots, halos, and tiny edge fragments were merged or removed.
- Replaced the border-connected white background with a clean rectangle. The process attempted to distinguish internal white highlights from the outer background.
- Retraced the contours of the color regions. Coordinates were simplified and converted into smooth cubic Bezier paths.
The cleaned file is also a path-based SVG with no embedded PNG. However, it rebuilds color regions from rendered visual information instead of preserving every point in the original paths, so small details may be merged or altered.
What improved and what was lost
| Observation | Potential improvement | Associated risk |
|---|---|---|
| DOM/path complexity | 60,114 elements reduced to 28 compound paths | Multiple loops in one path can still be difficult to edit |
| File size | 10.63MB reduced to 1.26MB or 666.5KB | Reducing more detail and colors increases the difference from the source |
| Outline noise | Fewer tiny dots and stair-step fragments | Fine eyelashes and highlights can weaken too |
| Background | Cleaner border-connected white region | A wrong decision between internal white and background can create holes |
| Curves | Contour simplification and Bezier fitting | The process cannot infer the exact curve intended by the artist |
Practical conclusions from this case
- An SVG does not automatically become a clean vector merely because it contains no raster image
- A large path count can mean more information or more noise; it is not a quality score
- Lossless structural optimization may reduce file size without correcting rough coordinates
- Automatic smoothing can soften an outline while changing small forms and the artist's intent
- Web display, editing, and professional delivery need different acceptance criteria
- When a precise professional vector is required, a high-resolution layered source or manual Bezier reconstruction is the most reliable route
For web display alone, a strongly cleaned result such as clean_web.svg can be practical. For editing color fields, the more detailed cleaned version may be better, but it remains automatically reconstructed geometry. Trademarks, large-format printing, and precision cutting require manual review.
