{
  "measured_on": "2026-10-21",
  "image_size_px": [
    1200,
    400
  ],
  "scored_at": "4x resolution; a traced edge within 1 px of the ink counts as on it",
  "metrics": {
    "paths": "<path> elements that draw something",
    "colours": "distinct fill colours in the SVG",
    "ink_traced_pct": "share of the real ink that the trace covers (Black & White only)",
    "extra_area_pct": "traced area more than 1 px from any ink, as a share of the ink's own area (Black & White only)"
  },
  "settings": [
    {
      "id": "sketch",
      "label": "Sketch preset (Black & White, Filter Speckle 4)",
      "color_mode": "bw",
      "filter_speckle": 4,
      "corner_threshold": 60,
      "path_precision": 8
    },
    {
      "id": "bw-speckle-16",
      "label": "Black & White, Filter Speckle 16",
      "color_mode": "bw",
      "filter_speckle": 16,
      "corner_threshold": 60,
      "path_precision": 8
    },
    {
      "id": "bw-speckle-40",
      "label": "Black & White, Filter Speckle 40",
      "color_mode": "bw",
      "filter_speckle": 40,
      "corner_threshold": 60,
      "path_precision": 8
    },
    {
      "id": "logo",
      "label": "Logo preset (Color, Filter Speckle 4)",
      "color_mode": "color",
      "filter_speckle": 4,
      "corner_threshold": 60,
      "path_precision": 8
    }
  ],
  "images": [
    {
      "file": "clean-scan.png",
      "label": "Clean scan",
      "note": "black ink on white",
      "input_bytes": 46108,
      "results": {
        "sketch": {
          "svg": "clean-scan--sketch.svg",
          "paths": 3,
          "nodes": 339,
          "bytes": 22337,
          "colours": 1,
          "ink_traced_pct": 98.3,
          "extra_area_pct": 0.2
        },
        "bw-speckle-16": {
          "svg": "clean-scan--bw-speckle-16.svg",
          "paths": 2,
          "nodes": 333,
          "bytes": 22104,
          "colours": 1,
          "ink_traced_pct": 97.9,
          "extra_area_pct": 0.2
        },
        "bw-speckle-40": {
          "svg": "clean-scan--bw-speckle-40.svg",
          "paths": 2,
          "nodes": 333,
          "bytes": 22104,
          "colours": 1,
          "ink_traced_pct": 97.9,
          "extra_area_pct": 0.2
        },
        "logo": {
          "svg": "clean-scan--logo.svg",
          "paths": 29,
          "nodes": 523,
          "bytes": 33252,
          "colours": 24,
          "ink_traced_pct": null,
          "extra_area_pct": null
        }
      }
    },
    {
      "file": "phone-photo.jpg",
      "label": "Phone photo with a shadow",
      "note": "blue-black ink on warm paper; a soft shadow dims the right end by 25%",
      "input_bytes": 46527,
      "results": {
        "sketch": {
          "svg": "phone-photo--sketch.svg",
          "paths": 4,
          "nodes": 683,
          "bytes": 29307,
          "colours": 1,
          "ink_traced_pct": 100.0,
          "extra_area_pct": 764.2
        },
        "bw-speckle-16": {
          "svg": "phone-photo--bw-speckle-16.svg",
          "paths": 1,
          "nodes": 666,
          "bytes": 28671,
          "colours": 1,
          "ink_traced_pct": 99.6,
          "extra_area_pct": 764.0
        },
        "bw-speckle-40": {
          "svg": "phone-photo--bw-speckle-40.svg",
          "paths": 1,
          "nodes": 666,
          "bytes": 28671,
          "colours": 1,
          "ink_traced_pct": 99.6,
          "extra_area_pct": 764.0
        },
        "logo": {
          "svg": null,
          "paths": 473,
          "nodes": 4946,
          "bytes": 221261,
          "colours": 450,
          "ink_traced_pct": null,
          "extra_area_pct": null
        }
      }
    },
    {
      "file": "ruled-paper.jpg",
      "label": "Ruled notebook paper",
      "note": "blue ballpoint over light-blue lines and a red margin line",
      "input_bytes": 70111,
      "results": {
        "sketch": {
          "svg": "ruled-paper--sketch.svg",
          "paths": 4,
          "nodes": 375,
          "bytes": 24066,
          "colours": 1,
          "ink_traced_pct": 100.0,
          "extra_area_pct": 6.4
        },
        "bw-speckle-16": {
          "svg": "ruled-paper--bw-speckle-16.svg",
          "paths": 3,
          "nodes": 369,
          "bytes": 23798,
          "colours": 1,
          "ink_traced_pct": 99.6,
          "extra_area_pct": 6.4
        },
        "bw-speckle-40": {
          "svg": "ruled-paper--bw-speckle-40.svg",
          "paths": 2,
          "nodes": 364,
          "bytes": 23655,
          "colours": 1,
          "ink_traced_pct": 99.6,
          "extra_area_pct": 0.6
        },
        "logo": {
          "svg": null,
          "paths": 517,
          "nodes": 5888,
          "bytes": 277151,
          "colours": 485,
          "ink_traced_pct": null,
          "extra_area_pct": null
        }
      }
    },
    {
      "file": "pencil.png",
      "label": "Pencil",
      "note": "light graphite on paper with grain",
      "input_bytes": 338948,
      "results": {
        "sketch": {
          "svg": "pencil--sketch.svg",
          "paths": 3,
          "nodes": 334,
          "bytes": 22156,
          "colours": 1,
          "ink_traced_pct": 99.8,
          "extra_area_pct": 1.4
        },
        "bw-speckle-16": {
          "svg": "pencil--bw-speckle-16.svg",
          "paths": 2,
          "nodes": 328,
          "bytes": 21923,
          "colours": 1,
          "ink_traced_pct": 99.4,
          "extra_area_pct": 1.4
        },
        "bw-speckle-40": {
          "svg": "pencil--bw-speckle-40.svg",
          "paths": 2,
          "nodes": 328,
          "bytes": 21923,
          "colours": 1,
          "ink_traced_pct": 99.4,
          "extra_area_pct": 1.4
        },
        "logo": {
          "svg": "pencil--logo.svg",
          "paths": 55,
          "nodes": 750,
          "bytes": 41109,
          "colours": 34,
          "ink_traced_pct": null,
          "extra_area_pct": null
        }
      }
    },
    {
      "file": "small-copy.png",
      "label": "Small copy",
      "note": "the clean scan at a third of the size, 400 × 133 px",
      "input_bytes": 12882,
      "results": {
        "sketch": {
          "svg": "small-copy--sketch.svg",
          "paths": 2,
          "nodes": 188,
          "bytes": 10575,
          "colours": 1,
          "ink_traced_pct": 97.7,
          "extra_area_pct": 20.2
        },
        "bw-speckle-16": {
          "svg": "small-copy--bw-speckle-16.svg",
          "paths": 2,
          "nodes": 188,
          "bytes": 10575,
          "colours": 1,
          "ink_traced_pct": 97.7,
          "extra_area_pct": 20.2
        },
        "bw-speckle-40": {
          "svg": "small-copy--bw-speckle-40.svg",
          "paths": 0,
          "nodes": 0,
          "bytes": 126,
          "colours": 0,
          "ink_traced_pct": 0.0,
          "extra_area_pct": 0.0
        },
        "logo": {
          "svg": "small-copy--logo.svg",
          "paths": 31,
          "nodes": 508,
          "bytes": 27631,
          "colours": 30,
          "ink_traced_pct": null,
          "extra_area_pct": null
        }
      }
    }
  ],
  "shadow_sweep": [
    {
      "shadow_pct": 0,
      "paths": 3,
      "bytes": 23195,
      "ink_traced_pct": 100.0,
      "extra_area_pct": 1.4
    },
    {
      "shadow_pct": 10,
      "paths": 3,
      "bytes": 21381,
      "ink_traced_pct": 100.0,
      "extra_area_pct": 1.6
    },
    {
      "shadow_pct": 20,
      "paths": 3,
      "bytes": 22560,
      "ink_traced_pct": 100.0,
      "extra_area_pct": 1.4
    },
    {
      "shadow_pct": 25,
      "paths": 4,
      "bytes": 29307,
      "ink_traced_pct": 100.0,
      "extra_area_pct": 764.2
    },
    {
      "shadow_pct": 30,
      "paths": 3,
      "bytes": 27503,
      "ink_traced_pct": 100.0,
      "extra_area_pct": 786.5
    },
    {
      "shadow_pct": 40,
      "paths": 2,
      "bytes": 24796,
      "ink_traced_pct": 98.1,
      "extra_area_pct": 815.1
    }
  ],
  "speckle_squares": [
    {
      "setting": "sketch",
      "filter_speckle": 4,
      "kept_sides_px": [
        4,
        15,
        16,
        39,
        40
      ]
    },
    {
      "setting": "bw-speckle-16",
      "filter_speckle": 16,
      "kept_sides_px": [
        16,
        39,
        40
      ]
    },
    {
      "setting": "bw-speckle-40",
      "filter_speckle": 40,
      "kept_sides_px": [
        40
      ]
    }
  ]
}
