{
  "status": "scoped checks passed",
  "contact": {
    "nominal": {
      "status": "passed",
      "dt": 0.004166666666666667,
      "case": "dual_drawer",
      "friction": 0.6,
      "part_mass_kg": 0.10012282804687493,
      "centre_of_mass_m": [
        -8.459938295567734e-21,
        -8.459938295567734e-21,
        -0.002655540684766272
      ],
      "inertia_kg_m2": [
        2.51938927082329e-05,
        2.51938927082329e-05,
        3.286096962703339e-05
      ],
      "placement_tolerance_m": 0.001,
      "belt_registration": [
        -0.27264678478240967,
        0.35000643134117126,
        1.0419998168945312
      ],
      "max_inflight_xy_slip_m": 0.011653249152004719,
      "placements": [
        {
          "part": 0,
          "error_m": 0.00027291010835289075,
          "position": [
            0.3692711293697357,
            0.21903112530708313,
            1.0899999141693115
          ]
        },
        {
          "part": 1,
          "error_m": 0.0002704441885237387,
          "position": [
            0.44126856327056885,
            0.21903184056282043,
            1.0899999141693115
          ]
        },
        {
          "part": 2,
          "error_m": 0.00013211638844509116,
          "position": [
            0.36912980675697327,
            0.2910245954990387,
            1.0899999141693115
          ]
        },
        {
          "part": 3,
          "error_m": 0.00027237194489851326,
          "position": [
            0.44127127528190613,
            0.29102441668510437,
            1.0900001525878906
          ]
        }
      ],
      "failures": [],
      "scope": "Gravity, surface-velocity conveyor, finite-force dynamic jaw drives and frictional grasp/release. Robot wrist uses a finite-force Cartesian servo stand-in, not vendor motor dynamics; mass and inertia are calculated from model geometry and friction is assumed, not measured. Cylindrical collision proxies preserve external gripping surfaces but fill the central bore."
    },
    "refined": {
      "status": "passed",
      "dt": 0.0020833333333333333,
      "case": "dual_drawer",
      "friction": 0.6,
      "part_mass_kg": 0.10012282804687493,
      "centre_of_mass_m": [
        -8.459938295567734e-21,
        -8.459938295567734e-21,
        -0.002655540684766272
      ],
      "inertia_kg_m2": [
        2.51938927082329e-05,
        2.51938927082329e-05,
        3.286096962703339e-05
      ],
      "placement_tolerance_m": 0.001,
      "belt_registration": [
        -0.2726844847202301,
        0.3500189483165741,
        1.0419998168945312
      ],
      "max_inflight_xy_slip_m": 0.012953855097293854,
      "placements": [
        {
          "part": 0,
          "error_m": 7.144762355395467e-05,
          "position": [
            0.36907029151916504,
            0.2190127968788147,
            1.0899996757507324
          ]
        },
        {
          "part": 1,
          "error_m": 7.056181302485332e-05,
          "position": [
            0.4410695731639862,
            0.21901176869869232,
            1.089999794960022
          ]
        },
        {
          "part": 2,
          "error_m": 7.069517597414864e-05,
          "position": [
            0.3690699636936188,
            0.29101014137268066,
            1.089999794960022
          ]
        },
        {
          "part": 3,
          "error_m": 7.134235100441508e-05,
          "position": [
            0.441070556640625,
            0.2910105586051941,
            1.0899999141693115
          ]
        }
      ],
      "failures": [],
      "scope": "Gravity, surface-velocity conveyor, finite-force dynamic jaw drives and frictional grasp/release. Robot wrist uses a finite-force Cartesian servo stand-in, not vendor motor dynamics; mass and inertia are calculated from model geometry and friction is assumed, not measured. Cylindrical collision proxies preserve external gripping surfaces but fill the central bore."
    },
    "fast": {
      "status": "passed",
      "dt": 0.004166666666666667,
      "case": "faster_robot",
      "friction": 0.6,
      "part_mass_kg": 0.10012282804687493,
      "centre_of_mass_m": [
        -8.459938295567734e-21,
        -8.459938295567734e-21,
        -0.002655540684766272
      ],
      "inertia_kg_m2": [
        2.51938927082329e-05,
        2.51938927082329e-05,
        3.286096962703339e-05
      ],
      "placement_tolerance_m": 0.001,
      "belt_registration": [
        -0.27264678478240967,
        0.35000643134117126,
        1.0419998168945312
      ],
      "max_inflight_xy_slip_m": 0.01672164723277092,
      "placements": [
        {
          "part": 0,
          "error_m": 0.00027093242585021494,
          "position": [
            0.36926987767219543,
            0.21902388334274292,
            1.0899999141693115
          ]
        },
        {
          "part": 1,
          "error_m": 0.00027615589694567684,
          "position": [
            0.44127610325813293,
            0.21900539100170135,
            1.0899999141693115
          ]
        },
        {
          "part": 2,
          "error_m": 0.0001223390963693136,
          "position": [
            0.36912065744400024,
            0.2910202145576477,
            1.0899999141693115
          ]
        },
        {
          "part": 3,
          "error_m": 0.0001290682461900716,
          "position": [
            0.4411272704601288,
            0.291021466255188,
            1.089999794960022
          ]
        }
      ],
      "failures": [],
      "scope": "Gravity, surface-velocity conveyor, finite-force dynamic jaw drives and frictional grasp/release. Robot wrist uses a finite-force Cartesian servo stand-in, not vendor motor dynamics; mass and inertia are calculated from model geometry and friction is assumed, not measured. Cylindrical collision proxies preserve external gripping surfaces but fill the central bore."
    },
    "low_friction": {
      "status": "failed",
      "dt": 0.004166666666666667,
      "case": "dual_drawer",
      "friction": 0.01,
      "part_mass_kg": 0.10012282804687493,
      "centre_of_mass_m": [
        -8.459938295567734e-21,
        -8.459938295567734e-21,
        -0.002655540684766272
      ],
      "inertia_kg_m2": [
        2.51938927082329e-05,
        2.51938927082329e-05,
        3.286096962703339e-05
      ],
      "placement_tolerance_m": 0.001,
      "belt_registration": [
        -0.2743767499923706,
        0.3500194251537323,
        1.0419996976852417
      ],
      "max_inflight_xy_slip_m": 0.03602156415581703,
      "placements": [],
      "failures": [
        {
          "t": 1.9833333333333334,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 1.9875,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 1.9916666666666667,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 1.9958333333333333,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 2.0,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 2.0041666666666664,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 2.0083333333333333,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 2.0125,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 2.0166666666666666,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 2.0208333333333335,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        },
        {
          "t": 2.025,
          "part": 0,
          "reason": "not lifted by contact",
          "z": 1.0419996976852417
        }
      ],
      "scope": "Gravity, surface-velocity conveyor, finite-force dynamic jaw drives and frictional grasp/release. Robot wrist uses a finite-force Cartesian servo stand-in, not vendor motor dynamics; mass and inertia are calculated from model geometry and friction is assumed, not measured. Cylindrical collision proxies preserve external gripping surfaces but fill the central bore."
    }
  },
  "assembly": {
    "status": "passed",
    "mounting_gaps_m": {
      "camera_axis_error_at_part_top_m": 1.99102244739017e-05,
      "RobotPedestal/Plate -> Robot/Base": -7.450595695956963e-11,
      "Bench/Top -> Inspection/Plate": 1.7881385261375726e-10,
      "Bench/Top -> Inspection/Mast": 5.5134294907333015e-09,
      "Exchange/FixedRail0_0 -> bearing": 2.0116575072393061e-10,
      "Drawers/D0/SlideBearing0 -> tray": -4.023312794032563e-10,
      "Exchange/FixedRail0_1 -> bearing": 2.0116575072393061e-10,
      "Drawers/D0/SlideBearing1 -> tray": -4.023312794032563e-10,
      "Exchange/FixedRail1_0 -> bearing": 2.0116575072393061e-10,
      "Drawers/D1/SlideBearing0 -> tray": -4.023312794032563e-10,
      "Exchange/FixedRail1_1 -> bearing": 2.0116575072393061e-10,
      "Drawers/D1/SlideBearing1 -> tray": -4.023312794032563e-10,
      "fingers_above_locating_ring_m": 0.0050000000000003375,
      "screw_to_body_radial_gap_m": 0.0007999999999999986,
      "pocket_radial_clearance_m": 0.0010000000000000009
    },
    "sampled_tool_positions": 5401,
    "sampled_arm_positions": 2701,
    "minimum_axis_separation_m": 0.0020000003948807965,
    "tool_obstacle_pairs": [
      [
        "Robot/Shoulder/Elbow/Wrist/Gripper/Body",
        "Robot/Shoulder/Elbow/Wrist/Gripper/Slide",
        "Robot/Shoulder/Elbow/Wrist/Gripper/Finger_1",
        "Robot/Shoulder/Elbow/Wrist/Gripper/Finger1"
      ],
      [
        "Inspection/SmartCamera",
        "Inspection/Mast",
        "Inspection/Arm",
        "Inspection/AirValve",
        "Bench/Top",
        "Controls/Panel",
        "Conveyor/Guide_1",
        "Conveyor/Guide1",
        "Conveyor/Belt",
        "Inspection/Locator0",
        "Inspection/Locator1"
      ]
    ],
    "scope": "Named support interfaces, full drawer travel support, screw/ring/finger clearances and conservative tool AABB checks over the full 180-second scenario. Does not establish all-link CAD interference, mechanical strength, safety compliance or measured machine performance."
  },
  "timing": {
    "status": "passed",
    "cases": {
      "baseline": {
        "status": "passed",
        "samples": 2701,
        "parts": 24,
        "min_z": -0.278,
        "metrics": {
          "completed": 12,
          "total_parts": 24,
          "drain_seconds": 330.8,
          "horizon_seconds": 180.0,
          "tray_wait_seconds": 66.0,
          "exchange_requests": 3,
          "robot_motion_seconds": 90.0,
          "inspection_seconds": 24.0,
          "peak_queue": 13
        }
      },
      "faster_robot": {
        "status": "passed",
        "samples": 2701,
        "parts": 24,
        "min_z": -0.278,
        "metrics": {
          "completed": 16,
          "total_parts": 24,
          "drain_seconds": 278.96,
          "horizon_seconds": 180.0,
          "tray_wait_seconds": 66.0,
          "exchange_requests": 4,
          "robot_motion_seconds": 80.64,
          "inspection_seconds": 32.0,
          "peak_queue": 12
        }
      },
      "dual_drawer": {
        "status": "passed",
        "samples": 2701,
        "parts": 24,
        "min_z": -0.278,
        "metrics": {
          "completed": 19,
          "total_parts": 24,
          "drain_seconds": 220.8,
          "horizon_seconds": 180.0,
          "tray_wait_seconds": 0,
          "exchange_requests": 4,
          "robot_motion_seconds": 140.4,
          "inspection_seconds": 39.6,
          "peak_queue": 8
        }
      },
      "slow_inspection": {
        "status": "passed",
        "samples": 2701,
        "parts": 24,
        "min_z": -0.278,
        "metrics": {
          "completed": 11,
          "total_parts": 24,
          "drain_seconds": 364.8,
          "horizon_seconds": 180.0,
          "tray_wait_seconds": 0,
          "exchange_requests": 2,
          "robot_motion_seconds": 84.0,
          "inspection_seconds": 96.0,
          "peak_queue": 14
        }
      },
      "bursty_arrivals": {
        "status": "passed",
        "samples": 2701,
        "parts": 24,
        "min_z": -0.278,
        "metrics": {
          "completed": 19,
          "total_parts": 24,
          "drain_seconds": 220.8,
          "horizon_seconds": 180.0,
          "tray_wait_seconds": 0,
          "exchange_requests": 4,
          "robot_motion_seconds": 140.4,
          "inspection_seconds": 39.6,
          "peak_queue": 12
        }
      }
    },
    "scope": "Deterministic timing, inventory, robot limits, USD forward kinematics and authored poses. No vision, grasp-force, safety-function or physical-throughput validation."
  },
  "convergence": {
    "status": "passed",
    "convergence_position_differences_m": [
      0.00020167258204342058,
      0.00019999989114547837,
      6.156401717950545e-05,
      0.0002011966107566443
    ],
    "low_friction_negative_control": "failed to retain part as expected",
    "nominal_parts": 4,
    "fast_parts": 4,
    "scope": "Contact trials use an initially queued four-part batch, not the production arrival schedule. Geometry-derived mass; assumed friction; finite-force Cartesian wrist and jaw drives; not identified SCARA dynamics."
  }
}
