Inputs and sources
The React atom mark is the unmodified SVG from the official React repository, pinned to a specific revision. The other five originals are the exact Devicon files already recorded in Vectali’s development corpus. The Chrome file is historical artwork, not a claim about current brand guidelines.
- React: Official React repository · original SVG · license text
- GitHub: Devicon source snapshot · original SVG · license text
- Python: Devicon source snapshot · original SVG · license text
- Visual Studio Code: Devicon source snapshot · original SVG · license text
- Chrome: Devicon source snapshot · original SVG · license text
- Windows 11: Devicon source snapshot · original SVG · license text
The logos identify the artwork being tested. Their trademarks belong to their respective owners; inclusion does not imply endorsement or affiliation. Source hashes are in the downloadable manifest.
Each original is rendered into a 128 × 128 transparent PNG with its proportions preserved and centered on the canvas. No redraw, sharpening, blur, background removal or JPEG compression is applied. Anti-aliasing is part of rasterization.
Rasterizer: Chromium 156.0.8078.4; canvas drawImage; aspect ratio preserved and centered on transparency. The PNG, unmodified original and raw output are all downloadable. The original SVG is never supplied to the vectorizer.
Engine and settings
This run uses the updated browser WebAssembly engine downloaded from vectali.com at capture time. The exact deployed binary and JavaScript binding hashes are recorded. It includes the released palette, compact-output, gradient and small-detail corrections.
Only the PNG bytes are passed to vectorize(bytes, 0). Zero selects automatic colors. Every logo receives the same setting; there is no per-logo palette tuning. The downloaded browser engine executes in Node.js v25.9.0 for this capture. This measures conversion outputs, not account access, export accounting, API service reliability or hosted latency.
WASM asset ID: 0940d376513aef7c
WASM SHA-256: 53ed2076e6aa5d5d1d76b216d3c8d7a3dfbe255e8117662ed7a9ecca0f010c83
Source release: 9226c9a658820285baf10f0963838dc05c868656
Captured: 2026-10-17T18:29:18.719Z
The raw returned SVG is saved byte-for-byte. There is no manual correction or additional optimization after conversion. The engine’s own compact serializer is part of the deployed converter. All attempted cases remain in the manifest, including any conversion errors.
ImageTracer comparison
Each of the same six PNG files is also decoded to RGBA pixels with Chromium and passed to imagedataToSVG in ImageTracerJS 1.2.6. Source and input hashes are pinned; neither engine receives the original vector artwork. All six cases remain visible.
We run two unmodified upstream tracing presets on every input: Default (16 palette colors, line/curve thresholds 1/1, omit paths below 8 edge nodes, one-decimal coordinates) and Detailed (64 colors, thresholds 0.5/0.5, no path omission, two-decimal coordinates). Both use deterministic color sampling and the upstream one-pixel stroke. The only display option changed is viewbox=true, which supplies scalable SVG viewport metadata without changing tracing coordinates. See the upstream option definitions and full resolved options in each manifest.
Raw returned SVGs are saved without editing, cleanup or an additional optimizer. Each preset is executed twice per input; every repeated output matched byte-for-byte. Results are rendered separately at 512 × 512 on the same square transparent canvas and measured against the same original renders, using the same metric implementation. No crop, alignment or color adjustment is applied. Browser: Chromium 156.0.8078.4; transparent square canvas; same PNG pixels and evaluation size as Vectali.
Default captured: 2026-10-17T18:29:36.803Z
Detailed captured: 2026-10-17T18:29:38.073Z
ImageTracer source SHA-256: 7d777599650c15aa8c1f0ab98d1158749ed8d8b97b417b83e5c69ea246382f40
Default manifest · Detailed manifest · Hash-linked visual inspection · ImageTracer Unlicense
This compares these configurations, not the best possible tuned ImageTracer output. No per-logo parameters or hand-picked subset is used. Vectali now retains regional gradients and the small GitHub marks in these examples. Python’s soft shadow still disappears, while ImageTracer retains a banded approximation of it. There is no universal winner or speed claim.
Reading the measurements
The original SVG and raw traced SVG are rendered separately on matching 512 × 512 canvases using the same Chromium renderer. Measurements compare the trace against the known original, not against the already degraded PNG. No shifting, resizing or alignment adjustment is performed to improve the scores.
- Shape overlap ↑
- Intersection over union (IoU) of foreground masks at alpha ≥128. Higher is closer; 100% means the masks match on this grid. It does not mean “100% quality,” identical shading, or exact geometry at every scale.
- Edge error, p95 ↓
- The 95th percentile of symmetric nearest-outline distances, including interior outlines. Distances are converted back to 128-pixel input units. Lower is closer; 0 means no measured edge displacement on the evaluation grid. A missing outline is reported as unmeasurable.
- Color error ↓
- Mean CIEDE2000 (ΔE00) over the union of visible reference/output pixels, composited separately on white and dark backgrounds. Lower is closer; 0 means no measured color difference. Large background-only areas cannot inflate the score.
- Small details
- The manifest also reports foreground components and enclosed holes matched one-to-one at IoU ≥0.5. Regions below four evaluation pixels are excluded. An unmatched region can be missing, merged or materially changed; equal counts alone do not establish a match. These flags supplement visual inspection.
- File size and paths
- Bytes are UTF-8 file sizes before HTTP compression. Paths count
<path>elements, which can contain multiple subpaths. These are structural costs, with no universal “higher is better” rule.
The metric implementation is shared with the internal fidelity suite. Definitions follow the IoU documentation and image measurement documentation. The full manifest includes color percentiles, alpha error, per-ink checks where annotated, and component/hole matching.
There is no combined quality score. A close silhouette can coexist with incorrect shading. Small lost marks can also matter more to a brand than their pixel area suggests.
Scope and visible flaws
These six selected logos cover simple geometry, thin rings, small details, multiple colors and shaded artwork at one raster size. Five were already used in engine development; this is not an independent or unseen test set. No human blind-review votes have been collected.
Assistant visual inspection is recorded beside each unedited result and tied to its exact output hash. It identifies retained features and flaws, including retained GitHub tail details and Chrome shading, Python’s missing shadow, and approximate VS Code fold shading. Successful conversion is not the same as faithful reconstruction.
This run does not establish typical customer quality, recovery of lost detail, behavior at other sizes, JPEG or photographic quality, speed, availability, or general superiority over another engine. The ImageTracer comparison covers its Default and Detailed configurations at this size. The wider internal regression suite tests other cases separately. New engine builds may produce different outputs; this page stays a dated snapshot.
Inspect or reproduce
- Download an original SVG, its input PNG and its actual output from the logo bench. Compare at normal size and enlarged, on the same background.
- Use the manifest to check source, input, output and engine hashes. The 512-pixel reference/output renders are also listed there.
- To inspect today’s converter, upload the provided PNG to the landing preview, which uses automatic mode. Previewing does not spend an export. The dashboard’s explicit color controls are a different configuration.
- For an exact rerun, use the recorded deployed WASM binary and binding URLs, verify their hashes, and pass the provided PNG bytes with
colors=0. A newer deployed engine need not match this archived run. - To rerun ImageTracer, use its pinned source and resolved options from the comparator manifest. Decode the exact PNG with Chromium canvas, then call
imagedataToSVG. The repository’sscripts/compare-imagetracer.mjs defaultandscripts/compare-imagetracer.mjs detailedpreserve the inputs and raw SVGs. Run the shared measurement script against each comparator manifest.
The earlier Aster, Orbit, Summit and Forma files remain archived; some of those geometric drawings still illustrate the SVG guides. Their original eight-color illustration manifest remains available. Those files are not part of this real-logo benchmark; the transparency guide now uses the real React conversion.