{
  "source_triangles": 32269,
  "target_triangles": 6453,
  "model_results": [
    {
      "id": "tool_gltfpack",
      "title": "meshoptimizer / gltfpack 1.2",
      "source_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/gltfpack/gltfpack-80pct.glb",
      "status": "succeeded",
      "finding": "Hit the 6,453-triangle target exactly with permissive simplification and locked borders.",
      "metrics": {
        "mesh_objects": 1,
        "vertices": 4132,
        "polygons": 6453,
        "triangles": 6453,
        "materials": 1,
        "bbox_min": [
          -0.08329132199287415,
          -0.048964813351631165,
          -0.08684365451335907
        ],
        "bbox_max": [
          0.08329235017299652,
          0.048960089683532715,
          0.0868762880563736
        ],
        "dimensions": [
          0.16658367216587067,
          0.09792490303516388,
          0.17371994256973267
        ]
      },
      "achieved_reduction_percent": 80.00247915956491,
      "render": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_gltfpack.png",
        "bytes": 203154,
        "sha256": "086c3b462c73296666fe6cecdd4e06c7118d2dc39de98ebde6de5430cf8d5e82"
      },
      "fbx": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_gltfpack.fbx",
        "bytes": 180988,
        "sha256": "a92064396b142fa2d8a4b1386e5ec4aa8f0b349da8a40df240b968a43c396259"
      },
      "glb": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_gltfpack.glb",
        "bytes": 158792,
        "sha256": "247a19a90ac7f32a051a3e19eb5b5d80453f025413ceaf54f392d64bf3a03960"
      }
    },
    {
      "id": "tool_gltf_transform_direct",
      "title": "glTF Transform 4.4.2 \u2014 direct",
      "source_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/gltf-transform/direct-80pct.glb",
      "status": "failed_target",
      "finding": "Topology-limited direct simplification; triangle count barely changed.",
      "metrics": {
        "mesh_objects": 1,
        "vertices": 92856,
        "polygons": 32255,
        "triangles": 32255,
        "materials": 1,
        "bbox_min": [
          -0.08329695463180542,
          -0.048960089683532715,
          -0.08688550442457199
        ],
        "bbox_max": [
          0.08329695463180542,
          0.048960089683532715,
          0.08688550442457199
        ],
        "dimensions": [
          0.16659390926361084,
          0.09792017936706543,
          0.17377100884914398
        ]
      },
      "achieved_reduction_percent": 0.04338529238587796,
      "render": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_gltf_transform_direct.png",
        "bytes": 204091,
        "sha256": "03d63a24224a1409a7b1a8b28db959b2f2c0bbd625ce0c83d324e723418dc6c9"
      },
      "fbx": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_gltf_transform_direct.fbx",
        "bytes": 2393564,
        "sha256": "566f9f3da45249acd89ab28ecb8b3f23ccbff2df879a6eaa705bf45b33a4ef2c"
      },
      "glb": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_gltf_transform_direct.glb",
        "bytes": 3370500,
        "sha256": "e45c4b0ae9a7b889f4bd15fd524be4a9f454ba076dc6bed02e075e5192455f78"
      }
    },
    {
      "id": "tool_gltf_transform_welded",
      "title": "glTF Transform 4.4.2 \u2014 weld + simplify",
      "source_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/gltf-transform/welded-80pct.glb",
      "status": "failed_target",
      "finding": "The built-in weld removed some duplicate attributes but simplification remained topology-limited.",
      "metrics": {
        "mesh_objects": 1,
        "vertices": 90470,
        "polygons": 32249,
        "triangles": 32249,
        "materials": 1,
        "bbox_min": [
          -0.08329695463180542,
          -0.048960089683532715,
          -0.08688550442457199
        ],
        "bbox_max": [
          0.08329695463180542,
          0.048960089683532715,
          0.08688550442457199
        ],
        "dimensions": [
          0.16659390926361084,
          0.09792017936706543,
          0.17377100884914398
        ]
      },
      "achieved_reduction_percent": 0.06197898912269073,
      "render": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_gltf_transform_welded.png",
        "bytes": 204145,
        "sha256": "0dd6f761a37eaa17b6b964e67eeb011d53a1eab3203f58d2d193c32f9a2b8d07"
      },
      "fbx": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_gltf_transform_welded.fbx",
        "bytes": 2384684,
        "sha256": "69013c257a71668430a9e4fe6fb0a32b77bdaf4c580d33ee88888d1904aa851f"
      },
      "glb": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_gltf_transform_welded.glb",
        "bytes": 3309148,
        "sha256": "50932883ca377c6837f7edd5f5527f58fab5f13cd546c946a542ed257c7dc566"
      }
    },
    {
      "id": "tool_meshlib",
      "title": "MeshLib WASM 3.1.3-429",
      "source_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/meshlib/meshlib-80pct.obj",
      "status": "succeeded",
      "finding": "Hit 6,453 faces after allowing boundary-vertex movement; a boundary-locked first attempt removed nothing. Evaluation license only.",
      "metrics": {
        "mesh_objects": 1,
        "vertices": 17024,
        "polygons": 6453,
        "triangles": 6453,
        "materials": 0,
        "bbox_min": [
          -0.08329100161790848,
          -0.04896000772714615,
          -0.08688750118017197
        ],
        "bbox_max": [
          0.08329162001609802,
          0.04896000772714615,
          0.08688600361347198
        ],
        "dimensions": [
          0.1665826216340065,
          0.0979200154542923,
          0.17377350479364395
        ]
      },
      "achieved_reduction_percent": 80.00247915956491,
      "render": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_meshlib.png",
        "bytes": 206722,
        "sha256": "603c44683236f6e678a08fff4702bc854c22096e23bbc2d467111f23aeb923ac"
      },
      "fbx": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_meshlib.fbx",
        "bytes": 278444,
        "sha256": "149e1bba04daf71e3d645f32b47b4c7753b14b061b30131e7320ec2357e38e8c"
      },
      "glb": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_meshlib.glb",
        "bytes": 502256,
        "sha256": "1b1a213fc00bdd2a4f29dd6f0b6a465467dc436a78c238798ad8637c03a3bba8"
      }
    },
    {
      "id": "tool_instant_meshes",
      "title": "Instant Meshes",
      "source_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/instant-meshes/instant-meshes-6453.obj",
      "status": "succeeded_with_damage_risk",
      "finding": "Completed an all-quad field-aligned remesh, but logged many unfilled high-degree holes on the triangle-soup source.",
      "metrics": {
        "mesh_objects": 1,
        "vertices": 28906,
        "polygons": 21865,
        "triangles": 43730,
        "materials": 0,
        "bbox_min": [
          -0.08336339890956879,
          -0.04896200820803642,
          -0.08683530241250992
        ],
        "bbox_max": [
          0.08331769704818726,
          0.048905108124017715,
          0.08686880022287369
        ],
        "dimensions": [
          0.16668109595775604,
          0.09786711633205414,
          0.1737041026353836
        ]
      },
      "achieved_reduction_percent": -35.51705971675603,
      "render": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_instant_meshes.png",
        "bytes": 218976,
        "sha256": "b1a8b1e982e48f6e1793dd78f29b5804563eb234cfa1f80c74c9cf3662af33f8"
      },
      "fbx": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_instant_meshes.fbx",
        "bytes": 978076,
        "sha256": "7e3fe92ad5595326ef0a4dfb2854d9c7e6d94d71fd7c1b19901211f317d2ed25"
      },
      "glb": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_instant_meshes.glb",
        "bytes": 979664,
        "sha256": "56309b848d04070d262115c21e15ca446dbae3e07edf6fff58ce228e134a8ec3"
      }
    },
    {
      "id": "tool_autoremesher",
      "title": "AutoRemesher 1.0.0",
      "source_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/autoremesher/autoremesher-3200q.obj",
      "status": "missed_target",
      "finding": "Completed from the original OBJ but overshot the 3,200-quad request: 5,397 quads plus 1,720 non-quads.",
      "metrics": {
        "mesh_objects": 1,
        "vertices": 8351,
        "polygons": 6618,
        "triangles": 11700,
        "materials": 0,
        "bbox_min": [
          -0.08247529715299606,
          -0.048498306423425674,
          -0.08658900111913681
        ],
        "bbox_max": [
          0.08277639746665955,
          0.048840008676052094,
          0.08688479661941528
        ],
        "dimensions": [
          0.1652516946196556,
          0.09733831509947777,
          0.1734737977385521
        ]
      },
      "achieved_reduction_percent": 63.742291363227864,
      "render": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_autoremesher.png",
        "bytes": 214975,
        "sha256": "e6a7a38301e455b7ee66fdeb722d72a961c2185b030866ef653b88bc7043e8a7"
      },
      "fbx": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_autoremesher.fbx",
        "bytes": 282060,
        "sha256": "77f87801898bff722303b307b09d3e90c851cd10ba467cd169602476fe29c4f6"
      },
      "glb": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_autoremesher.glb",
        "bytes": 615708,
        "sha256": "268ed07da9827b7dae6b4e7e5438a1eba5db98d60a251dfc95eae966c64a456b"
      }
    },
    {
      "id": "tool_cgal",
      "title": "CGAL 6.x Surface Mesh Simplification",
      "source_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/cgal/cgal-20pct.glb",
      "status": "succeeded",
      "finding": "Custom edge-collapse runner reached 6,450 triangles after exact-position source welding.",
      "metrics": {
        "mesh_objects": 1,
        "vertices": 3223,
        "polygons": 6450,
        "triangles": 6450,
        "materials": 1,
        "bbox_min": [
          -0.08326449990272522,
          -0.0488358736038208,
          -0.08679378032684326
        ],
        "bbox_max": [
          0.08328312635421753,
          0.048948999494314194,
          0.08682087808847427
        ],
        "dimensions": [
          0.16654762625694275,
          0.097784873098135,
          0.17361465841531754
        ]
      },
      "achieved_reduction_percent": 80.0117760079333,
      "render": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_cgal.png",
        "bytes": 206325,
        "sha256": "da083b66dbaddbcd3f4fa8299c452b9d6c7a520edd92b59efaed603eb2f34933"
      },
      "fbx": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_cgal.fbx",
        "bytes": 206124,
        "sha256": "51ce03def3e29d701d8a74f31de51bc7f001d2fdf6a02a65c0e5f502f221d3c0"
      },
      "glb": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_cgal.glb",
        "bytes": 502020,
        "sha256": "169e563cfc697f0535092472b9698db753049f6106933108f580318bb6fc1cb6"
      }
    },
    {
      "id": "tool_assimp",
      "title": "Assimp 6.0",
      "source_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/assimp/assimp-roundtrip.glb",
      "status": "conversion_only",
      "finding": "Reliable FBX-to-GLB plumbing, but it preserved all 32,269 triangles and is not a reducer.",
      "metrics": {
        "mesh_objects": 1,
        "vertices": 94376,
        "polygons": 32269,
        "triangles": 32269,
        "materials": 1,
        "bbox_min": [
          -8.329695701599121,
          -4.8960113525390625,
          -8.688551902770996
        ],
        "bbox_max": [
          8.329695701599121,
          4.8960113525390625,
          8.688551902770996
        ],
        "dimensions": [
          16.659391403198242,
          9.792022705078125,
          17.377103805541992
        ]
      },
      "achieved_reduction_percent": 0.0,
      "render": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_assimp.png",
        "bytes": 204098,
        "sha256": "28196431dc701b7afa52bf2a55bd937f59f88812b9c47dc5acbe17ecb26e999c"
      },
      "fbx": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_assimp.fbx",
        "bytes": 2401116,
        "sha256": "b231a5e43796346531ae2bb0257d8f69af0f71f7c7f75fd820cd7e069f2693d8"
      },
      "glb": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_assimp.glb",
        "bytes": 3413812,
        "sha256": "3d0f77da2adcef014dd1e190fc772dd933652140ab0f7bbaba98e34307b2443f"
      }
    },
    {
      "id": "tool_mayo",
      "title": "Mayo 0.10.0 + OpenCascade",
      "source_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/mayo/mayo-roundtrip.glb",
      "status": "conversion_only",
      "finding": "Built from source on macOS and converted FBX to GLB, but the tessellated FBX offered no BREP retessellation or polygon reduction.",
      "metrics": {
        "mesh_objects": 1,
        "vertices": 94376,
        "polygons": 32269,
        "triangles": 32269,
        "materials": 1,
        "bbox_min": [
          -8.329695701599121,
          -4.896009922027588,
          -8.68855094909668
        ],
        "bbox_max": [
          8.329695701599121,
          4.896009922027588,
          8.68855094909668
        ],
        "dimensions": [
          16.659391403198242,
          9.792019844055176,
          17.37710189819336
        ]
      },
      "achieved_reduction_percent": 0.0,
      "render": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_mayo.png",
        "bytes": 204084,
        "sha256": "560099c5e43f01a140be227e6bd67b398b5164c04d63f6a0a52f514ee81effc3"
      },
      "fbx": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_mayo.fbx",
        "bytes": 2046140,
        "sha256": "92d87cd92008dd77abbf49f591d292d0aea8edc770e2eb85d7bbe273672fd520"
      },
      "glb": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tool-packages/tool_mayo.glb",
        "bytes": 2657260,
        "sha256": "d8bd8a67dc3a725ea983d044b690f6827513b945de96a2cbc2c91b898614c5a7"
      }
    }
  ],
  "blocked_results": [
    {
      "id": "tool_meshlab",
      "title": "MeshLab 2025.07",
      "status": "blocked",
      "finding": "GUI opened the model, but the current macOS package ships no meshlabserver or repeatable unattended filter runner.",
      "report_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/meshlab/result.txt",
      "report": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/meshlab/result.txt",
        "bytes": 703,
        "sha256": "d536f600f8c9441d710842b2ab11c712b49346edb4d5889edf2f2eaa25224570"
      }
    },
    {
      "id": "tool_simplygon",
      "title": "Simplygon 10.x",
      "status": "blocked",
      "finding": "No runnable macOS SDK/CLI or evaluation license was available.",
      "report_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/simplygon/result.txt",
      "report": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/simplygon/result.txt",
        "bytes": 560,
        "sha256": "093146f407f3dd2b94d98609e9894e19f754632eac03f0815b0c0597b6d654b6"
      }
    },
    {
      "id": "tool_instalod",
      "title": "InstaLOD 2026",
      "status": "blocked",
      "finding": "macOS is supported, but the SDK/CLI and machine authorization were absent.",
      "report_path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/instalod/result.txt",
      "report": {
        "path": "/Users/forgebot/tmp/pedal-tool-hypothesis-study/tools/instalod/result.txt",
        "bytes": 660,
        "sha256": "0ea9cd507b249f0994ba1b60559eafaffbc3e73bb0ad2abe5d88689fc4605680"
      }
    }
  ]
}