{
  "generated_at": "2026-09-28T17:45:54+0800",
  "generator": "/Users/szj/Downloads/tmp/any2svg/research/loop06/measurements/measure.py",
  "repo": "/Users/szj/Downloads/tmp/any2svg",
  "offline": true,
  "tool_versions": {
    "python": "3.13.5 (/Users/szj/Downloads/tmp/any2svg/research/loop06/measurements/venv313/bin/python)",
    "vtracer": "0.6.15",
    "pillow": "12.3.0",
    "potrace": "potrace 1.16. Copyright (C) 2001-2019 Peter Selinger.",
    "inkscape": "Inkscape 1.4.4 (dcaf3e7, 2026-05-05)",
    "homebrew": "Homebrew 7.0.7-9-gcc9ff03",
    "platform": "macOS-27.0-arm64-arm-64bit-Mach-O",
    "machine": "arm64",
    "cpu_count": 10
  },
  "runs": [
    {
      "input": {
        "path": "/Users/szj/Downloads/tmp/any2svg/public/apple-touch-icon.png",
        "bytes": 6101,
        "sha256": "12eafc7f7e0f4cb48d17704fa40f663e4db97e18790b9bed35a1699c363bf768",
        "width": 180,
        "height": 180,
        "mode": "RGB",
        "distinct_rgb_colours": 205,
        "quantised_colours_256_thumb": 16,
        "early_exit_over_48": false,
        "engine_mode": "polygon"
      },
      "measurements": [
        {
          "tool": "any2svg engine (python/any2svg_engine.py, vtracer)",
          "command": "/Users/szj/Downloads/tmp/any2svg/research/loop06/measurements/venv313/bin/python /Users/szj/Downloads/tmp/any2svg/python/any2svg_engine.py --input /Users/szj/Downloads/tmp/any2svg/public/apple-touch-icon.png --outdir /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/engine/apple-touch-icon --preset balanced --mode auto",
          "wall_seconds": 2.474,
          "exit_code": 0,
          "stderr_tail": "auto mode -> polygon\napple-touch-icon-balanced.svg        70 KB  paths=  326  colours=  148  canvas=1100x1100",
          "engine_mode": "polygon",
          "engine_canvas": {
            "w": 1100,
            "h": 1100,
            "paths": 326
          },
          "output": {
            "bytes": 71502,
            "sha256": "66faca358f6fd2ab94435ce37036e1c4d6a24a7587762184deaa3e818612bbec",
            "m_commands": 329,
            "path_elements": 326,
            "image_elements": 0,
            "bytes_without_embedded_image": 71502,
            "distinct_fill_or_stroke_values": 148,
            "distinct_colors": 148,
            "fill_values": [
              "#000000",
              "#010101",
              "#030303",
              "#040404",
              "#050505",
              "#060606",
              "#070707",
              "#080808",
              "#090909",
              "#0A0A0A",
              "#0B0B0B",
              "#0C0C0C",
              "#0D0D0D",
              "#0E0E0E",
              "#0F0F0F",
              "#101010",
              "#111111",
              "#131313",
              "#141414",
              "#151515"
            ],
            "contains_image_element": false
          },
          "output_path_ephemeral": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/engine/apple-touch-icon/apple-touch-icon-balanced.svg"
        },
        {
          "tool": "potrace (1-bit threshold trace)",
          "command": "/opt/homebrew/bin/potrace -s -o /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/potrace/apple-touch-icon.svg /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/potrace/apple-touch-icon.pbm",
          "prep_seconds_pillow_threshold": 0.008,
          "wall_seconds": 0.021,
          "wall_seconds_total_prep_plus_trace": 0.029,
          "exit_code": 0,
          "stderr_tail": "",
          "note": "potrace traces monochrome only, so the input is converted to 1-bit at threshold 128 first; output is 1 colour layer",
          "output": {
            "bytes": 1322,
            "sha256": "69756cb3c066595e712901e83e2980908230c7b1d9649402cb97f43136b6d883",
            "m_commands": 2,
            "path_elements": 1,
            "image_elements": 0,
            "bytes_without_embedded_image": 1322,
            "distinct_fill_or_stroke_values": 2,
            "distinct_colors": 1,
            "fill_values": [
              "#000000"
            ],
            "contains_image_element": false
          },
          "output_path_ephemeral": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/potrace/apple-touch-icon.svg"
        },
        {
          "tool": "inkscape Trace Bitmap (object-trace action)",
          "command": "/opt/homebrew/bin/inkscape --actions=select-all;object-trace:8,1,0,0,2,1,1;export-filename:/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/inkscape/apple-touch-icon.svg;export-do /Users/szj/Downloads/tmp/any2svg/public/apple-touch-icon.png",
          "wall_seconds": 5.276,
          "exit_code": 0,
          "stdout_tail": "Tracing... 100%",
          "stderr_tail": "Tracing done.",
          "note": "8 scans, smooth=1, stack=0, remove_background=0, speckles=2, smooth_corners=1, optimize=1; source bitmap is left in the document, so as-exported bytes include it",
          "output": {
            "bytes": 29689,
            "sha256": "708124e6aca04aeacd08a362d1b041bb02200c01be2faf1cc2419b8af9e97e4c",
            "m_commands": 79,
            "path_elements": 7,
            "image_elements": 1,
            "bytes_without_embedded_image": 20869,
            "distinct_fill_or_stroke_values": 7,
            "distinct_colors": 7,
            "fill_values": [
              "#070707",
              "#131313",
              "#2c2c2c",
              "#575757",
              "#8d8d8d",
              "#c8c8c8",
              "#fdfdfd"
            ],
            "contains_image_element": true
          },
          "output_path_ephemeral": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/inkscape/apple-touch-icon.svg"
        }
      ]
    },
    {
      "input": {
        "path": "/Users/szj/Downloads/tmp/any2svg/public/og-image.png",
        "bytes": 62665,
        "sha256": "bd699b52e5ff340bd1e23ac7886a99731e61bc7631be470e78febed2043c39c0",
        "width": 1200,
        "height": 630,
        "mode": "RGB",
        "distinct_rgb_colours": 257,
        "quantised_colours_256_thumb": 24,
        "early_exit_over_48": false,
        "engine_mode": "polygon"
      },
      "measurements": [
        {
          "tool": "any2svg engine (python/any2svg_engine.py, vtracer)",
          "command": "/Users/szj/Downloads/tmp/any2svg/research/loop06/measurements/venv313/bin/python /Users/szj/Downloads/tmp/any2svg/python/any2svg_engine.py --input /Users/szj/Downloads/tmp/any2svg/public/og-image.png --outdir /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/engine/og-image --preset balanced --mode auto",
          "wall_seconds": 0.473,
          "exit_code": 0,
          "stderr_tail": "auto mode -> polygon\nog-image-balanced.svg        21 KB  paths=  125  colours=   83  canvas=1100x578",
          "engine_mode": "polygon",
          "engine_canvas": {
            "w": 1100,
            "h": 578,
            "paths": 125
          },
          "output": {
            "bytes": 21388,
            "sha256": "59f10c6743ea83bf880031e752449f51d9d723f15f80eccd1e924ba9343fad39",
            "m_commands": 125,
            "path_elements": 125,
            "image_elements": 0,
            "bytes_without_embedded_image": 21388,
            "distinct_fill_or_stroke_values": 83,
            "distinct_colors": 83,
            "fill_values": [
              "#141414",
              "#151515",
              "#171717",
              "#1A1A1A",
              "#1B1B1B",
              "#1C1C1C",
              "#1D1D1D",
              "#1E1E1E",
              "#1F1F1F",
              "#202020",
              "#212121",
              "#222222",
              "#242424",
              "#252525",
              "#262626",
              "#2C2C2C",
              "#313131",
              "#373737",
              "#393939",
              "#3A3A3A"
            ],
            "contains_image_element": false
          },
          "output_path_ephemeral": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/engine/og-image/og-image-balanced.svg"
        },
        {
          "tool": "potrace (1-bit threshold trace)",
          "command": "/opt/homebrew/bin/potrace -s -o /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/potrace/og-image.svg /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/potrace/og-image.pbm",
          "prep_seconds_pillow_threshold": 0.012,
          "wall_seconds": 0.025,
          "wall_seconds_total_prep_plus_trace": 0.037,
          "exit_code": 0,
          "stderr_tail": "",
          "note": "potrace traces monochrome only, so the input is converted to 1-bit at threshold 128 first; output is 1 colour layer",
          "output": {
            "bytes": 21123,
            "sha256": "5a69221b08e572fee4df12106c7c926db186bcd83ebdd7937ce6922f14b1cc85",
            "m_commands": 112,
            "path_elements": 83,
            "image_elements": 0,
            "bytes_without_embedded_image": 21123,
            "distinct_fill_or_stroke_values": 2,
            "distinct_colors": 1,
            "fill_values": [
              "#000000"
            ],
            "contains_image_element": false
          },
          "output_path_ephemeral": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/potrace/og-image.svg"
        },
        {
          "tool": "inkscape Trace Bitmap (object-trace action)",
          "command": "/opt/homebrew/bin/inkscape --actions=select-all;object-trace:8,1,0,0,2,1,1;export-filename:/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/inkscape/og-image.svg;export-do /Users/szj/Downloads/tmp/any2svg/public/og-image.png",
          "wall_seconds": 2.794,
          "exit_code": 0,
          "stdout_tail": "Tracing... 3%\nTracing... 15%\nTracing... 41%\nTracing... 65%\nTracing... 83%\nTracing... 90%\nTracing... 93%\nTracing... 100%\nTracing... 100%",
          "stderr_tail": "Tracing done.",
          "note": "8 scans, smooth=1, stack=0, remove_background=0, speckles=2, smooth_corners=1, optimize=1; source bitmap is left in the document, so as-exported bytes include it",
          "output": {
            "bytes": 551569,
            "sha256": "0959de36886ffc33d10b5c4372168177463867b9369a2398c7393778da5fe8ec",
            "m_commands": 2567,
            "path_elements": 8,
            "image_elements": 1,
            "bytes_without_embedded_image": 462368,
            "distinct_fill_or_stroke_values": 8,
            "distinct_colors": 8,
            "fill_values": [
              "#131313",
              "#6d6d6d",
              "#6eb3a5",
              "#8d8d8d",
              "#adadad",
              "#cecece",
              "#f3f3f3",
              "#fdfdfd"
            ],
            "contains_image_element": true
          },
          "output_path_ephemeral": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/inkscape/og-image.svg"
        }
      ]
    },
    {
      "input": {
        "path": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/synthetic-flat.png",
        "bytes": 3523,
        "sha256": "74d27fa8b341b236550743301eaeea8b5d0f2455d472deca9a904fba49a13ea4",
        "width": 800,
        "height": 600,
        "mode": "RGB",
        "distinct_rgb_colours": 6,
        "quantised_colours_256_thumb": 49,
        "early_exit_over_48": true,
        "engine_mode": "spline"
      },
      "measurements": [
        {
          "tool": "any2svg engine (python/any2svg_engine.py, vtracer)",
          "command": "/Users/szj/Downloads/tmp/any2svg/research/loop06/measurements/venv313/bin/python /Users/szj/Downloads/tmp/any2svg/python/any2svg_engine.py --input /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/synthetic-flat.png --outdir /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/engine/synthetic-flat --preset balanced --mode auto",
          "wall_seconds": 0.59,
          "exit_code": 0,
          "stderr_tail": "auto mode -> spline\nsynthetic-flat-balanced.svg        23 KB  paths=    8  colours=    8  canvas=1100x825",
          "engine_mode": "spline",
          "engine_canvas": {
            "w": 1100,
            "h": 825,
            "paths": 8
          },
          "output": {
            "bytes": 23273,
            "sha256": "ba189254cfa0e305fbe612f5194c145d56842e6240f489cf9ec2406ac2c6f09f",
            "m_commands": 8,
            "path_elements": 8,
            "image_elements": 0,
            "bytes_without_embedded_image": 23273,
            "distinct_fill_or_stroke_values": 8,
            "distinct_colors": 8,
            "fill_values": [
              "#1D3BB4",
              "#1E1E1E",
              "#27965A",
              "#B9303E",
              "#C8283C",
              "#E9B02E",
              "#EFC728",
              "#FEFEFE"
            ],
            "contains_image_element": false
          },
          "output_path_ephemeral": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/engine/synthetic-flat/synthetic-flat-balanced.svg"
        },
        {
          "tool": "potrace (1-bit threshold trace)",
          "command": "/opt/homebrew/bin/potrace -s -o /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/potrace/synthetic-flat.svg /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/potrace/synthetic-flat.pbm",
          "prep_seconds_pillow_threshold": 0.012,
          "wall_seconds": 0.028,
          "wall_seconds_total_prep_plus_trace": 0.04,
          "exit_code": 0,
          "stderr_tail": "",
          "note": "potrace traces monochrome only, so the input is converted to 1-bit at threshold 128 first; output is 1 colour layer",
          "output": {
            "bytes": 771,
            "sha256": "1f2d81043ffe5f9b388126a39434341895fda90005f25ff9b521d1dc6e51a381",
            "m_commands": 1,
            "path_elements": 1,
            "image_elements": 0,
            "bytes_without_embedded_image": 771,
            "distinct_fill_or_stroke_values": 2,
            "distinct_colors": 1,
            "fill_values": [
              "#000000"
            ],
            "contains_image_element": false
          },
          "output_path_ephemeral": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/potrace/synthetic-flat.svg"
        },
        {
          "tool": "inkscape Trace Bitmap (object-trace action)",
          "command": "/opt/homebrew/bin/inkscape --actions=select-all;object-trace:8,1,0,0,2,1,1;export-filename:/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/inkscape/synthetic-flat.svg;export-do /var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/synthetic-flat.png",
          "wall_seconds": 2.818,
          "exit_code": 0,
          "stdout_tail": "Tracing... 3%\nTracing... 53%\nTracing... 87%\nTracing... 100%",
          "stderr_tail": "Tracing done.",
          "note": "8 scans, smooth=1, stack=0, remove_background=0, speckles=2, smooth_corners=1, optimize=1; source bitmap is left in the document, so as-exported bytes include it",
          "output": {
            "bytes": 6759,
            "sha256": "4fbd7288415ef2fa7b7bd789fa4ad63a4ca89c66c2a16a9d6b6de7f134ad6be8",
            "m_commands": 6,
            "path_elements": 4,
            "image_elements": 1,
            "bytes_without_embedded_image": 1605,
            "distinct_fill_or_stroke_values": 4,
            "distinct_colors": 4,
            "fill_values": [
              "#1d1d1d",
              "#1d3bb3",
              "#279559",
              "#c7273b"
            ],
            "contains_image_element": true
          },
          "output_path_ephemeral": "/var/folders/f2/ydyw701n3dq1gwl99fzv98200000gn/T/any2svg-bench-b7rlbi19/inkscape/synthetic-flat.svg"
        }
      ]
    }
  ]
}
