{
  "status": "PROCESS REVIEW: nominal geometry plus explicit fabrication and acceptance stages",
  "units": "mm",
  "case_dimensions_mm": {
    "width": 112,
    "length": 104,
    "height": 45.5
  },
  "assembly_envelope_mm": {
    "width": 112,
    "length_with_window": 105.6,
    "height_with_flat_carrier": 47.1,
    "window_front_projection": 1.6
  },
  "mass_budget": {
    "method": "Exact solid mesh volume times material density; excludes any arbitrary infill factor",
    "density_source_PA12": "https://hp3dprint.eu/downloads/HPPA12Datasheet.pdf",
    "cuff_manufactured_parts_g": 74.17994563899745,
    "hand_tile_housing_g": 2.196418495500481,
    "battery_g": 100,
    "main_PCB_g": 24,
    "electronics_and_fasteners_allowance_g": [
      20,
      35
    ],
    "estimated_cuff_total_g": [
      218.17994563899745,
      233.17994563899745
    ],
    "excluded": "Textile, external wrist strap webbing, tactile sheets and external wire harness; measure completed unit",
    "parts": [
      {
        "file": "pcb-clamp-pad-1.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 0.009199999999999956,
        "mass_g": 0.002759999999999987
      },
      {
        "file": "pcb-clamp-pad-2.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 0.009200000000000024,
        "mass_g": 0.0027600000000000072
      },
      {
        "file": "pcb-clamp-pad-3.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 0.009200000000000035,
        "mass_g": 0.0027600000000000103
      },
      {
        "file": "pcb-clamp-pad-4.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 0.009200000000000041,
        "mass_g": 0.0027600000000000124
      },
      {
        "file": "cable-grommet-1.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.1779695318880842,
        "mass_g": 0.21356343826570104
      },
      {
        "file": "cable-grommet-1-blanking-plug.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.044582900244619986,
        "mass_g": 0.05349948029354398
      },
      {
        "file": "cable-grommet-2.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.17796953188808423,
        "mass_g": 0.21356343826570107
      },
      {
        "file": "cable-grommet-2-blanking-plug.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.04458290024461999,
        "mass_g": 0.05349948029354399
      },
      {
        "file": "cable-grommet-3.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.1779695318880843,
        "mass_g": 0.21356343826570115
      },
      {
        "file": "cable-grommet-3-blanking-plug.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.044582900244619986,
        "mass_g": 0.05349948029354398
      },
      {
        "file": "cable-grommet-4.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.1779695318880843,
        "mass_g": 0.21356343826570115
      },
      {
        "file": "cable-grommet-4-blanking-plug.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.044582900244619986,
        "mass_g": 0.05349948029354398
      },
      {
        "file": "cable-grommet-5.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.17796953188808426,
        "mass_g": 0.2135634382657011
      },
      {
        "file": "cable-grommet-5-blanking-plug.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.044582900244619986,
        "mass_g": 0.05349948029354398
      },
      {
        "file": "cable-grommet-6.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.1846895318880846,
        "mass_g": 0.2216274382657015
      },
      {
        "file": "cable-grommet-6-blanking-plug.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.044582900244619916,
        "mass_g": 0.0534994802935439
      },
      {
        "file": "cable-grommet-7.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.1779695318880843,
        "mass_g": 0.21356343826570115
      },
      {
        "file": "cable-grommet-7-blanking-plug.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.04458290024461999,
        "mass_g": 0.05349948029354399
      },
      {
        "file": "usb-service-cap.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.34880000000000055,
        "mass_g": 0.41856000000000065
      },
      {
        "file": "sd-service-cap.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.7776000000000007,
        "mass_g": 0.9331200000000008
      },
      {
        "file": "battery-retaining-belt.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.9920000000000001,
        "mass_g": 1.1904000000000001
      },
      {
        "file": "battery-foam-pad-1.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 2.1149700000000005,
        "mass_g": 0.6344910000000001
      },
      {
        "file": "battery-foam-pad-2.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 2.1149700000000005,
        "mass_g": 0.6344910000000001
      },
      {
        "file": "button-plunger.stl",
        "material": "HP MJF PA12",
        "density_g_cm3": 1.01,
        "solid_volume_cm3": 0.196082897160725,
        "mass_g": 0.19804372613233226
      },
      {
        "file": "button-plunger-cap.stl",
        "material": "HP MJF PA12",
        "density_g_cm3": 1.01,
        "solid_volume_cm3": 0.1471496220280958,
        "mass_g": 0.14862111824837676
      },
      {
        "file": "button-floating-tip.stl",
        "material": "HP MJF PA12",
        "density_g_cm3": 1.01,
        "solid_volume_cm3": 0.02553346505585058,
        "mass_g": 0.025788799706409085
      },
      {
        "file": "button-silicone-diaphragm.stl",
        "material": "Silicone40A sheet,0.6mm",
        "density_g_cm3": 1.1,
        "solid_volume_cm3": 0.28333736184894515,
        "mass_g": 0.3116710980338397
      },
      {
        "file": "rgb-lightpipe.stl",
        "material": "Optical polycarbonate",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.06684876113652977,
        "mass_g": 0.08021851336383572
      },
      {
        "file": "camera-tpu-cradle-liner.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.05354549999999893,
        "mass_g": 0.0642545999999987
      },
      {
        "file": "camera-front-shim-1.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 0.00025000000000000066,
        "mass_g": 7.50000000000002e-05
      },
      {
        "file": "camera-front-shim-2.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 0.0002500000000000013,
        "mass_g": 7.500000000000039e-05
      },
      {
        "file": "camera-front-shim-3.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 0.00025000000000000066,
        "mass_g": 7.50000000000002e-05
      },
      {
        "file": "camera-front-shim-4.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 0.0002500000000000011,
        "mass_g": 7.500000000000032e-05
      },
      {
        "file": "camera-rear-retainer.stl",
        "material": "HP MJF PA12",
        "density_g_cm3": 1.01,
        "solid_volume_cm3": 0.4114970487869692,
        "mass_g": 0.4156120192748389
      },
      {
        "file": "camera-window-clear-pc.stl",
        "material": "Optical polycarbonate",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.3795223673560586,
        "mass_g": 0.4554268408272703
      },
      {
        "file": "camera-window-adhesive-ring.stl",
        "material": "3M VHB LSE-060WF acrylic foam",
        "density_g_cm3": 0.71,
        "solid_volume_cm3": 0.09174404334846886,
        "mass_g": 0.06513827077741288
      },
      {
        "file": "flat-tpu-textile-carrier.stl",
        "material": "TPU95A (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 3.01270106707096,
        "mass_g": 3.615241280485152
      },
      {
        "file": "lid-perimeter-gasket.stl",
        "material": "Closed-cell silicone foam (selected-density allowance)",
        "density_g_cm3": 0.3,
        "solid_volume_cm3": 0.35916691182307803,
        "mass_g": 0.10775007354692341
      },
      {
        "file": "hand-tile-tpu-pocket.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 1.3743699570240255,
        "mass_g": 1.6492439484288306
      },
      {
        "file": "hand-tile-tpu-cover.stl",
        "material": "TPU90A cast/precision (density allowance)",
        "density_g_cm3": 1.2,
        "solid_volume_cm3": 0.4559787892263753,
        "mass_g": 0.5471745470716504
      },
      {
        "file": "rigid-base.stl",
        "material": "HP MJF PA12",
        "density_g_cm3": 1.01,
        "solid_volume_cm3": 45.5351531315204,
        "mass_g": 45.990504662835605
      },
      {
        "file": "rigid-lid.stl",
        "material": "HP MJF PA12",
        "density_g_cm3": 1.01,
        "solid_volume_cm3": 16.833433867178943,
        "mass_g": 17.001768205850734
      }
    ]
  },
  "board": {
    "size_mm": [
      100,
      80,
      1.6
    ],
    "bottom_z_mm": 29,
    "top_z_mm": 30.6,
    "contact_supports_xy_mm": [
      [
        0,
        23
      ],
      [
        18,
        80
      ],
      [
        100,
        12
      ],
      [
        100,
        43
      ]
    ],
    "new_mounting_holes": false
  },
  "case": {
    "outer_x_mm": [
      -6,
      106
    ],
    "outer_y_mm": [
      -12,
      92
    ],
    "rigid_z_mm": [
      0,
      45.5
    ],
    "wall_mm": 1.3,
    "floor_mm": 1.3,
    "lid_panel_mm": 1.3,
    "lid_rim_mm": 2.0
  },
  "camera": {
    "source": "FH12 EDC3-150229-11 detaila; Camthink73.002.000035 outline",
    "connector_xy_mm": [
      90.0,
      23.95
    ],
    "mouth_y_mm": 19.40175,
    "insertion_depth_reference_mm": 4.4,
    "contact_bottom_above_PCB_mm": 0.55,
    "tail_tip_y_mm": 23.80175,
    "flex_center_z_mm": 31.3,
    "head_center_xyz_mm": [
      90,
      -7.215064692820415,
      23.05
    ],
    "head_xyz_size_mm": [
      8.5,
      6.6,
      8.5
    ],
    "head_rear_y_mm": -3.9150646928204154,
    "lens_front_y_mm": -10.515064692820415,
    "lens_normal": [
      0,
      -1,
      0
    ],
    "flex": {
      "head_length_mm": 8.5,
      "neck_straight_mm": 19.716814692820414,
      "neck_arc_mm": 6.283185307179586,
      "bend_radius_centerline_mm": 4,
      "tail_length_mm": 4,
      "total_flat_length_mm": 38.5,
      "neck_width_mm": 7,
      "neck_thickness_mm": 0.2,
      "tail_width_mm": 12.5,
      "tail_thickness_mm": 0.3,
      "twist_deg": 0,
      "contact_normal_at_tail": [
        0,
        0,
        -1
      ]
    },
    "optics": {
      "vendor_diagonal_FOV_deg": 120,
      "tested_circular_FOV_deg": 120,
      "lens_face_radius_mm": 2.98,
      "opaque_cone_hits_mm3": {},
      "window_clear_radius_mm": 8.5,
      "flat_window": {
        "disk_MPN": "RS PRO7698720",
        "disk_diameter_mm": 22,
        "disk_diameter_tolerance_mm": 0.2,
        "sheet_thickness_mm": 1.0,
        "sheet_receiving_thickness_mm": [
          0.9,
          1.1
        ],
        "bond_MPN": "3M VHB LSE-060WF",
        "bond_thickness_mm": 0.6,
        "bond_thickness_tolerance_percent": 15,
        "bond_ring_OD_ID_mm": [
          22,
          17
        ],
        "bond_land_diameter_mm": 24,
        "finished_land_flatness_mm_max": 0.2,
        "land_y_mm": -12,
        "land_y_tolerance_mm": 0.3,
        "radial_registration_mm_max": 0.3,
        "lens_depth_tolerance_mm": 0.2,
        "gasket_clearance_margin_mm": 0.4868761410050997,
        "tunnel_radial_extra_mm": 1.5,
        "tunnel_diameter_tolerance_mm": 0.3,
        "carrier_to_land_axial_tolerance_mm": 0.3,
        "tunnel_clearance_margin_mm": 0.18397459621556164,
        "window_edge_clearance_margin_mm": 1.0816202526793344,
        "nominal_front_projection_mm": 1.6,
        "maximum_front_projection_with_tolerances_mm": 2.09,
        "surface_process": "Dry/depowder PA12; locally flatten bond land; clean; two thin coats3M Primer94 with full drying between coats; bond at21\u201338C with100kPa ring pressure;72hour dwell. Coupon adhesion and splash acceptance qualify actual MJF surface."
      },
      "bend_inner_guide_radius_mm": 3.9,
      "worst_depth_optical_margin_mm": 0.18397459621556164
    }
  },
  "button": {
    "switch_height_mm": [
      4.1,
      4.5
    ],
    "switch_travel_mm": [
      0.2,
      0.4
    ],
    "factory_adjusted_rest_gap_mm": [
      0.05,
      0.25
    ],
    "cap_travel_mm": 0.8,
    "factory_measured_cap_travel_mm": [
      0.75,
      0.85
    ],
    "factory_measured_installed_spring_length_mm": [
      5.15,
      5.25
    ],
    "required_compliant_tip_travel_mm": 0.6,
    "tolerance_cases": [
      {
        "height_mm": 4.1,
        "switch_travel_mm": 0.2,
        "gap_mm": 0.05,
        "actuation_before_stop_margin_mm": 0.55,
        "spring_length_at_stop_mm": 4.65,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.550000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.49999999999999994
      },
      {
        "height_mm": 4.1,
        "switch_travel_mm": 0.2,
        "gap_mm": 0.25,
        "actuation_before_stop_margin_mm": 0.35000000000000003,
        "spring_length_at_stop_mm": 4.8500000000000005,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.750000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.3
      },
      {
        "height_mm": 4.1,
        "switch_travel_mm": 0.3,
        "gap_mm": 0.05,
        "actuation_before_stop_margin_mm": 0.45,
        "spring_length_at_stop_mm": 4.75,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.65,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.39999999999999997
      },
      {
        "height_mm": 4.1,
        "switch_travel_mm": 0.3,
        "gap_mm": 0.25,
        "actuation_before_stop_margin_mm": 0.25000000000000006,
        "spring_length_at_stop_mm": 4.95,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.8500000000000005,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.2
      },
      {
        "height_mm": 4.1,
        "switch_travel_mm": 0.4,
        "gap_mm": 0.05,
        "actuation_before_stop_margin_mm": 0.35,
        "spring_length_at_stop_mm": 4.8500000000000005,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.750000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.29999999999999993
      },
      {
        "height_mm": 4.1,
        "switch_travel_mm": 0.4,
        "gap_mm": 0.25,
        "actuation_before_stop_margin_mm": 0.15000000000000002,
        "spring_length_at_stop_mm": 5.050000000000001,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.950000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.09999999999999998
      },
      {
        "height_mm": 4.3,
        "switch_travel_mm": 0.2,
        "gap_mm": 0.05,
        "actuation_before_stop_margin_mm": 0.55,
        "spring_length_at_stop_mm": 4.65,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.550000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.49999999999999994
      },
      {
        "height_mm": 4.3,
        "switch_travel_mm": 0.2,
        "gap_mm": 0.25,
        "actuation_before_stop_margin_mm": 0.35000000000000003,
        "spring_length_at_stop_mm": 4.8500000000000005,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.750000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.3
      },
      {
        "height_mm": 4.3,
        "switch_travel_mm": 0.3,
        "gap_mm": 0.05,
        "actuation_before_stop_margin_mm": 0.45,
        "spring_length_at_stop_mm": 4.75,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.65,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.39999999999999997
      },
      {
        "height_mm": 4.3,
        "switch_travel_mm": 0.3,
        "gap_mm": 0.25,
        "actuation_before_stop_margin_mm": 0.25000000000000006,
        "spring_length_at_stop_mm": 4.95,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.8500000000000005,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.2
      },
      {
        "height_mm": 4.3,
        "switch_travel_mm": 0.4,
        "gap_mm": 0.05,
        "actuation_before_stop_margin_mm": 0.35,
        "spring_length_at_stop_mm": 4.8500000000000005,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.750000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.29999999999999993
      },
      {
        "height_mm": 4.3,
        "switch_travel_mm": 0.4,
        "gap_mm": 0.25,
        "actuation_before_stop_margin_mm": 0.15000000000000002,
        "spring_length_at_stop_mm": 5.050000000000001,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.950000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.09999999999999998
      },
      {
        "height_mm": 4.5,
        "switch_travel_mm": 0.2,
        "gap_mm": 0.05,
        "actuation_before_stop_margin_mm": 0.55,
        "spring_length_at_stop_mm": 4.65,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.550000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.49999999999999994
      },
      {
        "height_mm": 4.5,
        "switch_travel_mm": 0.2,
        "gap_mm": 0.25,
        "actuation_before_stop_margin_mm": 0.35000000000000003,
        "spring_length_at_stop_mm": 4.8500000000000005,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.750000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.3
      },
      {
        "height_mm": 4.5,
        "switch_travel_mm": 0.3,
        "gap_mm": 0.05,
        "actuation_before_stop_margin_mm": 0.45,
        "spring_length_at_stop_mm": 4.75,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.65,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.39999999999999997
      },
      {
        "height_mm": 4.5,
        "switch_travel_mm": 0.3,
        "gap_mm": 0.25,
        "actuation_before_stop_margin_mm": 0.25000000000000006,
        "spring_length_at_stop_mm": 4.95,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.8500000000000005,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.2
      },
      {
        "height_mm": 4.5,
        "switch_travel_mm": 0.4,
        "gap_mm": 0.05,
        "actuation_before_stop_margin_mm": 0.35,
        "spring_length_at_stop_mm": 4.8500000000000005,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.750000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.29999999999999993
      },
      {
        "height_mm": 4.5,
        "switch_travel_mm": 0.4,
        "gap_mm": 0.25,
        "actuation_before_stop_margin_mm": 0.15000000000000002,
        "spring_length_at_stop_mm": 5.050000000000001,
        "minimum_spring_length_with_stop_and_installation_tolerances_mm": 4.950000000000001,
        "minimum_actuation_margin_with_stop_tolerance_mm": 0.09999999999999998
      }
    ],
    "tested_poses": 324,
    "force_note": "Spring preload minimum 3.2 N exceeds datasheet maximumoperatingforce2.94N; maximum accepted contact force including stop/installation tolerances4.69 N requires switch overload validation.",
    "diaphragm": {
      "material": "Platinum-cured VMQ silicone",
      "hardness_Shore_A": [
        35,
        45
      ],
      "thickness_mm": 0.6,
      "thickness_tolerance_mm": 0.05,
      "bond": "Permabond2050; POP primer on silicone only; PA12 dried and abraded",
      "bond_source": "https://permabond.com/materials_bonded/how-to-bond-silicone/"
    },
    "spring_requirement": {
      "OD_mm": 3,
      "free_length_mm": 8,
      "installed_length_mm": 5.2,
      "rate_N_per_mm": [
        1.15,
        1.35
      ],
      "preload_N": [
        3.2,
        3.8
      ]
    },
    "spring_design": "SDP/SI S78CSYM030035008 catalog compression spring; receiving specification in button-spring-specification.md",
    "catalog_spring": {
      "MPN": "S78CSYM030035008",
      "manufacturer": "SDP/SI",
      "material": "Type302 stainless",
      "wire_diameter_mm": 0.35,
      "OD_mm": 3,
      "free_height_mm": 8,
      "solid_height_mm": 2.8,
      "rate_N_per_mm": 1.26,
      "ends": "squared and ground",
      "catalog_physical_page": 64,
      "catalog_source": "https://www.sdp-si.com/D815/D815-Metric-Section10-Hardware.pdf",
      "nominal_force_at_5_2mm_N": 3.528,
      "nominal_force_at_4_65mm_N": 4.221,
      "receiving_force_at_5_2mm_N": [
        3.2,
        3.8
      ],
      "receiving_rate_N_per_mm": [
        1.15,
        1.35
      ],
      "receiving_force_at_4_65mm_N_max": 4.55,
      "receiving_force_at_4_55mm_N_max": 4.69,
      "receiving_OD_mm_max": 3.1,
      "receiving_solid_height_mm_max": 2.9
    },
    "commissioning": "Finish tip nose to0.15mm nominal released gap; verify0.05mm minimum and0.25mm maximum with feelers against mounted switch; measure stop0.80\u00b10.05mm and installed spring length5.20\u00b10.05mm; verify released continuity and actuation before hard-stop."
  },
  "rf": {
    "antenna_only_exemption": "U_MCU module contains its own antenna",
    "antenna_reference_overlap_mm3": 371.9169999999987,
    "other_conductive_overlap_mm3": {}
  },
  "package_height_evidence": {
    "file": "height-evidence/merged-package-heights.json",
    "sha256": "b67825312582673343de6b8c8b3df3bafb388afc4183730f823d71e8c7cda0b0",
    "former_generic_instances_resolved": 545,
    "remaining_generic_instances": 0,
    "assembly_allowance_mm": 0.2
  },
  "manufactured_component_test_count": 23562,
  "manufactured_pair_test_count": 861,
  "all_component_count": 561,
  "contact_interfaces": [
    {
      "a": "rigid-base.stl",
      "b": "PCB",
      "surface": "pad 1 at Z29",
      "nominal_gap_mm": 0
    },
    {
      "a": "pcb-clamp-pad-1.stl",
      "b": "PCB",
      "surface": "Z30.6",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-lid.stl",
      "b": "pcb-clamp-pad-1.stl",
      "surface": "Z31.1 bonded pad",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "PCB",
      "surface": "pad 2 at Z29",
      "nominal_gap_mm": 0
    },
    {
      "a": "pcb-clamp-pad-2.stl",
      "b": "PCB",
      "surface": "Z30.6",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-lid.stl",
      "b": "pcb-clamp-pad-2.stl",
      "surface": "Z31.1 bonded pad",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "PCB",
      "surface": "pad 3 at Z29",
      "nominal_gap_mm": 0
    },
    {
      "a": "pcb-clamp-pad-3.stl",
      "b": "PCB",
      "surface": "Z30.6",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-lid.stl",
      "b": "pcb-clamp-pad-3.stl",
      "surface": "Z31.1 bonded pad",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "PCB",
      "surface": "pad 4 at Z29",
      "nominal_gap_mm": 0
    },
    {
      "a": "pcb-clamp-pad-4.stl",
      "b": "PCB",
      "surface": "Z30.6",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-lid.stl",
      "b": "pcb-clamp-pad-4.stl",
      "surface": "Z31.1 bonded pad",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "cable-grommet-1.stl",
      "surface": "stepped flange pocket; lid captures upper edge",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "cable-grommet-2.stl",
      "surface": "stepped flange pocket; lid captures upper edge",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "cable-grommet-3.stl",
      "surface": "stepped flange pocket; lid captures upper edge",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "cable-grommet-4.stl",
      "surface": "stepped flange pocket; lid captures upper edge",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "cable-grommet-5.stl",
      "surface": "stepped flange pocket; lid captures upper edge",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "cable-grommet-6.stl",
      "surface": "stepped flange pocket; lid captures upper edge",
      "nominal_gap_mm": 0
    },
    {
      "a": "rigid-base.stl",
      "b": "cable-grommet-7.stl",
      "surface": "stepped flange pocket; lid captures upper edge",
      "nominal_gap_mm": 0
    }
  ],
  "blanket_pair_exemptions": [],
  "bounded_compression_interfaces": {
    "pcb-clamp-pad-1.stl / rigid-lid.stl": {
      "actual_overlap_mm3": 3.4499999999999535,
      "bounded_compression_overlap_mm3": 3.44999999999995,
      "compression_mm": 0.3,
      "free_thickness_mm": 0.8,
      "installed_thickness_mm": 0.5
    },
    "pcb-clamp-pad-2.stl / rigid-lid.stl": {
      "actual_overlap_mm3": 3.449999999999976,
      "bounded_compression_overlap_mm3": 3.449999999999978,
      "compression_mm": 0.3,
      "free_thickness_mm": 0.8,
      "installed_thickness_mm": 0.5
    },
    "pcb-clamp-pad-3.stl / rigid-lid.stl": {
      "actual_overlap_mm3": 3.449999999999986,
      "bounded_compression_overlap_mm3": 3.449999999999986,
      "compression_mm": 0.3,
      "free_thickness_mm": 0.8,
      "installed_thickness_mm": 0.5
    },
    "pcb-clamp-pad-4.stl / rigid-lid.stl": {
      "actual_overlap_mm3": 3.449999999999986,
      "bounded_compression_overlap_mm3": 3.449999999999986,
      "compression_mm": 0.3,
      "free_thickness_mm": 0.8,
      "installed_thickness_mm": 0.5
    },
    "lid-perimeter-gasket.stl / rigid-lid.stl": {
      "actual_overlap_mm3": 81.97522264653168,
      "bounded_compression_overlap_mm3": 81.97522264653185,
      "compression_mm": 0.2,
      "free_thickness_mm": 0.8,
      "installed_thickness_mm": 0.6
    }
  },
  "hand_tile": {
    "board_mm": [
      16,
      16,
      0.8
    ],
    "housing_mm": [
      31,
      22,
      7.4
    ],
    "assembly_drawing_offset_mm": [
      140,
      0,
      0
    ],
    "component_envelopes_checked": 7,
    "marking": "Arrow points distally along third metacarpal",
    "attachment": "Four1.6mm sewing holes in TPU flanges; stitched to textile; snap-fit removable cover",
    "cable_exit": "2.6mm split bore; dress cable toward wrist and secure textile strain-relief loop"
  },
  "numeric_failures": {
    "mated_connector_board_collision": {},
    "manufactured_pair_collisions": {},
    "manufactured_vs_all_components": {},
    "manufactured_vs_reference": {},
    "camera_vs_board_and_components": {},
    "opaque_optical_cone_hits": {},
    "rf_conductive_hits": {},
    "fastener_fit_hits": {},
    "button_full_sweep_hits": {},
    "wire_service_envelopes": {},
    "invalid_or_disconnected_solids": {},
    "hand_tile_fit": {},
    "button_tip_tolerance_sweep": {}
  },
  "geometry_pass": true,
  "failed_groups": [],
  "solids": {
    "pcb-clamp-pad-1.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 9.199999999999957,
      "bounds_mm": [
        -1.5,
        20.5,
        30.6,
        0.7999999999999999,
        25.5,
        31.4
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 9.199999999999957,
          "bounds_mm": [
            -1.5,
            20.5,
            30.6,
            0.7999999999999999,
            25.5,
            31.4
          ]
        }
      ]
    },
    "pcb-clamp-pad-2.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 9.200000000000024,
      "bounds_mm": [
        15.5,
        79.19999999999999,
        30.6,
        20.5,
        81.5,
        31.4
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 9.200000000000024,
          "bounds_mm": [
            15.5,
            79.19999999999999,
            30.6,
            20.5,
            81.5,
            31.4
          ]
        }
      ]
    },
    "pcb-clamp-pad-3.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 9.200000000000035,
      "bounds_mm": [
        99.19999999999999,
        9.5,
        30.6,
        101.5,
        14.5,
        31.4
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 9.200000000000035,
          "bounds_mm": [
            99.19999999999999,
            9.5,
            30.6,
            101.5,
            14.5,
            31.4
          ]
        }
      ]
    },
    "pcb-clamp-pad-4.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 9.200000000000042,
      "bounds_mm": [
        99.19999999999999,
        40.5,
        30.6,
        101.5,
        45.5,
        31.4
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 9.200000000000042,
          "bounds_mm": [
            99.19999999999999,
            40.5,
            30.6,
            101.5,
            45.5,
            31.4
          ]
        }
      ]
    },
    "cable-grommet-1.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 177.9695318880842,
      "bounds_mm": [
        5.0,
        -12.0,
        34.5,
        17.0,
        -9.799999999999999,
        43.5
      ],
      "triangle_count": 316,
      "pieces": [
        {
          "volume_mm3": 177.9695318880842,
          "bounds_mm": [
            5.0,
            -12.0,
            34.5,
            17.0,
            -9.799999999999999,
            43.5
          ]
        }
      ]
    },
    "cable-grommet-1-blanking-plug.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 44.582900244619985,
      "bounds_mm": [
        8.2,
        -12.0,
        36.7,
        13.8,
        -9.0,
        42.3
      ],
      "triangle_count": 508,
      "pieces": [
        {
          "volume_mm3": 44.582900244619985,
          "bounds_mm": [
            8.2,
            -12.0,
            36.7,
            13.8,
            -9.0,
            42.3
          ]
        }
      ]
    },
    "cable-grommet-2.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 177.96953188808422,
      "bounds_mm": [
        22.0,
        -12.0,
        34.5,
        34.0,
        -9.799999999999999,
        43.5
      ],
      "triangle_count": 316,
      "pieces": [
        {
          "volume_mm3": 177.96953188808422,
          "bounds_mm": [
            22.0,
            -12.0,
            34.5,
            34.0,
            -9.799999999999999,
            43.5
          ]
        }
      ]
    },
    "cable-grommet-2-blanking-plug.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 44.58290024461999,
      "bounds_mm": [
        25.2,
        -12.0,
        36.7,
        30.8,
        -9.0,
        42.3
      ],
      "triangle_count": 508,
      "pieces": [
        {
          "volume_mm3": 44.58290024461999,
          "bounds_mm": [
            25.2,
            -12.0,
            36.7,
            30.8,
            -9.0,
            42.3
          ]
        }
      ]
    },
    "cable-grommet-3.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 177.96953188808428,
      "bounds_mm": [
        39.0,
        -12.0,
        34.5,
        51.0,
        -9.799999999999999,
        43.5
      ],
      "triangle_count": 316,
      "pieces": [
        {
          "volume_mm3": 177.96953188808428,
          "bounds_mm": [
            39.0,
            -12.0,
            34.5,
            51.0,
            -9.799999999999999,
            43.5
          ]
        }
      ]
    },
    "cable-grommet-3-blanking-plug.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 44.582900244619985,
      "bounds_mm": [
        42.2,
        -12.0,
        36.7,
        47.8,
        -9.0,
        42.3
      ],
      "triangle_count": 508,
      "pieces": [
        {
          "volume_mm3": 44.582900244619985,
          "bounds_mm": [
            42.2,
            -12.0,
            36.7,
            47.8,
            -9.0,
            42.3
          ]
        }
      ]
    },
    "cable-grommet-4.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 177.96953188808428,
      "bounds_mm": [
        56.0,
        -12.0,
        34.5,
        68.0,
        -9.799999999999999,
        43.5
      ],
      "triangle_count": 316,
      "pieces": [
        {
          "volume_mm3": 177.96953188808428,
          "bounds_mm": [
            56.0,
            -12.0,
            34.5,
            68.0,
            -9.799999999999999,
            43.5
          ]
        }
      ]
    },
    "cable-grommet-4-blanking-plug.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 44.582900244619985,
      "bounds_mm": [
        59.2,
        -12.0,
        36.7,
        64.8,
        -9.0,
        42.3
      ],
      "triangle_count": 508,
      "pieces": [
        {
          "volume_mm3": 44.582900244619985,
          "bounds_mm": [
            59.2,
            -12.0,
            36.7,
            64.8,
            -9.0,
            42.3
          ]
        }
      ]
    },
    "cable-grommet-5.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 177.96953188808425,
      "bounds_mm": [
        73.0,
        -12.0,
        34.5,
        85.0,
        -9.799999999999999,
        43.5
      ],
      "triangle_count": 316,
      "pieces": [
        {
          "volume_mm3": 177.96953188808425,
          "bounds_mm": [
            73.0,
            -12.0,
            34.5,
            85.0,
            -9.799999999999999,
            43.5
          ]
        }
      ]
    },
    "cable-grommet-5-blanking-plug.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 44.582900244619985,
      "bounds_mm": [
        76.2,
        -12.0,
        36.7,
        81.8,
        -9.0,
        42.3
      ],
      "triangle_count": 508,
      "pieces": [
        {
          "volume_mm3": 44.582900244619985,
          "bounds_mm": [
            76.2,
            -12.0,
            36.7,
            81.8,
            -9.0,
            42.3
          ]
        }
      ]
    },
    "cable-grommet-6.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 184.6895318880846,
      "bounds_mm": [
        103.8,
        -1.0,
        33.5,
        106.0,
        11.0,
        42.5
      ],
      "triangle_count": 304,
      "pieces": [
        {
          "volume_mm3": 184.6895318880846,
          "bounds_mm": [
            103.8,
            -1.0,
            33.5,
            106.0,
            11.0,
            42.5
          ]
        }
      ]
    },
    "cable-grommet-6-blanking-plug.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 44.582900244619914,
      "bounds_mm": [
        103.0,
        2.2,
        35.7,
        106.0,
        7.8,
        41.3
      ],
      "triangle_count": 508,
      "pieces": [
        {
          "volume_mm3": 44.582900244619914,
          "bounds_mm": [
            103.0,
            2.2,
            35.7,
            106.0,
            7.8,
            41.3
          ]
        }
      ]
    },
    "cable-grommet-7.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 177.96953188808428,
      "bounds_mm": [
        -6.0,
        45.0,
        34.5,
        -3.799999999999999,
        57.0,
        43.5
      ],
      "triangle_count": 316,
      "pieces": [
        {
          "volume_mm3": 177.96953188808428,
          "bounds_mm": [
            -6.0,
            45.0,
            34.5,
            -3.799999999999999,
            57.0,
            43.5
          ]
        }
      ]
    },
    "cable-grommet-7-blanking-plug.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 44.58290024461999,
      "bounds_mm": [
        -6.0,
        48.2,
        36.7,
        -3.0,
        53.8,
        42.3
      ],
      "triangle_count": 508,
      "pieces": [
        {
          "volume_mm3": 44.58290024461999,
          "bounds_mm": [
            -6.0,
            48.2,
            36.7,
            -3.0,
            53.8,
            42.3
          ]
        }
      ]
    },
    "usb-service-cap.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 348.8000000000006,
      "bounds_mm": [
        103.0,
        46.5,
        28.200000000000003,
        106.0,
        61.5,
        38.2
      ],
      "triangle_count": 28,
      "pieces": [
        {
          "volume_mm3": 348.8000000000006,
          "bounds_mm": [
            103.0,
            46.5,
            28.200000000000003,
            106.0,
            61.5,
            38.2
          ]
        }
      ]
    },
    "sd-service-cap.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 777.6000000000007,
      "bounds_mm": [
        41.0,
        89.0,
        27.5,
        67.0,
        92.0,
        39.5
      ],
      "triangle_count": 28,
      "pieces": [
        {
          "volume_mm3": 777.6000000000007,
          "bounds_mm": [
            41.0,
            89.0,
            27.5,
            67.0,
            92.0,
            39.5
          ]
        }
      ]
    },
    "battery-retaining-belt.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 992.0000000000001,
      "bounds_mm": [
        44.0,
        19.0,
        2.0,
        52.0,
        60.0,
        25.0
      ],
      "triangle_count": 32,
      "pieces": [
        {
          "volume_mm3": 992.0000000000001,
          "bounds_mm": [
            44.0,
            19.0,
            2.0,
            52.0,
            60.0,
            25.0
          ]
        }
      ]
    },
    "battery-foam-pad-1.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 2114.9700000000003,
      "bounds_mm": [
        12.0,
        20.0,
        1.2999999999999998,
        43.9,
        59.0,
        3.0
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 2114.9700000000003,
          "bounds_mm": [
            12.0,
            20.0,
            1.2999999999999998,
            43.9,
            59.0,
            3.0
          ]
        }
      ]
    },
    "battery-foam-pad-2.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 2114.9700000000003,
      "bounds_mm": [
        52.1,
        20.0,
        1.2999999999999998,
        84.0,
        59.0,
        3.0
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 2114.9700000000003,
          "bounds_mm": [
            52.1,
            20.0,
            1.2999999999999998,
            84.0,
            59.0,
            3.0
          ]
        }
      ]
    },
    "button-plunger.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 196.082897160725,
      "bounds_mm": [
        67.0,
        71.0,
        36.699999999999996,
        77.0,
        81.0,
        43.9
      ],
      "triangle_count": 1256,
      "pieces": [
        {
          "volume_mm3": 196.082897160725,
          "bounds_mm": [
            67.0,
            71.0,
            36.699999999999996,
            77.0,
            81.0,
            43.9
          ]
        }
      ]
    },
    "button-plunger-cap.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 147.14962202809582,
      "bounds_mm": [
        67.0,
        69.0,
        39.9,
        77.0,
        83.0,
        44.9
      ],
      "triangle_count": 632,
      "pieces": [
        {
          "volume_mm3": 147.14962202809582,
          "bounds_mm": [
            67.0,
            69.0,
            39.9,
            77.0,
            83.0,
            44.9
          ]
        }
      ]
    },
    "button-floating-tip.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 25.53346505585058,
      "bounds_mm": [
        70.0,
        74.0,
        35.05,
        74.0,
        78.0,
        38.7
      ],
      "triangle_count": 508,
      "pieces": [
        {
          "volume_mm3": 25.53346505585058,
          "bounds_mm": [
            70.0,
            74.0,
            35.05,
            74.0,
            78.0,
            38.7
          ]
        }
      ]
    },
    "button-silicone-diaphragm.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 283.33736184894514,
      "bounds_mm": [
        62.0,
        64.0,
        44.900000000000006,
        82.0,
        88.0,
        45.5
      ],
      "triangle_count": 406,
      "pieces": [
        {
          "volume_mm3": 283.33736184894514,
          "bounds_mm": [
            62.0,
            64.0,
            44.900000000000006,
            82.0,
            88.0,
            45.5
          ]
        }
      ]
    },
    "rgb-lightpipe.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 66.84876113652976,
      "bounds_mm": [
        58.0,
        74.0,
        31.6,
        65.65,
        78.0,
        45.5
      ],
      "triangle_count": 946,
      "pieces": [
        {
          "volume_mm3": 66.84876113652976,
          "bounds_mm": [
            58.0,
            74.0,
            31.6,
            65.65,
            78.0,
            45.5
          ]
        }
      ]
    },
    "camera-tpu-cradle-liner.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 53.545499999998924,
      "bounds_mm": [
        85.55,
        -10.515064692820415,
        18.6,
        94.45,
        -3.6650646928204154,
        27.3
      ],
      "triangle_count": 44,
      "pieces": [
        {
          "volume_mm3": 53.545499999998924,
          "bounds_mm": [
            85.55,
            -10.515064692820415,
            18.6,
            94.45,
            -3.6650646928204154,
            27.3
          ]
        }
      ]
    },
    "camera-front-shim-1.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 0.25000000000000067,
      "bounds_mm": [
        85.8,
        -10.765064692820415,
        18.85,
        86.8,
        -10.515064692820415,
        19.85
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 0.25000000000000067,
          "bounds_mm": [
            85.8,
            -10.765064692820415,
            18.85,
            86.8,
            -10.515064692820415,
            19.85
          ]
        }
      ]
    },
    "camera-front-shim-2.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 0.25000000000000133,
      "bounds_mm": [
        85.8,
        -10.765064692820415,
        26.25,
        86.8,
        -10.515064692820415,
        27.25
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 0.25000000000000133,
          "bounds_mm": [
            85.8,
            -10.765064692820415,
            26.25,
            86.8,
            -10.515064692820415,
            27.25
          ]
        }
      ]
    },
    "camera-front-shim-3.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 0.25000000000000067,
      "bounds_mm": [
        93.2,
        -10.765064692820415,
        18.85,
        94.2,
        -10.515064692820415,
        19.85
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 0.25000000000000067,
          "bounds_mm": [
            93.2,
            -10.765064692820415,
            18.85,
            94.2,
            -10.515064692820415,
            19.85
          ]
        }
      ]
    },
    "camera-front-shim-4.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 0.2500000000000011,
      "bounds_mm": [
        93.2,
        -10.765064692820415,
        26.25,
        94.2,
        -10.515064692820415,
        27.25
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 0.2500000000000011,
          "bounds_mm": [
            93.2,
            -10.765064692820415,
            26.25,
            94.2,
            -10.515064692820415,
            27.25
          ]
        }
      ]
    },
    "camera-rear-retainer.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 411.4970487869692,
      "bounds_mm": [
        77.5,
        -3.8150646928204153,
        17.6,
        102.5,
        -0.1499999999999999,
        31.19262541270174
      ],
      "triangle_count": 840,
      "pieces": [
        {
          "volume_mm3": 411.4970487869692,
          "bounds_mm": [
            77.5,
            -3.8150646928204153,
            17.6,
            102.5,
            -0.1499999999999999,
            31.19262541270174
          ]
        }
      ]
    },
    "camera-window-clear-pc.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 379.5223673560586,
      "bounds_mm": [
        79.0,
        -13.6,
        12.05,
        101.0,
        -12.6,
        34.05
      ],
      "triangle_count": 252,
      "pieces": [
        {
          "volume_mm3": 379.5223673560586,
          "bounds_mm": [
            79.0,
            -13.6,
            12.05,
            101.0,
            -12.6,
            34.05
          ]
        }
      ]
    },
    "camera-window-adhesive-ring.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 91.74404334846886,
      "bounds_mm": [
        79.0,
        -12.600000000000001,
        12.05,
        101.0,
        -12.0,
        34.05
      ],
      "triangle_count": 512,
      "pieces": [
        {
          "volume_mm3": 91.74404334846886,
          "bounds_mm": [
            79.0,
            -12.600000000000001,
            12.05,
            101.0,
            -12.0,
            34.05
          ]
        }
      ]
    },
    "flat-tpu-textile-carrier.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 3012.70106707096,
      "bounds_mm": [
        12.0,
        -12.0,
        -1.6,
        88.0,
        92.0,
        3.2
      ],
      "triangle_count": 3942,
      "pieces": [
        {
          "volume_mm3": 3012.70106707096,
          "bounds_mm": [
            12.0,
            -12.0,
            -1.6,
            88.0,
            92.0,
            3.2
          ]
        }
      ]
    },
    "lid-perimeter-gasket.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 359.166911823078,
      "bounds_mm": [
        -5.5,
        -11.5,
        42.9,
        105.5,
        91.5,
        43.699999999999996
      ],
      "triangle_count": 562,
      "pieces": [
        {
          "volume_mm3": 359.166911823078,
          "bounds_mm": [
            -5.5,
            -11.5,
            42.9,
            105.5,
            91.5,
            43.699999999999996
          ]
        }
      ]
    },
    "hand-tile-tpu-pocket.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 1374.3699570240256,
      "bounds_mm": [
        132.5,
        -2.0,
        0.0,
        163.5,
        20.0,
        6.0
      ],
      "triangle_count": 2806,
      "pieces": [
        {
          "volume_mm3": 1374.3699570240256,
          "bounds_mm": [
            132.5,
            -2.0,
            0.0,
            163.5,
            20.0,
            6.0
          ]
        }
      ]
    },
    "hand-tile-tpu-cover.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 455.9787892263753,
      "bounds_mm": [
        138.0,
        -2.0,
        5.3,
        158.0,
        18.0,
        7.4
      ],
      "triangle_count": 494,
      "pieces": [
        {
          "volume_mm3": 455.9787892263753,
          "bounds_mm": [
            138.0,
            -2.0,
            5.3,
            158.0,
            18.0,
            7.4
          ]
        }
      ]
    },
    "rigid-base.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 45535.153131520405,
      "bounds_mm": [
        -6.0,
        -12.0,
        0.0,
        106.0,
        92.0,
        43.5
      ],
      "triangle_count": 16200,
      "pieces": [
        {
          "volume_mm3": 45535.153131520405,
          "bounds_mm": [
            -6.0,
            -12.0,
            0.0,
            106.0,
            92.0,
            43.5
          ]
        }
      ]
    },
    "rigid-lid.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 16833.433867178945,
      "bounds_mm": [
        -6.0,
        -12.0,
        31.1,
        106.0,
        92.0,
        45.5
      ],
      "triangle_count": 6440,
      "pieces": [
        {
          "volume_mm3": 16833.433867178945,
          "bounds_mm": [
            -6.0,
            -12.0,
            31.1,
            106.0,
            92.0,
            45.5
          ]
        }
      ]
    },
    "camera-module-envelope.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 476.8499999999999,
      "bounds_mm": [
        85.75,
        -10.515064692820415,
        18.8,
        94.25,
        -3.9150646928204154,
        27.3
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 476.8499999999999,
          "bounds_mm": [
            85.75,
            -10.515064692820415,
            18.8,
            94.25,
            -3.9150646928204154,
            27.3
          ]
        }
      ]
    },
    "camera-flex-envelope.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 51.39911687256051,
      "bounds_mm": [
        83.75,
        -4.015064692820415,
        27.3,
        96.25,
        23.80175,
        31.45
      ],
      "triangle_count": 540,
      "pieces": [
        {
          "volume_mm3": 51.39911687256051,
          "bounds_mm": [
            83.75,
            -4.015064692820415,
            27.3,
            96.25,
            23.80175,
            31.45
          ]
        }
      ]
    },
    "battery-envelope.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 58968.0,
      "bounds_mm": [
        12.0,
        20.0,
        3.0,
        84.0,
        59.0,
        24.0
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 58968.0,
          "bounds_mm": [
            12.0,
            20.0,
            3.0,
            84.0,
            59.0,
            24.0
          ]
        }
      ]
    },
    "battery-ntc-envelope.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 63.99999999999999,
      "bounds_mm": [
        24.0,
        21.0,
        24.0,
        32.0,
        25.0,
        26.0
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 63.99999999999999,
          "bounds_mm": [
            24.0,
            21.0,
            24.0,
            32.0,
            25.0,
            26.0
          ]
        }
      ]
    },
    "pcb-envelope.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 12800.000000000013,
      "bounds_mm": [
        0.0,
        0.0,
        29.0,
        100.0,
        80.0,
        30.6
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 12800.000000000013,
          "bounds_mm": [
            0.0,
            0.0,
            29.0,
            100.0,
            80.0,
            30.6
          ]
        }
      ]
    },
    "hand-tile-pcb-envelope.stl": {
      "status": "Error.NoError",
      "connected_solids": 1,
      "volume_mm3": 204.79999999999995,
      "bounds_mm": [
        140.0,
        0.0,
        0.9999999999999999,
        156.0,
        16.0,
        1.7999999999999998
      ],
      "triangle_count": 12,
      "pieces": [
        {
          "volume_mm3": 204.79999999999995,
          "bounds_mm": [
            140.0,
            0.0,
            0.9999999999999999,
            156.0,
            16.0,
            1.7999999999999998
          ]
        }
      ]
    }
  },
  "release_gates": [
    "Inspect SDP/SI S78CSYM030035008 spring against specified5.2mm load and rate; validate released-force and4.69N overload on PTS636SK43 lots; fit captured tip nose to actual switch height.",
    "Measure supplied camera tail insertion and lens-depth datum against manufacturer reference drawing; fit carrier shims before glue cure.",
    "Measure assembled component heights against documented package maxima plus0.20mm assembly allowance; confirm actual wire bend/bundle diameters.",
    "Validate TPU gland compression,25percent lid-gasket compression, bonded button diaphragm and window adhesive with an assembled dust/splash test.",
    "Verify printed dimensional coupons, PCB thickness clamp compression, strap retention load, thermal behavior and battery assembly on built hardware."
  ],
  "placement_sha256": "78b9603bf98ec5d4b9b2554ce17f34cf36ccb01b675c7084fea13e05bc0ad20f",
  "first_article_fabrication_ready": false,
  "unresolved_design_or_process_items": [
    "Obtain an accepted PA12 print-and-finish quote (broad shell faces1.3mm; local1.10mm lug wall/guide features need process-specific acceptance): aligned M2 holes/nut slots, camera datums, window seat and gasket faces need the specified local final dimensions; nominal MJF tolerance alone is insufficient.",
    "Confirm the small button print/sprue and finishing route, or price machined PA12 alternative. Set tip length against measured switch; inspect0.8mm diametral sliding clearances and finish spring-guide pin to<=2.05mm.",
    "Confirm a cast elastomer supplier for small glands/caps/tile parts. JLC FDM95A minimum30x30x15 and1.2mm walls do not cover these small thin features. Knife-split glands after casting with zero material removal.",
    "Confirm selected wire OD and allowed static R2.5mm bends for the PH/GH routing volumes; qualify remaining lead dressing. Battery lead route is bounded across undimensioned exits; direct leads require measured reach after crimp, otherwise use the exactR4 factory extension routes,35mm addedAWG22 per lead/5mm overlap, with assembler-qualified insulated joints and<=2mOhm per splice.",
    "Approve silicone foam grade and a measured compression/flatness plan for lid and PCB pads. Rear screw positions avoid RF and SD; polymer ribs stiffen the rear/left span, but seal-load uniformity across the longest113.2mm screw chord requires fixture/deflection acceptance.0.2mm gasket compression cannot be guaranteed by two as-printed mating faces.",
    "Quote the optical polycarbonate lightpipe and cut stock1mm PC window; prepare the flat PA12 bond land and apply specified3M Primer94/LSE060WF tape process. Full geometry/materials span several fabrication processes."
  ],
  "physical_acceptance_tests": [
    "Switch return/force/overload/cycle test after measured gap setting",
    "Cable pull and gland/diaphragm/window dust-splash tests",
    "PCB pad compression, strap pull, panel/drop, temperature and completed-system mass/fit measurements"
  ],
  "jlc_process": {
    "PA12_tolerance_below_100mm_mm": 0.3,
    "PA12_tolerance_above_100mm_percent": 0.4,
    "case_112mm_span_tolerance_mm": 0.448,
    "case_104mm_span_tolerance_mm": 0.416,
    "minimum_wall_mm": 1.0,
    "quote_preflight_general_wall_mm_strictly_greater_than": 1.2,
    "broad_shell_wall_selected_mm": 1.3,
    "minimum_escape_hole_mm": 2.5,
    "source": "https://jlc3dp.com/help/article/pa12-hp-nylon"
  },
  "dfm_revision": {
    "previous_commit": "5542e9e",
    "rigid_case_dimension_change_mm": [
      0,
      0,
      0
    ],
    "carrier_below_case_mm": 1.6,
    "previous_saddle_below_case_mm": 8,
    "assembly_height_excluding_textile_mm": 47.1,
    "previous_assembly_height_excluding_textile_mm": 53.5,
    "button_retaining_ledges_mm": 1.0,
    "button_sliding_diametral_clearances_mm": 0.8,
    "camera_lug_OD_mm": 7.6,
    "camera_nut_pocket_radial_wall_min_mm": 1.1,
    "nut_insertion_slot_width_mm": 5.3,
    "powder_escape_holes_mm": 2.8,
    "gland_split": "Knife cut after casting, zero material removal; CAD is closed assembled condition"
  },
  "harness": {
    "file": "harness-envelopes.json",
    "service_volumes_checked": 12,
    "wired_variant_removed_plugs": {
      "J_INDEX_wire_bends": "cable-grommet-1-blanking-plug.stl",
      "J_MIDDLE_wire_bends": "cable-grommet-2-blanking-plug.stl",
      "J_RING_wire_bends": "cable-grommet-3-blanking-plug.stl",
      "J_LITTLE_wire_bends": "cable-grommet-4-blanking-plug.stl",
      "J_THUMB_wire_bends": "cable-grommet-5-blanking-plug.stl",
      "J_IMU_CUFF_wire_bends": "cable-grommet-6-blanking-plug.stl",
      "J_PALM_HEEL_wire_bends": "cable-grommet-7-blanking-plug.stl"
    },
    "PH_wire_OD_max_mm": 1.5,
    "battery_connector": {
      "header": "43045-0200",
      "housing": "43025-0200",
      "contact": "43030-0007",
      "pin1_xy_mm": [
        4.1,
        66.25
      ],
      "peg_xy_mm": [
        4.1,
        70.57
      ],
      "PCB_edge_distance_mm": 9.43,
      "manufacturer_edge_distance_max_mm": 10.16,
      "edge_tolerance_allowance_mm": 0.2,
      "bare_header_max_height_mm": 9.27,
      "assembly_allowance_mm": 0.2,
      "mated_profile_max_height_mm": 11.26,
      "rear_skirt_bound_mm": {
        "x": [
          1.795,
          6.405
        ],
        "y": [
          80.55,
          83.85
        ],
        "z": [
          28.6,
          30.6
        ],
        "basis": "Conservative rear skirt bound outside PCB from note7; verify supplied housing falls within audited envelope"
      },
      "wire_exit_y_nominal_mm": 82.82,
      "wire_exit_y_drawing_tolerance_mm": 0.83,
      "wire_exit_y_assembly_allowance_mm": 0.2,
      "wire_exit_z_family_mm": [
        31.525,
        40.935
      ],
      "underdetermined_datum": "Wire centerlineZ and pack exitY/Z are bounded service families, not manufacturer dimensions",
      "wire_OD_max_mm": 1.85,
      "routing_axis_allowance_mm": 0.2,
      "minimum_reserved_centerline_bend_R_mm": 4,
      "external_path_length_range_mm": [
        54.668180422481306,
        61.509179878066575
      ],
      "stock_lead_mm": [
        65,
        75
      ],
      "fallback_minimum_effective_lead_mm": 95,
      "fallback_added_conductor_per_lead_mm": 35,
      "fallback_overlap_per_lead_mm": 5,
      "fallback_effective_gain_per_lead_mm": 30,
      "fallback_total_added_conductor_mm": 70,
      "fallback_splice_count": 2,
      "fallback_max_resistance_per_splice_mOhm": 2,
      "conservative_terminal_consumption_upper_bound_mm": 14.25,
      "strain_relief_slack_mm": 3,
      "fallback_external_path_length_range_mm": [
        62.273903599393364,
        74.17444783869539
      ],
      "fallback_worst_reach_margin_mm": 3.575552161304614,
      "direct_termination_acceptance": "Measured usable lead length after selected contact crimp must exceed measured routed length plus3mm strain-relief slack. Otherwise factory extension variant required.",
      "fallback": "Factory35mm AWG22 added per lead minus5mm overlap gives30mm effective extension; total nominal100mm; same43030-0007 contacts. Exact crimp consumption and pack exit datum remain assembly measurements."
    },
    "battery_splice_envelopes": {
      "variant": "Factory extension fallback only",
      "insulated_max_OD_mm": 4,
      "insulated_max_length_mm": 16,
      "centers_mm": [
        [
          6.5,
          63,
          14
        ],
        [
          10.5,
          67,
          17
        ]
      ]
    },
    "GH_wire_OD_max_mm": 0.7,
    "reserved_bend_centerline_R_mm": 2.5,
    "lid_fasteners_xy_mm": [
      [
        -2,
        -6
      ],
      [
        102,
        -6
      ],
      [
        24,
        86
      ],
      [
        36,
        86
      ]
    ],
    "rear_left_lid_ribs_mm": [
      2.6,
      1.3
    ],
    "rear_left_clamp_span_nominal_mm": 95.60334722173695,
    "adjacent_lid_screw_chords_mm": {
      "front": 104.0,
      "left": 95.60334722173695,
      "rear": 12.0,
      "right": 113.22543883774529
    },
    "gasket_edge_acceptance": "Measure installed gap0.60\u00b10.05mm along entire perimeter after fasteners tightened; local lid ribs support rear-left seal, print flatness and first-article compression test required",
    "variant_groups": {
      "direct": [
        "J_BAT_wire_service_family"
      ],
      "factory_extended": [
        "J_BAT_factory_extension_wire_1",
        "J_BAT_factory_extension_wire_2",
        "J_BAT_extension_splices"
      ]
    },
    "scope": "Variants are mutually exclusive; worst-clearance service family covers undimensioned exit heights; measured reach and assembler splice process acceptance remain explicit"
  }
}
