{
  "generated_at_utc": "2026-05-15T18:49:23+00:00",
  "experiment": "pact_transporter_semantic_axis_knn_v03_20260515",
  "portal": {
    "public_url": "http://106.14.105.96:28080/experiments/pact-transporter-semantic-axis-knn-v03-20260515/index.html"
  },
  "summary": {
    "sample_count": 11,
    "raw": {
      "strict_joint_f1": 0.0303030303030303,
      "strict_joint_precision": 0.0303030303030303,
      "strict_joint_recall": 0.0303030303030303,
      "strict_joint_count_abs_error": 10.636363636363637,
      "strict_axis_mean_error_deg": 81.87187910195256,
      "strict_tree_valid": 1.0
    },
    "best_old": {
      "strict_joint_f1": 0.09725266244790863,
      "strict_joint_precision": 0.20454545454545456,
      "strict_joint_recall": 0.06932065755595168,
      "strict_joint_count_abs_error": 10.0,
      "strict_axis_mean_error_deg": 58.09149763311819,
      "strict_tree_valid": 1.0
    },
    "semantic": {
      "strict_joint_f1": 0.5656565656565656,
      "strict_joint_precision": 0.5656565656565656,
      "strict_joint_recall": 0.5656565656565656,
      "strict_joint_count_abs_error": 0.09090909090909091,
      "strict_axis_mean_error_deg": 33.63640894084056,
      "strict_tree_valid": 1.0
    },
    "axis_knn": {
      "strict_joint_f1": 0.7047750229568411,
      "strict_joint_precision": 0.7080808080808082,
      "strict_joint_recall": 0.702020202020202,
      "strict_joint_count_abs_error": 0.09090909090909091,
      "strict_axis_mean_error_deg": 20.502521601278822,
      "strict_tree_valid": 1.0
    },
    "delta_axis_knn_vs_semantic": {
      "strict_joint_f1": 0.1391184573002755,
      "strict_joint_precision": 0.14242424242424256,
      "strict_joint_recall": 0.13636363636363635,
      "strict_joint_count_abs_error": 0.0,
      "strict_axis_mean_error_deg": -13.133887339561738,
      "strict_tree_valid": 0.0
    },
    "delta_axis_knn_vs_raw": {
      "strict_joint_f1": 0.6744719926538109,
      "strict_joint_precision": 0.6777777777777779,
      "strict_joint_recall": 0.6717171717171717,
      "strict_joint_count_abs_error": -10.545454545454545,
      "strict_axis_mean_error_deg": -61.369357500673736,
      "strict_tree_valid": 0.0
    }
  },
  "figures": {
    "strict_joint_f1": "visualizations/strict_f1.png",
    "strict_joint_count_abs_error": "visualizations/count_error.png",
    "strict_axis_mean_error_deg": "visualizations/axis_error.png"
  },
  "records": [
    {
      "sample": "electronics_104011",
      "object_category": "Printer",
      "movable_parts": 27,
      "part_names": [
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "base_body"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 4,
          "strict_gt_joint_count": 27,
          "strict_joint_count_abs_error": 23,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.037037037037037035,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 89.89584348956086,
              "origin_error": 0.0,
              "cost": 0.9988427054395651
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.22094419145506575,
              "cost": 3.220944191455066
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5293218329606848,
              "cost": 2.529321832960685
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 75.63967453771933,
              "origin_error": 0.41090061655603854,
              "cost": 3.25134144475292
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 5,
          "thin_part_count": 5,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.3093801548767477,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.12337104114228382,
          "max_axis_origin_to_child_aabb_distance": 0.2524434430334526
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 4,
          "strict_gt_joint_count": 27,
          "strict_joint_count_abs_error": 23,
          "strict_match_count": 1,
          "strict_joint_precision": 0.25,
          "strict_joint_recall": 0.037037037037037035,
          "strict_joint_f1": 0.06451612903225806,
          "strict_type_match_rate": 0.037037037037037035,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.13337607072513755,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.13337607072513755,
              "cost": 0.13337607072513755
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.2113151651650433,
              "cost": 2.2113151651650433
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.08081380474596962,
              "cost": 3.0808138047459694
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.22834819547016133,
              "cost": 3.2283481954701614
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 5,
          "thin_part_count": 5,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.3093801548767477,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.09375587967799592,
          "max_axis_origin_to_child_aabb_distance": 0.15859228468006806
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 27,
          "strict_gt_joint_count": 27,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 27,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.9940243849461984,
          "strict_origin_mean_error": 0.1108299439895609,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.27531899001281773,
              "cost": 0.27531899001281773
            },
            {
              "pred_index": 1,
              "gt_index": 25,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 6.709664598386839,
              "origin_error": 0.4179824385522381,
              "cost": 0.49253426742320294
            },
            {
              "pred_index": 2,
              "gt_index": 24,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 6.709664598386839,
              "origin_error": 0.3576924020792051,
              "cost": 0.43224423095016995
            },
            {
              "pred_index": 3,
              "gt_index": 23,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 6.709664598386839,
              "origin_error": 0.42495155315413896,
              "cost": 0.4995033820251038
            },
            {
              "pred_index": 4,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.0886371599072809,
              "cost": 0.0886371599072809
            },
            {
              "pred_index": 5,
              "gt_index": 26,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 6.709664598386839,
              "origin_error": 0.33313844281065363,
              "cost": 0.40769027168161853
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.030280541659996503,
              "cost": 0.030280541659996503
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.03435661813596027,
              "cost": 0.03435661813596027
            },
            {
              "pred_index": 8,
              "gt_index": 8,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.04351830897745918,
              "cost": 0.04351830897745918
            },
            {
              "pred_index": 9,
              "gt_index": 9,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.05529294008076451,
              "cost": 0.05529294008076451
            },
            {
              "pred_index": 10,
              "gt_index": 10,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.06834307008974959,
              "cost": 0.06834307008974959
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.08206242280002361,
              "cost": 0.08206242280002361
            },
            {
              "pred_index": 12,
              "gt_index": 12,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.09616500009009121,
              "cost": 0.09616500009009121
            },
            {
              "pred_index": 13,
              "gt_index": 13,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.015639895223553597,
              "cost": 0.015639895223553597
            },
            {
              "pred_index": 14,
              "gt_index": 14,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.022540459824971295,
              "cost": 0.022540459824971295
            },
            {
              "pred_index": 15,
              "gt_index": 15,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.03495051266631943,
              "cost": 0.03495051266631943
            },
            {
              "pred_index": 16,
              "gt_index": 16,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.048836506244365654,
              "cost": 0.048836506244365654
            },
            {
              "pred_index": 17,
              "gt_index": 17,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.06323345909147605,
              "cost": 0.06323345909147605
            },
            {
              "pred_index": 18,
              "gt_index": 18,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.07785843791902575,
              "cost": 0.07785843791902575
            },
            {
              "pred_index": 19,
              "gt_index": 19,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.09260346841079008,
              "cost": 0.09260346841079008
            },
            {
              "pred_index": 20,
              "gt_index": 20,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.004722440257397176,
              "cost": 0.004722440257397176
            },
            {
              "pred_index": 21,
              "gt_index": 21,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.01690465759789579,
              "cost": 0.01690465759789579
            },
            {
              "pred_index": 22,
              "gt_index": 22,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.031610654137798316,
              "cost": 0.031610654137798316
            },
            {
              "pred_index": 23,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.046504832668626137,
              "cost": 0.046504832668626137
            },
            {
              "pred_index": 24,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.06145051234981142,
              "cost": 0.06145051234981142
            },
            {
              "pred_index": 25,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.07641748147231585,
              "cost": 0.07641748147231585
            },
            {
              "pred_index": 26,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.09139528150341869,
              "cost": 0.09139528150341869
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 28,
          "thin_part_count": 28,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.2771012850124258,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 27,
          "strict_gt_joint_count": 27,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 27,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 8.11904073384796,
          "strict_origin_mean_error": 0.1108299439895609,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.27531899001281773,
              "cost": 0.35448583833394837
            },
            {
              "pred_index": 1,
              "gt_index": 25,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 13.834680947288621,
              "origin_error": 0.4179824385522381,
              "cost": 0.5717011157443339
            },
            {
              "pred_index": 2,
              "gt_index": 24,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 13.834680947288621,
              "origin_error": 0.3576924020792051,
              "cost": 0.5114110792713009
            },
            {
              "pred_index": 3,
              "gt_index": 23,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 13.834680947288621,
              "origin_error": 0.42495155315413896,
              "cost": 0.5786702303462348
            },
            {
              "pred_index": 4,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.0886371599072809,
              "cost": 0.16780400822841152
            },
            {
              "pred_index": 5,
              "gt_index": 26,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 13.834680947288621,
              "origin_error": 0.33313844281065363,
              "cost": 0.4868571200027494
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.030280541659996503,
              "cost": 0.10944738998112713
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.03435661813596027,
              "cost": 0.11352346645709091
            },
            {
              "pred_index": 8,
              "gt_index": 8,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.04351830897745918,
              "cost": 0.12268515729858981
            },
            {
              "pred_index": 9,
              "gt_index": 9,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.05529294008076451,
              "cost": 0.13445978840189515
            },
            {
              "pred_index": 10,
              "gt_index": 10,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.06834307008974959,
              "cost": 0.14750991841088024
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.08206242280002361,
              "cost": 0.16122927112115426
            },
            {
              "pred_index": 12,
              "gt_index": 12,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.09616500009009121,
              "cost": 0.17533184841122185
            },
            {
              "pred_index": 13,
              "gt_index": 13,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.015639895223553597,
              "cost": 0.09480674354468423
            },
            {
              "pred_index": 14,
              "gt_index": 14,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.022540459824971295,
              "cost": 0.10170730814610193
            },
            {
              "pred_index": 15,
              "gt_index": 15,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.03495051266631943,
              "cost": 0.11411736098745007
            },
            {
              "pred_index": 16,
              "gt_index": 16,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.048836506244365654,
              "cost": 0.12800335456549627
            },
            {
              "pred_index": 17,
              "gt_index": 17,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.06323345909147605,
              "cost": 0.14240030741260667
            },
            {
              "pred_index": 18,
              "gt_index": 18,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.07785843791902575,
              "cost": 0.15702528624015638
            },
            {
              "pred_index": 19,
              "gt_index": 19,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.09260346841079008,
              "cost": 0.17177031673192072
            },
            {
              "pred_index": 20,
              "gt_index": 20,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.004722440257397176,
              "cost": 0.08388928857852782
            },
            {
              "pred_index": 21,
              "gt_index": 21,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.01690465759789579,
              "cost": 0.09607150591902643
            },
            {
              "pred_index": 22,
              "gt_index": 22,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.031610654137798316,
              "cost": 0.11077750245892895
            },
            {
              "pred_index": 23,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.046504832668626137,
              "cost": 0.12567168098975678
            },
            {
              "pred_index": 24,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.06145051234981142,
              "cost": 0.14061736067094205
            },
            {
              "pred_index": 25,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.07641748147231585,
              "cost": 0.1555843297934465
            },
            {
              "pred_index": 26,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 7.125016348901757,
              "origin_error": 0.09139528150341869,
              "cost": 0.17056212982454932
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 28,
          "thin_part_count": 28,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.2771012850124258,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 0,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 2,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 4,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 5,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 6,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 7,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 8,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 9,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 10,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 11,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 12,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 13,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 14,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 15,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 16,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 17,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 18,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 19,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 20,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 21,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 22,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 23,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 24,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 25,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 26,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 27,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/electronics_104011/axis_knn_proxy.glb",
        "axis_mesh": "samples/electronics_104011/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/electronics_104011/semantic_proxy.glb",
        "reference_mesh": "samples/electronics_104011/reference_parts.glb"
      }
    },
    {
      "sample": "electronics_103972",
      "object_category": "Printer",
      "movable_parts": 22,
      "part_names": [
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "base_body"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 1,
          "strict_gt_joint_count": 22,
          "strict_joint_count_abs_error": 21,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.045454545454545456,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 55.190757413620446,
              "origin_error": 0.4553038180367928,
              "cost": 1.068534455965909
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 2,
          "thin_part_count": 2,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.9807507500619251,
          "max_pair_aabb_overlap_ratio": 0.9807507500619251,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.21111908555030823,
          "max_axis_origin_to_child_aabb_distance": 0.21111908555030823
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 2,
          "strict_gt_joint_count": 22,
          "strict_joint_count_abs_error": 20,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.045454545454545456,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 51.29024114415671,
              "origin_error": 0.4623910464304793,
              "cost": 3.0322826146988873
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 55.190757413620446,
              "origin_error": 0.4553038180367928,
              "cost": 1.068534455965909
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 2,
          "thin_part_count": 2,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.9807507500619251,
          "max_pair_aabb_overlap_ratio": 0.9807507500619251,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.10555954277515411,
          "max_axis_origin_to_child_aabb_distance": 0.21111908555030823
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 22,
          "strict_gt_joint_count": 22,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.5249923827188893,
              "cost": 0.9551008144504812
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4612346089697769,
              "cost": 0.8913430407013689
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4613873718013072,
              "cost": 0.8914958035328991
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4620273251702028,
              "cost": 0.8921357569017947
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.46315244957804874,
              "cost": 0.8932608813096408
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.464759221421546,
              "cost": 0.894867653153138
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.44921193712585894,
              "cost": 0.8793203688574509
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4483662641218464,
              "cost": 0.8784746958534384
            },
            {
              "pred_index": 8,
              "gt_index": 8,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.44802148290991134,
              "cost": 0.8781299146415034
            },
            {
              "pred_index": 9,
              "gt_index": 9,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4481787494906587,
              "cost": 0.8782871812222507
            },
            {
              "pred_index": 10,
              "gt_index": 10,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4488375361322015,
              "cost": 0.8789459678637934
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.44999564018714666,
              "cost": 0.8801040719187386
            },
            {
              "pred_index": 12,
              "gt_index": 12,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4516492206720329,
              "cost": 0.8817576524036248
            },
            {
              "pred_index": 13,
              "gt_index": 13,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4361504890443889,
              "cost": 0.8662589207759809
            },
            {
              "pred_index": 14,
              "gt_index": 14,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4352794406354087,
              "cost": 0.8653878723670007
            },
            {
              "pred_index": 15,
              "gt_index": 15,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.43492428511878817,
              "cost": 0.8650327168503802
            },
            {
              "pred_index": 16,
              "gt_index": 16,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.43508628584719106,
              "cost": 0.8651947175787831
            },
            {
              "pred_index": 17,
              "gt_index": 17,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4357648660441985,
              "cost": 0.8658732977757905
            },
            {
              "pred_index": 18,
              "gt_index": 18,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.43695761902584207,
              "cost": 0.867066050757434
            },
            {
              "pred_index": 19,
              "gt_index": 19,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.43866035057997615,
              "cost": 0.8687687823115682
            },
            {
              "pred_index": 20,
              "gt_index": 20,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.4232175961972194,
              "cost": 0.8533260279288113
            },
            {
              "pred_index": 21,
              "gt_index": 21,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 38.709758855843276,
              "origin_error": 0.42231987412051464,
              "cost": 0.8524283058521066
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 23,
          "thin_part_count": 23,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.42837012095853255,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 22,
          "strict_gt_joint_count": 22,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.5249923827188893,
              "cost": 0.944071236996652
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4612346089697769,
              "cost": 0.8803134632475397
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4613873718013072,
              "cost": 0.8804662260790699
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4620273251702028,
              "cost": 0.8811061794479655
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.46315244957804874,
              "cost": 0.8822313038558115
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.464759221421546,
              "cost": 0.8838380756993087
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.44921193712585894,
              "cost": 0.8682907914036218
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4483662641218464,
              "cost": 0.8674451183996091
            },
            {
              "pred_index": 8,
              "gt_index": 8,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.44802148290991134,
              "cost": 0.8671003371876741
            },
            {
              "pred_index": 9,
              "gt_index": 9,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4481787494906587,
              "cost": 0.8672576037684214
            },
            {
              "pred_index": 10,
              "gt_index": 10,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4488375361322015,
              "cost": 0.8679163904099643
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.44999564018714666,
              "cost": 0.8690744944649094
            },
            {
              "pred_index": 12,
              "gt_index": 12,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4516492206720329,
              "cost": 0.8707280749497956
            },
            {
              "pred_index": 13,
              "gt_index": 13,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4361504890443889,
              "cost": 0.8552293433221516
            },
            {
              "pred_index": 14,
              "gt_index": 14,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4352794406354087,
              "cost": 0.8543582949131714
            },
            {
              "pred_index": 15,
              "gt_index": 15,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.43492428511878817,
              "cost": 0.8540031393965509
            },
            {
              "pred_index": 16,
              "gt_index": 16,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.43508628584719106,
              "cost": 0.8541651401249538
            },
            {
              "pred_index": 17,
              "gt_index": 17,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4357648660441985,
              "cost": 0.8548437203219612
            },
            {
              "pred_index": 18,
              "gt_index": 18,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.43695761902584207,
              "cost": 0.8560364733036048
            },
            {
              "pred_index": 19,
              "gt_index": 19,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.43866035057997615,
              "cost": 0.8577392048577389
            },
            {
              "pred_index": 20,
              "gt_index": 20,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.4232175961972194,
              "cost": 0.8422964504749821
            },
            {
              "pred_index": 21,
              "gt_index": 21,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.71709688499865,
              "origin_error": 0.42231987412051464,
              "cost": 0.8413987283982773
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 23,
          "thin_part_count": 23,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.42837012095853255,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 1,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 2,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 4,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 5,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 6,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 7,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 8,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 9,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 10,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 11,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 12,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 13,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 14,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 15,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 16,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 17,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 18,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 19,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 20,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 21,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 22,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/electronics_103972/axis_knn_proxy.glb",
        "axis_mesh": "samples/electronics_103972/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/electronics_103972/semantic_proxy.glb",
        "reference_mesh": "samples/electronics_103972/reference_parts.glb"
      }
    },
    {
      "sample": "electronics_103867",
      "object_category": "Printer",
      "movable_parts": 17,
      "part_names": [
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "base_body"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 2,
          "strict_gt_joint_count": 17,
          "strict_joint_count_abs_error": 15,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.058823529411764705,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.2898407687084724,
              "cost": 2.389912701645139
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 68.28243786656506,
              "origin_error": 0.6392510656398454,
              "cost": 1.3979448197127904
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 3,
          "thin_part_count": 3,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.6666500862352832,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.12148498507643757,
          "max_axis_origin_to_child_aabb_distance": 0.24296997015287514
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 2,
          "strict_gt_joint_count": 17,
          "strict_joint_count_abs_error": 15,
          "strict_match_count": 1,
          "strict_joint_precision": 0.5,
          "strict_joint_recall": 0.058823529411764705,
          "strict_joint_f1": 0.10526315789473684,
          "strict_type_match_rate": 0.058823529411764705,
          "strict_axis_mean_error_deg": 9.00647396430002,
          "strict_origin_mean_error": 0.6788560787880812,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 80.99352614797806,
              "origin_error": 0.448644322768791,
              "cost": 3.3485723910796583
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.6788560787880812,
              "cost": 0.7789280117247481
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 3,
          "thin_part_count": 3,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.6666500862352832,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.08872853062263579,
          "max_axis_origin_to_child_aabb_distance": 0.09247478528244199
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 17,
          "strict_gt_joint_count": 17,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 17,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 9.00647396430002,
          "strict_origin_mean_error": 0.5865986040537322,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.26695037491981555,
              "cost": 0.36702230785648243
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.7603166457242724,
              "cost": 0.8603885786609393
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.6069598509493394,
              "cost": 0.7070317838860063
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.598967908143658,
              "cost": 0.6990398410803249
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.5912485512096709,
              "cost": 0.6913204841463378
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.5838125929003931,
              "cost": 0.68388452583706
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.6216377707034577,
              "cost": 0.7217097036401245
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.6127363317828559,
              "cost": 0.7128082647195229
            },
            {
              "pred_index": 8,
              "gt_index": 8,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.6040762423802606,
              "cost": 0.7041481753169274
            },
            {
              "pred_index": 9,
              "gt_index": 9,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.5956680291318316,
              "cost": 0.6957399620684985
            },
            {
              "pred_index": 10,
              "gt_index": 10,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.5875225061658029,
              "cost": 0.6875944391024698
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.5796507479274836,
              "cost": 0.6797226808641506
            },
            {
              "pred_index": 12,
              "gt_index": 12,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.5720640557616222,
              "cost": 0.6721359886982892
            },
            {
              "pred_index": 13,
              "gt_index": 13,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.6109858085344709,
              "cost": 0.7110577414711379
            },
            {
              "pred_index": 14,
              "gt_index": 14,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.6019268664481312,
              "cost": 0.701998799384798
            },
            {
              "pred_index": 15,
              "gt_index": 15,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.5931089671161714,
              "cost": 0.6931809000528384
            },
            {
              "pred_index": 16,
              "gt_index": 16,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 9.00647396430002,
              "origin_error": 0.5845430191142111,
              "cost": 0.684614952050878
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 18,
          "thin_part_count": 18,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.4104169837450713,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 17,
          "strict_gt_joint_count": 17,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 17,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 16.131490263696524,
          "strict_origin_mean_error": 0.5865986040537322,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.26695037491981555,
              "cost": 0.4461891556275547
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.7603166457242724,
              "cost": 0.9395554264320115
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.6069598509493394,
              "cost": 0.7861986316570785
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.598967908143658,
              "cost": 0.7782066888513971
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.5912485512096709,
              "cost": 0.77048733191741
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.5838125929003931,
              "cost": 0.7630513736081322
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.6216377707034577,
              "cost": 0.8008765514111968
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.6127363317828559,
              "cost": 0.791975112490595
            },
            {
              "pred_index": 8,
              "gt_index": 8,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.6040762423802606,
              "cost": 0.7833150230879997
            },
            {
              "pred_index": 9,
              "gt_index": 9,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.5956680291318316,
              "cost": 0.7749068098395707
            },
            {
              "pred_index": 10,
              "gt_index": 10,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.5875225061658029,
              "cost": 0.7667612868735421
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.5796507479274836,
              "cost": 0.7588895286352227
            },
            {
              "pred_index": 12,
              "gt_index": 12,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.5720640557616222,
              "cost": 0.7513028364693614
            },
            {
              "pred_index": 13,
              "gt_index": 13,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.6109858085344709,
              "cost": 0.7902245892422101
            },
            {
              "pred_index": 14,
              "gt_index": 14,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.6019268664481312,
              "cost": 0.7811656471558703
            },
            {
              "pred_index": 15,
              "gt_index": 15,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.5931089671161714,
              "cost": 0.7723477478239106
            },
            {
              "pred_index": 16,
              "gt_index": 16,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 16.131490263696524,
              "origin_error": 0.5845430191142111,
              "cost": 0.7637817998219503
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 18,
          "thin_part_count": 18,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.4104169837450713,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 1,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 2,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 4,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 5,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 6,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 7,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 8,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 9,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 10,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 11,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 12,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 13,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 14,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 15,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 16,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 17,
          "name": "button",
          "axis": [
            0.0,
            -0.9922778767136677,
            0.12403473458920847
          ],
          "nearest": {
            "sample": "electronics_104020",
            "category": "Printer",
            "name": "button"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/electronics_103867/axis_knn_proxy.glb",
        "axis_mesh": "samples/electronics_103867/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/electronics_103867/semantic_proxy.glb",
        "reference_mesh": "samples/electronics_103867/reference_parts.glb"
      }
    },
    {
      "sample": "electronics_103978",
      "object_category": "Printer",
      "movable_parts": 16,
      "part_names": [
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "base_body"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 0,
          "strict_gt_joint_count": 16,
          "strict_joint_count_abs_error": 16,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": []
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 1,
          "thin_part_count": 1,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.0,
          "max_pair_aabb_overlap_ratio": 0.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 1,
          "strict_gt_joint_count": 16,
          "strict_joint_count_abs_error": 15,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.6792879094212074,
              "cost": 3.679287909421207
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 1,
          "thin_part_count": 1,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.0,
          "max_pair_aabb_overlap_ratio": 0.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 16,
          "strict_gt_joint_count": 16,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 16,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.6478323523684864,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.668796266525423,
              "cost": 0.668796266525423
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6584791783730559,
              "cost": 0.6584791783730559
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6483449780659716,
              "cost": 0.6483449780659716
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6384023753212978,
              "cost": 0.6384023753212978
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6286604608597438,
              "cost": 0.6286604608597438
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.619128708170519,
              "cost": 0.619128708170519
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6759288675409012,
              "cost": 0.6759288675409012
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6653842620678936,
              "cost": 0.6653842620678936
            },
            {
              "pred_index": 8,
              "gt_index": 8,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6550134337860144,
              "cost": 0.6550134337860144
            },
            {
              "pred_index": 9,
              "gt_index": 9,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6448247674156568,
              "cost": 0.6448247674156568
            },
            {
              "pred_index": 10,
              "gt_index": 10,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6348270338487216,
              "cost": 0.6348270338487216
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6250293954188684,
              "cost": 0.6250293954188684
            },
            {
              "pred_index": 12,
              "gt_index": 12,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.615441408559894,
              "cost": 0.615441408559894
            },
            {
              "pred_index": 13,
              "gt_index": 13,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6728875121923544,
              "cost": 0.6728875121923544
            },
            {
              "pred_index": 14,
              "gt_index": 14,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6622944860837405,
              "cost": 0.6622944860837405
            },
            {
              "pred_index": 15,
              "gt_index": 15,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6518745036657257,
              "cost": 0.6518745036657257
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 17,
          "thin_part_count": 17,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5176208574213479,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 16,
          "strict_gt_joint_count": 16,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 16,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.6478323523684864,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.668796266525423,
              "cost": 0.668796266525423
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6584791783730559,
              "cost": 0.6584791783730559
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6483449780659716,
              "cost": 0.6483449780659716
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6384023753212978,
              "cost": 0.6384023753212978
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6286604608597438,
              "cost": 0.6286604608597438
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.619128708170519,
              "cost": 0.619128708170519
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6759288675409012,
              "cost": 0.6759288675409012
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6653842620678936,
              "cost": 0.6653842620678936
            },
            {
              "pred_index": 8,
              "gt_index": 8,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6550134337860144,
              "cost": 0.6550134337860144
            },
            {
              "pred_index": 9,
              "gt_index": 9,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6448247674156568,
              "cost": 0.6448247674156568
            },
            {
              "pred_index": 10,
              "gt_index": 10,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6348270338487216,
              "cost": 0.6348270338487216
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6250293954188684,
              "cost": 0.6250293954188684
            },
            {
              "pred_index": 12,
              "gt_index": 12,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.615441408559894,
              "cost": 0.615441408559894
            },
            {
              "pred_index": 13,
              "gt_index": 13,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6728875121923544,
              "cost": 0.6728875121923544
            },
            {
              "pred_index": 14,
              "gt_index": 14,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6622944860837405,
              "cost": 0.6622944860837405
            },
            {
              "pred_index": 15,
              "gt_index": 15,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.6518745036657257,
              "cost": 0.6518745036657257
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 17,
          "thin_part_count": 17,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5176208574213479,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 1,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 2,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 4,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 5,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 6,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 7,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 8,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 9,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 10,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 11,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 12,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 13,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 14,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 15,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 16,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_104030",
            "category": "Printer",
            "name": "button"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/electronics_103978/axis_knn_proxy.glb",
        "axis_mesh": "samples/electronics_103978/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/electronics_103978/semantic_proxy.glb",
        "reference_mesh": "samples/electronics_103978/reference_parts.glb"
      }
    },
    {
      "sample": "small_appliances_103043",
      "object_category": "CoffeeMachine",
      "movable_parts": 12,
      "part_names": [
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "lever",
        "base_body"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 1,
          "strict_gt_joint_count": 12,
          "strict_joint_count_abs_error": 11,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.08333333333333333,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 11,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.506399787811903,
              "cost": 1.5063997878119029
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 2,
          "thin_part_count": 2,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.9127458672250551,
          "max_pair_aabb_overlap_ratio": 0.9127458672250551,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 2,
          "strict_gt_joint_count": 12,
          "strict_joint_count_abs_error": 10,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.08333333333333333,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 2.298692807248489,
              "origin_error": 0.5492381889840972,
              "cost": 2.574779220175747
            },
            {
              "pred_index": 1,
              "gt_index": 11,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.506399787811903,
              "cost": 1.5063997878119029
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 2,
          "thin_part_count": 2,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.9127458672250551,
          "max_pair_aabb_overlap_ratio": 0.9127458672250551,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 12,
          "strict_gt_joint_count": 12,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.3256918287287987,
              "cost": 1.3001507975371485
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.3020824750931441,
              "cost": 1.3020824750931441
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.5401333103495817,
              "cost": 1.5145922791579314
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.537901286965759,
              "cost": 1.5123602557741087
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.5360798411520825,
              "cost": 1.5105388099604324
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.5346731690106249,
              "cost": 1.5091321378189746
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.5350997167439782,
              "cost": 1.509558685552328
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.5315783182464348,
              "cost": 1.5060372870547845
            },
            {
              "pred_index": 8,
              "gt_index": 8,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.5284593740297641,
              "cost": 1.5029183428381139
            },
            {
              "pred_index": 9,
              "gt_index": 9,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.5257500466668095,
              "cost": 1.5002090154751593
            },
            {
              "pred_index": 10,
              "gt_index": 10,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 87.70130719275149,
              "origin_error": 0.5234566965283514,
              "cost": 1.4979156653367012
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.4605518601446579,
              "cost": 1.4605518601446579
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 13,
          "thin_part_count": 13,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.30229395896202144,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 12,
          "strict_gt_joint_count": 12,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 10,
          "strict_joint_precision": 0.8333333333333334,
          "strict_joint_recall": 0.8333333333333334,
          "strict_joint_f1": 0.8333333333333334,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 17.300401994186874,
          "strict_origin_mean_error": 0.5118823588422184,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.3256918287287987,
              "cost": 0.5179185175530974
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.3020824750931441,
              "cost": 1.3020824750931441
            },
            {
              "pred_index": 2,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.5401333103495817,
              "cost": 0.7323599991738803
            },
            {
              "pred_index": 3,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.537901286965759,
              "cost": 0.7301279757900576
            },
            {
              "pred_index": 4,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.5360798411520825,
              "cost": 0.7283065299763811
            },
            {
              "pred_index": 5,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.5346731690106249,
              "cost": 0.7268998578349235
            },
            {
              "pred_index": 6,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.5350997167439782,
              "cost": 0.7273264055682768
            },
            {
              "pred_index": 7,
              "gt_index": 8,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.5315783182464348,
              "cost": 0.7238050070707334
            },
            {
              "pred_index": 8,
              "gt_index": 9,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.5284593740297641,
              "cost": 0.7206860628540627
            },
            {
              "pred_index": 9,
              "gt_index": 10,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.5257500466668095,
              "cost": 0.7179767354911081
            },
            {
              "pred_index": 10,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 17.300401994186874,
              "origin_error": 0.5234566965283514,
              "cost": 0.71568338535265
            },
            {
              "pred_index": 11,
              "gt_index": 11,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.4605518601446579,
              "cost": 1.4605518601446579
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 13,
          "thin_part_count": 13,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.30229395896202144,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 1,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 2,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 4,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 5,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 6,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 7,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 8,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 9,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 10,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 11,
          "name": "button",
          "axis": [
            0.0,
            0.2588478594623455,
            0.9659181050439846
          ],
          "nearest": {
            "sample": "small_appliances_103048",
            "category": "CoffeeMachine",
            "name": "button"
          }
        },
        {
          "node_id": 12,
          "name": "lever",
          "axis": [
            0.0,
            1.0,
            0.0
          ],
          "nearest": {
            "sample": "small_appliances_103074",
            "category": "CoffeeMachine",
            "name": "lever"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/small_appliances_103043/axis_knn_proxy.glb",
        "axis_mesh": "samples/small_appliances_103043/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/small_appliances_103043/semantic_proxy.glb",
        "reference_mesh": "samples/small_appliances_103043/reference_parts.glb"
      }
    },
    {
      "sample": "electronics_104020",
      "object_category": "Printer",
      "movable_parts": 9,
      "part_names": [
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "base_body"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 0,
          "strict_gt_joint_count": 9,
          "strict_joint_count_abs_error": 9,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": []
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 1,
          "thin_part_count": 1,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.0,
          "max_pair_aabb_overlap_ratio": 0.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 1,
          "strict_gt_joint_count": 9,
          "strict_joint_count_abs_error": 8,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 8,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.0026428763032152846,
              "cost": 2.002642876303215
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 1,
          "thin_part_count": 1,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.0,
          "max_pair_aabb_overlap_ratio": 0.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 9,
          "strict_gt_joint_count": 9,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 8,
          "strict_joint_precision": 0.8888888888888888,
          "strict_joint_recall": 0.8888888888888888,
          "strict_joint_f1": 0.8888888888888888,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.5419818585448429,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 8,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.01569067792318665,
              "cost": 1.0156906779231867
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.530014675037044,
              "cost": 0.530014675037044
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5438769371572303,
              "cost": 0.5438769371572303
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5577980725929736,
              "cost": 0.5577980725929736
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5717737811454305,
              "cost": 0.5717737811454305
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5858001568984506,
              "cost": 0.5858001568984506
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5017585994882204,
              "cost": 0.5017585994882204
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5155077682996513,
              "cost": 0.5155077682996513
            },
            {
              "pred_index": 8,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5293248777397426,
              "cost": 0.5293248777397426
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 10,
          "thin_part_count": 10,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5067190391285387,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 9,
          "strict_gt_joint_count": 9,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 8,
          "strict_joint_precision": 0.8888888888888888,
          "strict_joint_recall": 0.8888888888888888,
          "strict_joint_f1": 0.8888888888888888,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.9926619708443645,
          "strict_origin_mean_error": 0.5419818585448429,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 8,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 89.00733802915538,
              "origin_error": 0.01569067792318665,
              "cost": 1.0046611004693575
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.9926619708443645,
              "origin_error": 0.530014675037044,
              "cost": 0.5410442524908703
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.9926619708443645,
              "origin_error": 0.5438769371572303,
              "cost": 0.5549065146110566
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.9926619708443645,
              "origin_error": 0.5577980725929736,
              "cost": 0.5688276500467999
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.9926619708443645,
              "origin_error": 0.5717737811454305,
              "cost": 0.5828033585992568
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.9926619708443645,
              "origin_error": 0.5858001568984506,
              "cost": 0.5968297343522768
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.9926619708443645,
              "origin_error": 0.5017585994882204,
              "cost": 0.5127881769420467
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.9926619708443645,
              "origin_error": 0.5155077682996513,
              "cost": 0.5265373457534775
            },
            {
              "pred_index": 8,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.9926619708443645,
              "origin_error": 0.5293248777397426,
              "cost": 0.5403544551935688
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 10,
          "thin_part_count": 10,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5067190391285387,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 1,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 2,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 4,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 5,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 6,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 7,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 8,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 9,
          "name": "button",
          "axis": [
            0.0,
            -0.9998499221343418,
            -0.017324353031235487
          ],
          "nearest": {
            "sample": "electronics_104011",
            "category": "Printer",
            "name": "button"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/electronics_104020/axis_knn_proxy.glb",
        "axis_mesh": "samples/electronics_104020/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/electronics_104020/semantic_proxy.glb",
        "reference_mesh": "samples/electronics_104020/reference_parts.glb"
      }
    },
    {
      "sample": "electronics_103988",
      "object_category": "Printer",
      "movable_parts": 8,
      "part_names": [
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "base_body"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 0,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 8,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": []
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 1,
          "thin_part_count": 1,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.0,
          "max_pair_aabb_overlap_ratio": 0.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 1,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 7,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.8896533061583021,
              "cost": 3.8896533061583023
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 1,
          "thin_part_count": 1,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.0,
          "max_pair_aabb_overlap_ratio": 0.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 8,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 8,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.9256107993705065,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.902975854298968,
              "cost": 0.902975854298968
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9163502505786226,
              "cost": 0.9163502505786226
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9297742575615106,
              "cost": 0.9297742575615106
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9432457571134957,
              "cost": 0.9432457571134957
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9567627431088467,
              "cost": 0.9567627431088467
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9703233146172046,
              "cost": 0.9703233146172046
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.8860390660880934,
              "cost": 0.8860390660880934
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.8994151515973112,
              "cost": 0.8994151515973112
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 9,
          "thin_part_count": 9,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5888953755475408,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 8,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 8,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.9256107993705065,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.902975854298968,
              "cost": 0.902975854298968
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9163502505786226,
              "cost": 0.9163502505786226
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9297742575615106,
              "cost": 0.9297742575615106
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9432457571134957,
              "cost": 0.9432457571134957
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9567627431088467,
              "cost": 0.9567627431088467
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.9703233146172046,
              "cost": 0.9703233146172046
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.8860390660880934,
              "cost": 0.8860390660880934
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.8994151515973112,
              "cost": 0.8994151515973112
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 9,
          "thin_part_count": 9,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5888953755475408,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 1,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 2,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 4,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 5,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 6,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 7,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 8,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/electronics_103988/axis_knn_proxy.glb",
        "axis_mesh": "samples/electronics_103988/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/electronics_103988/semantic_proxy.glb",
        "reference_mesh": "samples/electronics_103988/reference_parts.glb"
      }
    },
    {
      "sample": "electronics_103878",
      "object_category": "Printer",
      "movable_parts": 8,
      "part_names": [
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "base_body"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 1,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 7,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.841862038213579,
              "cost": 3.841862038213579
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 3,
          "thin_part_count": 3,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5792465360380068,
          "max_pair_aabb_overlap_ratio": 0.9878948160313789,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 3,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 5,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.841862038213579,
              "cost": 3.841862038213579
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5453146411107292,
              "cost": 2.5453146411107292
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.569978571206523,
              "cost": 2.569978571206523
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 3,
          "thin_part_count": 3,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5792465360380068,
          "max_pair_aabb_overlap_ratio": 0.9878948160313789,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 8,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.3683862349975161,
              "cost": 1.3683862349975162
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.569978571206523,
              "cost": 1.5699785712065228
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.5202689069861403,
              "cost": 1.5202689069861401
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.5125267097093538,
              "cost": 1.5125267097093538
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.5051113944017096,
              "cost": 1.5051113944017096
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.4980375621811899,
              "cost": 1.4980375621811899
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.5338843777916453,
              "cost": 1.5338843777916453
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.5250584933499461,
              "cost": 1.5250584933499463
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 9,
          "thin_part_count": 9,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.39354656516350767,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 8,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 51.29024114415671,
              "origin_error": 0.3683862349975161,
              "cost": 0.938277803265924
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 51.29024114415671,
              "origin_error": 0.569978571206523,
              "cost": 1.1398701394749309
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 51.29024114415671,
              "origin_error": 0.5202689069861403,
              "cost": 1.0901604752545482
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 51.29024114415671,
              "origin_error": 0.5125267097093538,
              "cost": 1.0824182779777618
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 51.29024114415671,
              "origin_error": 0.5051113944017096,
              "cost": 1.0750029626701174
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 51.29024114415671,
              "origin_error": 0.4980375621811899,
              "cost": 1.0679291304495977
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 51.29024114415671,
              "origin_error": 0.5338843777916453,
              "cost": 1.1037759460600531
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 51.29024114415671,
              "origin_error": 0.5250584933499461,
              "cost": 1.094950061618354
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 9,
          "thin_part_count": 9,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.39354656516350767,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 0,
          "name": "button",
          "axis": [
            0.0,
            -0.7803239020847803,
            -0.6253755734238285
          ],
          "nearest": {
            "sample": "electronics_103972",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 2,
          "name": "button",
          "axis": [
            0.0,
            -0.7803239020847803,
            -0.6253755734238285
          ],
          "nearest": {
            "sample": "electronics_103972",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            -0.7803239020847803,
            -0.6253755734238285
          ],
          "nearest": {
            "sample": "electronics_103972",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 4,
          "name": "button",
          "axis": [
            0.0,
            -0.7803239020847803,
            -0.6253755734238285
          ],
          "nearest": {
            "sample": "electronics_103972",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 5,
          "name": "button",
          "axis": [
            0.0,
            -0.7803239020847803,
            -0.6253755734238285
          ],
          "nearest": {
            "sample": "electronics_103972",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 6,
          "name": "button",
          "axis": [
            0.0,
            -0.7803239020847803,
            -0.6253755734238285
          ],
          "nearest": {
            "sample": "electronics_103972",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 7,
          "name": "button",
          "axis": [
            0.0,
            -0.7803239020847803,
            -0.6253755734238285
          ],
          "nearest": {
            "sample": "electronics_103972",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 8,
          "name": "button",
          "axis": [
            0.0,
            -0.7803239020847803,
            -0.6253755734238285
          ],
          "nearest": {
            "sample": "electronics_103972",
            "category": "Printer",
            "name": "button"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/electronics_103878/axis_knn_proxy.glb",
        "axis_mesh": "samples/electronics_103878/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/electronics_103878/semantic_proxy.glb",
        "reference_mesh": "samples/electronics_103878/reference_parts.glb"
      }
    },
    {
      "sample": "electronics_104030",
      "object_category": "Printer",
      "movable_parts": 8,
      "part_names": [
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "button",
        "base_body"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 3,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 5,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.125,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.571276429759162,
              "cost": 2.571276429759162
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.47110491049600045,
              "cost": 2.4711049104960003
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 47.07974922479483,
              "origin_error": 0.21897998586199094,
              "cost": 0.7420883105819336
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 5,
          "thin_part_count": 5,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.6883118702014872,
          "max_pair_aabb_overlap_ratio": 0.9994434591058216,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.04621297807168546,
          "max_axis_origin_to_child_aabb_distance": 0.13863893421505638
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 5,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 3,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.125,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.21372816146260437,
              "cost": 3.2137281614626043
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.2132722257160449,
              "cost": 3.213272225716045
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.571276429759162,
              "cost": 2.571276429759162
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.47110491049600045,
              "cost": 2.4711049104960003
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 47.07974922479483,
              "origin_error": 0.21897998586199094,
              "cost": 0.7420883105819336
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 5,
          "thin_part_count": 5,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.6883118702014872,
          "max_pair_aabb_overlap_ratio": 0.9994434591058216,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.027727786843011276,
          "max_axis_origin_to_child_aabb_distance": 0.13863893421505638
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 8,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 8,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.25955096864944266,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.21372816146260437,
              "cost": 0.21372816146260437
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.32754240007908736,
              "cost": 0.32754240007908736
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5397972035882326,
              "cost": 0.5397972035882326
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.20205498510385697,
              "cost": 0.20205498510385697
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.1869051463221936,
              "cost": 0.1869051463221936
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.18486003357591818,
              "cost": 0.18486003357591818
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.21433068078846151,
              "cost": 0.21433068078846151
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.2071891382751866,
              "cost": 0.2071891382751866
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 9,
          "thin_part_count": 9,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.4651176368022395,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 8,
          "strict_gt_joint_count": 8,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 8,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 1.0,
          "strict_joint_f1": 1.0,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.25955096864944266,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.21372816146260437,
              "cost": 0.21372816146260437
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.32754240007908736,
              "cost": 0.32754240007908736
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5397972035882326,
              "cost": 0.5397972035882326
            },
            {
              "pred_index": 3,
              "gt_index": 3,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.20205498510385697,
              "cost": 0.20205498510385697
            },
            {
              "pred_index": 4,
              "gt_index": 4,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.1869051463221936,
              "cost": 0.1869051463221936
            },
            {
              "pred_index": 5,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.18486003357591818,
              "cost": 0.18486003357591818
            },
            {
              "pred_index": 6,
              "gt_index": 6,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.21433068078846151,
              "cost": 0.21433068078846151
            },
            {
              "pred_index": 7,
              "gt_index": 7,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.2071891382751866,
              "cost": 0.2071891382751866
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 9,
          "thin_part_count": 9,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.4651176368022395,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 0,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 2,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 4,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 5,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 6,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 7,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        },
        {
          "node_id": 8,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103978",
            "category": "Printer",
            "name": "button"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/electronics_104030/axis_knn_proxy.glb",
        "axis_mesh": "samples/electronics_104030/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/electronics_104030/semantic_proxy.glb",
        "reference_mesh": "samples/electronics_104030/reference_parts.glb"
      }
    },
    {
      "sample": "small_appliances_103016",
      "object_category": "CoffeeMachine",
      "movable_parts": 5,
      "part_names": [
        "lever",
        "lever",
        "lever",
        "knob",
        "knob",
        "outlier",
        "container"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 4,
          "strict_gt_joint_count": 6,
          "strict_joint_count_abs_error": 2,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.3333333333333333,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 53.278544892534356,
              "origin_error": 0.2006707735788283,
              "cost": 0.792654605718099
            },
            {
              "pred_index": 1,
              "gt_index": 5,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 20.290980610579716,
              "origin_error": 0.6040220914213321,
              "cost": 2.8294774315388844
            },
            {
              "pred_index": 2,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 31.55346650841229,
              "origin_error": 0.7025711960761039,
              "cost": 3.053165268391796
            },
            {
              "pred_index": 3,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 35.03231989587249,
              "origin_error": 0.1301157833471245,
              "cost": 0.5193637821901522
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 5,
          "thin_part_count": 5,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5335437833391725,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 4,
          "strict_gt_joint_count": 6,
          "strict_joint_count_abs_error": 2,
          "strict_match_count": 2,
          "strict_joint_precision": 0.5,
          "strict_joint_recall": 0.3333333333333333,
          "strict_joint_f1": 0.4,
          "strict_type_match_rate": 0.6666666666666666,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.4655953760620921,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 36.76538365396065,
              "origin_error": 0.6058261005500754,
              "cost": 1.0143303633718603
            },
            {
              "pred_index": 1,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.34078685805562886,
              "cost": 0.34078685805562886
            },
            {
              "pred_index": 2,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5904038940685553,
              "cost": 0.5904038940685553
            },
            {
              "pred_index": 3,
              "gt_index": 4,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 52.98780430904434,
              "origin_error": 0.6109715510195279,
              "cost": 1.1997249322311316
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 5,
          "thin_part_count": 5,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.5335437833391725,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.06510395283629777,
          "max_axis_origin_to_child_aabb_distance": 0.18006609470612261
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 5,
          "strict_gt_joint_count": 6,
          "strict_joint_count_abs_error": 1,
          "strict_match_count": 0,
          "strict_joint_precision": 0.0,
          "strict_joint_recall": 0.0,
          "strict_joint_f1": 0.0,
          "strict_type_match_rate": 0.8333333333333334,
          "strict_axis_mean_error_deg": 90.0,
          "strict_origin_mean_error": 0.0,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 4,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 37.19581330288987,
              "origin_error": 0.6051195620173024,
              "cost": 1.0184063764938565
            },
            {
              "pred_index": 1,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 35.030948227451375,
              "origin_error": 0.2920259236483914,
              "cost": 0.6812586817311845
            },
            {
              "pred_index": 2,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 35.03231989587249,
              "origin_error": 0.5566596650206481,
              "cost": 0.9459076638636759
            },
            {
              "pred_index": 3,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.03218660162301021,
              "cost": 1.0321866016230101
            },
            {
              "pred_index": 4,
              "gt_index": 3,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 36.76538365396065,
              "origin_error": 0.5326166965565159,
              "cost": 0.9411209593783009
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 6,
          "thin_part_count": 6,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.4890291888927817,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 5,
          "strict_gt_joint_count": 6,
          "strict_joint_count_abs_error": 1,
          "strict_match_count": 2,
          "strict_joint_precision": 0.4,
          "strict_joint_recall": 0.3333333333333333,
          "strict_joint_f1": 0.3636363636363636,
          "strict_type_match_rate": 0.8333333333333334,
          "strict_axis_mean_error_deg": 0.789022839562178,
          "strict_origin_mean_error": 0.4422524599670006,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 4,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 86.8166316128564,
              "origin_error": 0.6051195620173024,
              "cost": 1.5697488021601513
            },
            {
              "pred_index": 1,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 89.99884699720106,
              "origin_error": 0.2920259236483914,
              "cost": 1.292013112506181
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.21419513682681862,
              "cost": 0.21419513682681862
            },
            {
              "pred_index": 3,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 54.98288732158667,
              "origin_error": 0.5783061008108923,
              "cost": 1.1892270710507442
            },
            {
              "pred_index": 4,
              "gt_index": 5,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 1.578045679124356,
              "origin_error": 0.6703097831071825,
              "cost": 0.687843623986342
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 6,
          "thin_part_count": 6,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.4890291888927817,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 1,
          "name": "lever",
          "axis": [
            1.0,
            0.0,
            0.0
          ],
          "nearest": {
            "sample": "small_appliances_103043",
            "category": "CoffeeMachine",
            "name": "lever"
          }
        },
        {
          "node_id": 2,
          "name": "lever",
          "axis": [
            1.0,
            0.0,
            0.0
          ],
          "nearest": {
            "sample": "small_appliances_103043",
            "category": "CoffeeMachine",
            "name": "lever"
          }
        },
        {
          "node_id": 3,
          "name": "lever",
          "axis": [
            1.0,
            0.0,
            0.0
          ],
          "nearest": {
            "sample": "small_appliances_103043",
            "category": "CoffeeMachine",
            "name": "lever"
          }
        },
        {
          "node_id": 4,
          "name": "knob",
          "axis": [
            -0.02753861089309302,
            2.911318824316631e-20,
            -0.999620740536169
          ],
          "nearest": {
            "sample": "small_appliances_103074",
            "category": "CoffeeMachine",
            "name": "knob"
          }
        },
        {
          "node_id": 5,
          "name": "knob",
          "axis": [
            -0.02753861089309302,
            2.911318824316631e-20,
            -0.999620740536169
          ],
          "nearest": {
            "sample": "small_appliances_103074",
            "category": "CoffeeMachine",
            "name": "knob"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/small_appliances_103016/axis_knn_proxy.glb",
        "axis_mesh": "samples/small_appliances_103016/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/small_appliances_103016/semantic_proxy.glb",
        "reference_mesh": "samples/small_appliances_103016/reference_parts.glb"
      }
    },
    {
      "sample": "small_appliances_103466",
      "object_category": "Toaster",
      "movable_parts": 3,
      "part_names": [
        "knob",
        "slider",
        "outlier",
        "button"
      ],
      "raw": {
        "strict": {
          "strict_pred_joint_count": 3,
          "strict_gt_joint_count": 3,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 1,
          "strict_joint_precision": 0.3333333333333333,
          "strict_joint_recall": 0.3333333333333333,
          "strict_joint_f1": 0.3333333333333333,
          "strict_type_match_rate": 0.3333333333333333,
          "strict_axis_mean_error_deg": 0.5906701214781084,
          "strict_origin_mean_error": 0.3076053995819373,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 1,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.5675164704048092,
              "cost": 2.5675164704048092
            },
            {
              "pred_index": 1,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.5906701214781084,
              "origin_error": 0.3076053995819373,
              "cost": 0.314168400931694
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 1.0,
              "axis_error_deg": 0.41942331034434516,
              "origin_error": 0.17451078136507153,
              "cost": 2.1791710403688977
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 4,
          "thin_part_count": 4,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.831318346907338,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.33980848275198516,
          "max_axis_origin_to_child_aabb_distance": 0.5282615407057267
        }
      },
      "best_old": {
        "strict": {
          "strict_pred_joint_count": 1,
          "strict_gt_joint_count": 3,
          "strict_joint_count_abs_error": 2,
          "strict_match_count": 1,
          "strict_joint_precision": 1.0,
          "strict_joint_recall": 0.3333333333333333,
          "strict_joint_f1": 0.5,
          "strict_type_match_rate": 0.3333333333333333,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.45979258466836576,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.45979258466836576,
              "cost": 0.45979258466836576
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 4,
          "thin_part_count": 4,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.831318346907338,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "semantic": {
        "strict": {
          "strict_pred_joint_count": 3,
          "strict_gt_joint_count": 3,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 1,
          "strict_joint_precision": 0.3333333333333333,
          "strict_joint_recall": 0.3333333333333333,
          "strict_joint_f1": 0.3333333333333333,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 0.0,
          "strict_origin_mean_error": 0.4975351528047218,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.45979258466836576,
              "cost": 1.4597925846683657
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.4975351528047218,
              "cost": 0.4975351528047218
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.47749856316499467,
              "cost": 1.4774985631649946
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 4,
          "thin_part_count": 4,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.831318346907338,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_knn": {
        "strict": {
          "strict_pred_joint_count": 3,
          "strict_gt_joint_count": 3,
          "strict_joint_count_abs_error": 0,
          "strict_match_count": 2,
          "strict_joint_precision": 0.6666666666666666,
          "strict_joint_recall": 0.6666666666666666,
          "strict_joint_f1": 0.6666666666666666,
          "strict_type_match_rate": 1.0,
          "strict_axis_mean_error_deg": 2.1951198119291817,
          "strict_origin_mean_error": 0.47866386873654376,
          "strict_tree_valid": 1.0,
          "strict_matches": [
            {
              "pred_index": 0,
              "gt_index": 0,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 4.390239623858363,
              "origin_error": 0.45979258466836576,
              "cost": 0.5085730249334587
            },
            {
              "pred_index": 1,
              "gt_index": 1,
              "accepted": true,
              "type_mismatch": 0.0,
              "axis_error_deg": 0.0,
              "origin_error": 0.4975351528047218,
              "cost": 0.4975351528047218
            },
            {
              "pred_index": 2,
              "gt_index": 2,
              "accepted": false,
              "type_mismatch": 0.0,
              "axis_error_deg": 90.0,
              "origin_error": 0.47749856316499467,
              "cost": 1.4774985631649946
            }
          ]
        },
        "structure": {
          "root_count": 1,
          "duplicate_ids": 0,
          "dangling_parent_count": 0,
          "self_parent_count": 0,
          "cycle_node_count": 0,
          "child_mismatch_count": 0,
          "tree_valid_proxy": 1,
          "node_count": 4,
          "thin_part_count": 4,
          "invalid_aabb_count": 0,
          "mean_pair_aabb_overlap_ratio": 0.831318346907338,
          "max_pair_aabb_overlap_ratio": 1.0,
          "mean_parent_child_aabb_gap": 0.0,
          "max_parent_child_aabb_gap": 0.0,
          "mean_axis_origin_to_child_aabb_distance": 0.0,
          "max_axis_origin_to_child_aabb_distance": 0.0
        }
      },
      "axis_calibrations": [
        {
          "node_id": 1,
          "name": "knob",
          "axis": [
            4.957299135578828e-05,
            0.0765491623286357,
            0.9970658069000776
          ],
          "nearest": {
            "sample": "major_appliances_100283",
            "category": "WashingMachine",
            "name": "knob"
          }
        },
        {
          "node_id": 3,
          "name": "button",
          "axis": [
            0.0,
            -1.0,
            0.0
          ],
          "nearest": {
            "sample": "electronics_103974",
            "category": "Printer",
            "name": "button"
          }
        }
      ],
      "assets": {
        "axis_proxy": "samples/small_appliances_103466/axis_knn_proxy.glb",
        "axis_mesh": "samples/small_appliances_103466/axis_knn_mesh_open.glb",
        "semantic_proxy": "samples/small_appliances_103466/semantic_proxy.glb",
        "reference_mesh": "samples/small_appliances_103466/reference_parts.glb"
      }
    }
  ]
}
