{
  "presentation": {
    "unit": "mm; render meshes scaled once by .001",
    "installed": "all source solids in preserved PCB datum",
    "poses": {
      "closed-front": {
        "translation_offsets_mm": {},
        "hatch_rotation_x_deg": 0,
        "hatch_pivot_mm": [
          -8,
          55,
          108
        ]
      },
      "hatch-open": {
        "translation_offsets_mm": {},
        "hatch_rotation_x_deg": -105,
        "hatch_pivot_mm": [
          -8,
          55,
          108
        ]
      },
      "exploded": {
        "translation_offsets_mm": {
          "left": [
            -48,
            0,
            0
          ],
          "right": [
            60,
            0,
            0
          ],
          "roof": [
            0,
            0,
            85
          ],
          "chamber": [
            -82,
            48,
            25
          ],
          "guard": [
            -82,
            48,
            45
          ],
          "rear": [
            110,
            85,
            0
          ],
          "rearfastener": [
            110,
            110,
            0
          ],
          "frontstrip": [
            0,
            -24,
            0
          ]
        },
        "hatch_rotation_x_deg": -105,
        "hatch_pivot_mm": [
          -8,
          55,
          108
        ]
      },
      "rear-installed": {
        "translation_offsets_mm": {},
        "hatch_rotation_x_deg": 0,
        "hatch_pivot_mm": [
          -8,
          55,
          108
        ]
      },
      "rear-service-open": {
        "translation_offsets_mm": {
          "rear": [
            110,
            85,
            0
          ],
          "rearfastener": [
            110,
            110,
            0
          ]
        },
        "hatch_rotation_x_deg": 0,
        "hatch_pivot_mm": [
          -8,
          55,
          108
        ]
      }
    },
    "cameras": {
      "closed-front": {
        "position_mm": [
          216.49838256835938,
          -356.654296875,
          285.9432678222656
        ],
        "target_mm": [
          0.0,
          0.5679912567138672,
          52.125003814697266
        ],
        "lens_mm": 52,
        "resolution": [
          1500,
          1200
        ]
      },
      "hatch-open": {
        "position_mm": [
          133.05641174316406,
          -309.89691162109375,
          444.1450500488281
        ],
        "target_mm": [
          0.0,
          0.5679912567138672,
          78.23994445800781
        ],
        "lens_mm": 52,
        "resolution": [
          1500,
          1200
        ]
      },
      "exploded": {
        "position_mm": [
          381.0943603515625,
          -536.1306762695312,
          466.52191162109375
        ],
        "target_mm": [
          29.50000762939453,
          44.0,
          86.79999542236328
        ],
        "lens_mm": 52,
        "resolution": [
          1500,
          1200
        ]
      },
      "rear-installed": {
        "position_mm": [
          144.891357421875,
          401.8055725097656,
          286.18023681640625
        ],
        "target_mm": [
          0.0,
          0.5679912567138672,
          52.125003814697266
        ],
        "lens_mm": 52,
        "resolution": [
          1500,
          1200
        ]
      },
      "rear-service-open": {
        "position_mm": [
          273.9932861328125,
          664.164794921875,
          408.3064270019531
        ],
        "target_mm": [
          53.500003814697266,
          53.5679931640625,
          52.125003814697266
        ],
        "lens_mm": 52,
        "resolution": [
          1500,
          1200
        ]
      }
    },
    "projected_points": {
      "closed-front": {
        "cap": [
          776.7354547977448,
          307.89828300476074
        ],
        "guide": [
          808.5522651672363,
          374.7685432434082
        ],
        "insert_top": [
          777.710884809494,
          156.02052211761475
        ],
        "socket": [
          752.4119317531586,
          516.605544090271
        ],
        "service": [
          907.5928330421448,
          444.91961002349854
        ],
        "fixed_disconnect": [
          686.1638277769089,
          539.3131971359253
        ],
        "J9J10": [
          722.7916717529297,
          892.1714186668396
        ],
        "service_entry": [
          776.6347825527191,
          535.5267763137817
        ],
        "service_aisle": [
          538.2436662912369,
          720.7196474075317
        ],
        "U1": [
          629.8924684524536,
          806.771993637085
        ],
        "warning": [
          774.5901346206665,
          275.86348056793213
        ]
      },
      "hatch-open": {
        "cap": [
          760.0162625312805,
          419.0124034881592
        ],
        "guide": [
          800.5516827106476,
          496.6557025909424
        ],
        "insert_top": [
          760.5528831481934,
          302.1547794342041
        ],
        "socket": [
          705.0999999046326,
          484.0869426727295
        ],
        "service": [
          863.8924062252045,
          452.7904987335205
        ],
        "fixed_disconnect": [
          648.353174328804,
          523.1750249862671
        ],
        "J9J10": [
          755.7991147041321,
          952.4687469005585
        ],
        "service_entry": [
          732.8819185495377,
          509.20393466949463
        ],
        "service_aisle": [
          561.006098985672,
          788.9870166778564
        ],
        "U1": [
          647.7573662996292,
          842.2589063644409
        ],
        "warning": [
          758.3861947059631,
          396.3526725769043
        ]
      },
      "exploded": {
        "cap": [
          631.79911673069,
          536.0640048980713
        ],
        "guide": [
          648.876428604126,
          580.2880525588989
        ],
        "insert_top": [
          629.1878968477249,
          449.1441249847412
        ],
        "socket": [
          632.7335983514786,
          646.9321489334106
        ],
        "service": [
          725.9982079267502,
          607.7760100364685
        ],
        "fixed_disconnect": [
          587.7842456102371,
          663.5148525238037
        ],
        "J9J10": [
          595.9489345550537,
          894.8753356933594
        ],
        "service_entry": [
          647.2966074943542,
          660.7654094696045
        ],
        "service_aisle": [
          486.3128364086151,
          788.3046269416809
        ],
        "U1": [
          544.0220832824707,
          841.4175152778625
        ],
        "warning": [
          629.6314895153046,
          517.8134679794312
        ]
      },
      "rear-installed": {
        "cap": [
          827.8254568576813,
          394.0577030181885
        ],
        "guide": [
          738.6245727539062,
          417.7438974380493
        ],
        "insert_top": [
          830.8262228965759,
          233.8482141494751
        ],
        "socket": [
          1100.7728576660156,
          853.2981991767883
        ],
        "service": [
          879.9745738506317,
          737.6350522041321
        ],
        "fixed_disconnect": [
          1089.9781286716461,
          794.9514627456665
        ],
        "J9J10": [
          606.6015958786011,
          678.6549210548401
        ],
        "service_entry": [
          1039.7448241710663,
          847.9312062263489
        ],
        "service_aisle": [
          848.7315773963928,
          615.7952427864075
        ],
        "U1": [
          786.9288325309753,
          716.936194896698
        ],
        "warning": [
          826.6558349132538,
          357.0403575897217
        ]
      },
      "rear-service-open": {
        "cap": [
          888.3309066295624,
          385.67333221435547
        ],
        "guide": [
          835.0338935852051,
          399.73225593566895
        ],
        "insert_top": [
          891.3977444171906,
          293.37029457092285
        ],
        "socket": [
          1048.280507326126,
          655.8202028274536
        ],
        "service": [
          919.8041260242462,
          582.4639320373535
        ],
        "fixed_disconnect": [
          1043.0949926376343,
          625.7047533988953
        ],
        "J9J10": [
          741.5487170219421,
          566.5132284164429
        ],
        "service_entry": [
          1012.4512910842896,
          653.0920386314392
        ],
        "service_aisle": [
          894.7276175022125,
          526.5037536621094
        ],
        "U1": [
          855.880469083786,
          590.0482177734375
        ],
        "warning": [
          887.8814578056335,
          364.0746831893921
        ],
        "panel_socket": [
          841.9752717018127,
          839.528238773346
        ]
      }
    }
  },
  "protected_tube_validation": {
    "scope": "PROVISIONAL geometry-only concept check. NOT safe-touch, thermal or physical-fit qualification.",
    "valid_solids": true,
    "solid_count": 132,
    "installed_bounds_mm": [
      [
        -80.0,
        -79.86401475093712,
        -14.4
      ],
      [
        80.0,
        81.0,
        118.5
      ]
    ],
    "pcb_bounds_mm": [
      [
        -50.0,
        -50.0,
        -1.29936
      ],
      [
        50.0,
        50.0,
        0.0
      ]
    ],
    "tube_body_z_mm": [
      85,
      106
    ],
    "cap_diameter_height_mm": [
      11,
      5
    ],
    "cap_z_mm": [
      106,
      111
    ],
    "guide_top_mm": 103,
    "cap_lower_edge_above_guide_mm": 3,
    "cap_top_above_guide_mm": 8,
    "exposed_cap_grip_band_mm": 5,
    "guide_inner_diameter_mm": 8.5,
    "tube_diameter_mm": 7.5,
    "nominal_guide_radial_clearance_mm": 0.5,
    "closed_hatch_inside_roof_z_mm": 115.5,
    "cap_to_closed_hatch_vertical_clearance_mm": 4.5,
    "guard_projection_overhang_past_hot_block_each_side_mm": 9.5,
    "deck_to_block_top_air_gap_mm": 2,
    "guide_sleeve_to_block_top_air_gap_mm": 0.5,
    "unshielded_top_projection_outside_bore_mm3": 0,
    "guard_vs_heater_intersection_mm3": 0.0,
    "guard_vs_sensor_intersection_mm3": 0.0,
    "guard_vs_illumination_intersection_mm3": 0.0,
    "optical_axis_z_mm": 87,
    "optical_proxy_top_mm": 92,
    "deck_underside_minus_optical_top_mm": 8,
    "optical_passage_diameter_mm": 3,
    "hatch_sweep_5deg_samples": [
      {
        "deg": 0,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 5,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 10,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 15,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 20,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 25,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 30,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 35,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 40,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 45,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 50,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 55,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 60,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 65,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 70,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 75,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 80,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 85,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 90,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 95,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 100,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      },
      {
        "deg": 105,
        "cap_mm3": 0.0,
        "tube_mm3": 0.0,
        "guard_mm3": 0.0,
        "roof_mm3": 0.0,
        "chamber_mm3": 0.0
      }
    ],
    "axial_insertion_1mm_samples": [
      {
        "lift_mm": 0,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 1,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 2,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 3,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 4,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 5,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 6,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 7,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 8,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 9,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 10,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 11,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 12,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 13,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 14,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 15,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 16,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 17,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 18,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 19,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 20,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 21,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 22,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 23,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 24,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 25,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 26,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 27,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 28,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 29,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 30,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 31,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 32,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 33,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 34,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 35,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 36,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 37,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 38,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 39,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      },
      {
        "lift_mm": 40,
        "guard_mm3": 0.0,
        "hatch_mm3": 0.0,
        "block_mm3": 0.0
      }
    ],
    "grip_corridor_diameter_height_mm": [
      26,
      40
    ],
    "grip_corridor_vs_open_hatch_mm3": 0.0,
    "grip_corridor_vs_roof_mm3": 0.0,
    "structure_pcb_intersection_mm3": 0.0,
    "conditional_connector_headroom_mm": 30,
    "warnings": [
      "Cap is a selected D11x5 envelope, not a sourced sealed tube specification",
      "Protective guide intended cold-touch but temperature unverified; no PETG thermal safety claim",
      "Finger/gripper envelope provisional; intended aids and actual cap need ergonomic testing",
      "Optical slots prove only a proxy passage, not spectral, stray-light, assay or real-part performance",
      "Hatch seam hinge latch and interlock not qualified",
      "Insertion and hinge checks are discrete samples, not certified continuous-motion clearance",
      "Exact mated harnesses, underside solder and final panel fastening remain open"
    ]
  },
  "rear_service_validation": {
    "revision": "v2c",
    "scope": "CONCEPT geometric approach only. No direct USB accessibility, physical reach or mating claim.",
    "no_legacy_service_extension_solids": true,
    "former_service_aperture_material_volume_mm3": 5280.0,
    "former_service_aperture_expected_full_volume_mm3": 5280,
    "rear_panel_size_mm": [
      154,
      3,
      112.1
    ],
    "rear_panel_bounds_mm": [
      [
        -77.0,
        72.0,
        -12.0
      ],
      [
        77.0,
        75.0,
        100.1
      ]
    ],
    "rear_panel_top_gap_to_roof_mm": 0.5,
    "rear_screw_count": 6,
    "driver_approach_tests": [
      {
        "head_center_mm": [
          -73,
          76,
          -5
        ],
        "axis": [
          0,
          1,
          0
        ],
        "clearance_proxy_diameter_mm": 10,
        "approach_length_mm": 40,
        "hits": []
      },
      {
        "head_center_mm": [
          -73,
          76,
          44
        ],
        "axis": [
          0,
          1,
          0
        ],
        "clearance_proxy_diameter_mm": 10,
        "approach_length_mm": 40,
        "hits": []
      },
      {
        "head_center_mm": [
          -73,
          76,
          93
        ],
        "axis": [
          0,
          1,
          0
        ],
        "clearance_proxy_diameter_mm": 10,
        "approach_length_mm": 40,
        "hits": []
      },
      {
        "head_center_mm": [
          73,
          76,
          -5
        ],
        "axis": [
          0,
          1,
          0
        ],
        "clearance_proxy_diameter_mm": 10,
        "approach_length_mm": 40,
        "hits": []
      },
      {
        "head_center_mm": [
          73,
          76,
          44
        ],
        "axis": [
          0,
          1,
          0
        ],
        "clearance_proxy_diameter_mm": 10,
        "approach_length_mm": 40,
        "hits": []
      },
      {
        "head_center_mm": [
          73,
          76,
          93
        ],
        "axis": [
          0,
          1,
          0
        ],
        "clearance_proxy_diameter_mm": 10,
        "approach_length_mm": 40,
        "hits": []
      }
    ],
    "normal_panel_withdrawal_samples": [
      {
        "dy_mm": 0,
        "hits": []
      },
      {
        "dy_mm": 5,
        "hits": []
      },
      {
        "dy_mm": 10,
        "hits": []
      },
      {
        "dy_mm": 15,
        "hits": []
      },
      {
        "dy_mm": 20,
        "hits": []
      },
      {
        "dy_mm": 25,
        "hits": []
      },
      {
        "dy_mm": 30,
        "hits": []
      },
      {
        "dy_mm": 35,
        "hits": []
      }
    ],
    "service_approach_tests": {
      "above_U1": {
        "centerline_mm": [
          [
            -37,
            80,
            25
          ],
          [
            -37,
            -30,
            25
          ],
          [
            -18,
            -22.476,
            25
          ]
        ],
        "diameter_mm": 10,
        "length_mm": 130.43552240585007,
        "hits": []
      },
      "above_J9": {
        "centerline_mm": [
          [
            -37,
            80,
            25
          ],
          [
            -37,
            -30,
            25
          ],
          [
            12.75,
            -35,
            25
          ],
          [
            12.75,
            -45.525,
            25
          ]
        ],
        "diameter_mm": 10,
        "length_mm": 170.5256249960938,
        "hits": []
      },
      "above_J10": {
        "centerline_mm": [
          [
            -37,
            80,
            25
          ],
          [
            -37,
            -30,
            25
          ],
          [
            29.75,
            -35,
            25
          ],
          [
            29.75,
            -45.525,
            25
          ]
        ],
        "diameter_mm": 10,
        "length_mm": 187.46200396641606,
        "hits": []
      }
    },
    "provisional_dc_pigtail_centerline_length_mm": 56.12755506942865,
    "dc_disconnect_fixed_center_mm": [
      -56,
      61,
      25
    ],
    "dc_disconnect_panel_center_mm": [
      -56,
      67,
      25
    ],
    "normal_disconnection_axis": [
      0,
      1,
      0
    ],
    "rear_open_presentation_after_disconnect_mm": [
      110,
      85,
      0
    ],
    "electronics_rear_headers_on_opposite_board_edge": true,
    "J9_J10_body_centers_mm": [
      [
        12.75,
        -45.525
      ],
      [
        29.75,
        -45.525
      ]
    ],
    "U1_placement_origin_mm": [
      -18,
      -22.476
    ],
    "U1_USB_proxy_region_mm": [
      -18,
      -46,
      4
    ],
    "rear_inner_face_to_USB_region_y_depth_mm": 118,
    "warnings": [
      "Remove external12V power and wait for full cooldown before panel service",
      "Internal coupler not selected; unplug it before full panel removal, never pull against J1",
      "Pigtail shown as slack route intent; bend radius, retention and usable withdrawal distance unqualified",
      "Approach cylinders end above circuits, not at verified connector mating faces",
      "Actual Pico USB jack face/axis/overmold and finger reach remain unverified; another panel may need removal",
      "Only selected component body proxies checked; full physical assembly may block approach",
      "Screw heads/holes/rails are representational, not final fastening or tool certification"
    ],
    "disconnected_rear_assembly_withdrawal_samples": [
      {
        "offset_mm": [
          0,
          0,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          5,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          10,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          15,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          20,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          25,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          30,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          35,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          40,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          45,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          50,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          55,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          60,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          65,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          70,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          75,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          80,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          0,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          10,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          20,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          30,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          40,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          50,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          60,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          70,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          80,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          90,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          100,
          85,
          0
        ],
        "hits": []
      },
      {
        "offset_mm": [
          110,
          85,
          0
        ],
        "hits": []
      }
    ]
  },
  "pixels": {
    "closed-front": {
      "mean": 78.26682849043232,
      "std": 21.957068464011893,
      "cut_off": false
    },
    "hatch-open": {
      "mean": 81.7986086995039,
      "std": 31.20184631721187,
      "cut_off": false
    },
    "exploded": {
      "mean": 75.09624202693125,
      "std": 20.679996558768888,
      "cut_off": false
    },
    "rear-installed": {
      "mean": 77.08746367824239,
      "std": 22.336706524497824,
      "cut_off": false
    },
    "rear-service-open": {
      "mean": 73.81762181077251,
      "std": 18.633066810174792,
      "cut_off": false
    },
    "rear-comparison": {
      "mean": 75.45254274450744,
      "std": 20.633293120986654,
      "cut_off": false
    }
  },
  "blender_source": "import bpy, json, math, os\nfrom mathutils import Vector, Matrix\nos.chdir('/root/work/concept-v2c')\nbpy.ops.wm.read_factory_settings(use_empty=True)\nscene=bpy.context.scene; scene.render.engine='BLENDER_EEVEE'\nscene.eevee.use_gtao=True; scene.eevee.gtao_distance=.015; scene.eevee.gtao_factor=1.15\nscene.eevee.taa_render_samples=96\nscene.render.resolution_x=1500;scene.render.resolution_y=1200;scene.render.resolution_percentage=100\nscene.world=bpy.data.worlds.new('World');scene.world.use_nodes=True\nscene.world.node_tree.nodes['Background'].inputs[0].default_value=(.075,.09,.11,1)\nscene.world.node_tree.nodes['Background'].inputs[1].default_value=.8\nscene.view_settings.view_transform='Standard';scene.view_settings.look='Medium High Contrast'\nscene.render.image_settings.file_format='PNG'\ncolors={'panel':(.23,.48,.58),'rail':(.17,.28,.32),'black':(.025,.032,.04),'metal':(.52,.57,.6),'pcb':(.035,.25,.12),'white':(.8,.8,.72),'blue':(.04,.23,.55),'red':(.65,.07,.04),'amber':(.83,.45,.035),'screen':(.005,.025,.035),'isolation':(.65,.58,.4)}\nmats={}\nfor name,c in colors.items():\n mat=bpy.data.materials.new(name);mat.use_nodes=True;p=mat.node_tree.nodes.get('Principled BSDF')\n p.inputs['Base Color'].default_value=(*c,1);p.inputs['Roughness'].default_value=.42\n p.inputs['Metallic'].default_value=.7 if name=='metal' else 0\n if name=='panel':\n  p.inputs['Alpha'].default_value=.18;mat.blend_method='BLEND';mat.use_screen_refraction=False;mat.show_transparent_back=False;mat.shadow_method='NONE'\n mats[name]=mat\nobjects=[]; data=json.load(open('geometry.json'))\nfor r in data:\n mesh=bpy.data.meshes.new(r['name']);mesh.from_pydata([[v*.001 for v in p] for p in r['vertices']],[],r['triangles']);mesh.update()\n ob=bpy.data.objects.new(r['name'],mesh);scene.collection.objects.link(ob);ob.data.materials.append(mats[r['material']]);ob['group']=r['group'];objects.append(ob)\n# Display characters are annotation, not geometry used for fit.\na=math.radians(math.degrees(math.atan2(83,35)))\ndef ui_text(txt,x,y,z,size):\n cu=bpy.data.curves.new(txt,'FONT');cu.body=txt;cu.size=size*.001;cu.extrude=0\n ob=bpy.data.objects.new(txt,cu);scene.collection.objects.link(ob)\n ob.location=Vector((x,-57.5+y*math.cos(a)-z*math.sin(a),61.5+y*math.sin(a)+z*math.cos(a)))*.001\n ob.rotation_euler=(a,0,0);ob.data.materials.append(mats['white']);ob['group']='ui';objects.append(ob)\nui_text('PREHEAT',-39,4,3.55,3.2);ui_text('62.0 C',-39,-2,3.55,4.2);ui_text('HEATING',-39,-7,3.55,1.9)\nui_text('RESEARCH USE ONLY',-38,-31,2,3);ui_text('NOT FOR DIAGNOSTIC USE',-38,-36,2,2)\nfor name,d,e in [('Key',(1,-1,2),2.5),('Fill',(-1,-.2,1),1.1),('Rim',(0,1,1),1.8)]:\n li=bpy.data.lights.new(name,'SUN');li.energy=e;ob=bpy.data.objects.new(name,li);scene.collection.objects.link(ob);ob.rotation_euler=(-Vector(d)).to_track_quat('-Z','Y').to_euler()\ncam=bpy.data.cameras.new('Review camera');co=bpy.data.objects.new('Review camera',cam);scene.collection.objects.link(co);scene.camera=co;cam.lens=52;cam.clip_start=.001;cam.clip_end=10\ncam.dof.use_dof=False\n\n# Warning text on the actual hatch surface; fonts are non-fit presentation annotations.\ndef surface_text(text,loc,rot,size,group,mat='white'):\n cu=bpy.data.curves.new(text,'FONT');cu.body=text;cu.size=size*.001\n ob=bpy.data.objects.new(text,cu);scene.collection.objects.link(ob)\n ob.location=Vector(loc)*.001;ob.rotation_euler=rot;ob.data.materials.append(mats[mat]);ob['group']=group;objects.append(ob)\nsurface_text('HOT BLOCK BELOW',(-32,24,118.65),(0,0,0),3.1,'hatch','amber')\nsurface_text('WAIT FOR COOLDOWN',(-32,17,118.65),(0,0,0),2.8,'hatch','amber')\nsurface_text('DC IN - PROVISIONAL',(-29,75.2,40),(math.pi/2,0,math.pi),2.8,'rear')\nsurface_text('POWER OFF - REMOVE SIX SCREWS',(48,75.2,82),(math.pi/2,0,math.pi),2.5,'rear')\nsurface_text('WHOLE REAR PANEL SERVICE ACCESS',(48,75.2,75),(math.pi/2,0,math.pi),2.3,'rear')\nbpy.context.view_layer.update();installed={ob.name:ob.matrix_world.copy() for ob in objects}\nmanifest={'unit':'mm; render meshes scaled once by .001','installed':'all source solids in preserved PCB datum','poses':{},'cameras':{},'projected_points':{}}\nfrom bpy_extras.object_utils import world_to_camera_view\ndef render(pose):\n for ob in objects: ob.matrix_world=installed[ob.name].copy()\n offsets={}\n if pose=='exploded':\n  offsets={'left':(-48,0,0),'right':(60,0,0),'roof':(0,0,85),'chamber':(-82,48,25),'guard':(-82,48,45),'rear':(110,85,0),'rearfastener':(110,110,0),'frontstrip':(0,-24,0)}\n if pose=='rear-service-open':\n  offsets={'rear':(110,85,0),'rearfastener':(110,110,0)}\n if pose in ['hatch-open','exploded']:\n  pivot=Vector((-8,55,108))*.001\n  turn=Matrix.Translation(pivot)@Matrix.Rotation(math.radians(-105),4,'X')@Matrix.Translation(-pivot)\n  for ob in objects:\n   if ob['group']=='hatch': ob.matrix_world=turn@installed[ob.name]\n for ob in objects:\n  if ob['group'] in offsets: ob.location+=Vector(offsets[ob['group']])*.001\n # One consistent workflow state per pose; no simultaneous PREHEAT and READY.\n bpy.data.objects['PREHEAT'].data.body='INSERT TUBE' if pose=='hatch-open' else 'PREHEAT'\n bpy.data.objects['62.0 C'].data.body='HEAT PAUSED' if pose=='hatch-open' else '62.0 C'\n bpy.data.objects['62.0 C'].data.size=(2.5 if pose=='hatch-open' else 4.2)*.001\n bpy.data.objects['HEATING'].data.body='SEALED TUBE ONLY' if pose=='hatch-open' else 'HEATING'\n bpy.context.view_layer.update()\n pts=[ob.matrix_world@Vector(c) for ob in objects for c in ob.bound_box]\n lo=Vector([min(p[i] for p in pts) for i in range(3)]);hi=Vector([max(p[i] for p in pts) for i in range(3)])\n center=(lo+hi)/2;diag=(hi-lo).length\n direction=Vector((1,-1.65,1.08)).normalized(); factor=1.82\n if pose=='hatch-open':direction=Vector((.6,-1.4,1.65)).normalized();factor=1.70\n if pose=='exploded':factor=1.65\n if pose in ['rear-installed','rear-service-open']:direction=Vector((.65,1.8,1.05)).normalized();factor=1.85\n co.location=center+direction*diag*factor;co.rotation_euler=(center-co.location).to_track_quat('-Z','Y').to_euler()\n bpy.context.view_layer.update()\n # Numeric arrow endpoints come from projection of exact CAD-datum positions, not guessed pixels.\n manifest['projected_points'][pose]={}\n for name,xyz in {'cap':(-8,25,111),'guide':(7,13,103),'insert_top':(-8,25,145),'socket':(-48,81,25),'service':(0,75,60),'fixed_disconnect':(-56,61,25),'J9J10':(21.25,-45.525,10),'service_entry':(-37,75,25),'service_aisle':(-37,-30,25),'U1':(-18,-22.476,4),'warning':(-8,24,118.7)}.items():\n  q=world_to_camera_view(scene,co,Vector(xyz)*.001)\n  manifest['projected_points'][pose][name]=[q.x*1500,(1-q.y)*1200]\n # Rear-service annotation uses installed PCB points; panel-specific point follows its exploded offset.\n if pose=='rear-service-open':\n  q=world_to_camera_view(scene,co,Vector((62,160,25))*.001)\n  manifest['projected_points'][pose]['panel_socket']=[q.x*1500,(1-q.y)*1200]\n scene.render.filepath=pose+'-raw.png';bpy.ops.render.render(write_still=True)\n manifest['poses'][pose]={'translation_offsets_mm':offsets,'hatch_rotation_x_deg':-105 if pose in ['hatch-open','exploded'] else 0,'hatch_pivot_mm':[-8,55,108]}\n manifest['cameras'][pose]={'position_mm':list(co.location*1000),'target_mm':list(center*1000),'lens_mm':52,'resolution':[1500,1200]}\nfor pose in ['closed-front','hatch-open','exploded','rear-installed','rear-service-open']:render(pose)\njson.dump(manifest,open('presentation-manifest.json','w'),indent=2)\n",
  "tessellation_source": "import runpy,json,os\nos.chdir('/root/work/concept-v2c')\nm=runpy.run_path('reader-concept-v2c.build123d'); rows=[]\nfor p in m['review']:\n s=p.pop('shape'); v,t=s.tessellate(0.2,0.15); b=s.bounding_box()\n rows.append(dict(**p,vertices=[list(q) for q in v],triangles=t,bounds=[list(b.min),list(b.max)],volume=s.volume,valid=s.is_valid))\njson.dump(rows,open('geometry.json','w'))\nprint('PARTS',len(rows),'VALID',all(r['valid'] for r in rows))\nprint('BOUNDS',m['result'].bounding_box())\nprint('PCB',next(r['bounds'] for r in rows if r['name'].startswith('PCB proxy')))\n",
  "protected_tube_validation_source": "import os,runpy,json,math\nfrom build123d import *\nos.chdir('/root/work/concept-v2c');m=runpy.run_path('reader-concept-v2c.build123d');p={r['name']:r['shape'] for r in m['review']}\ndef vol(a,b):\n q=a&b;return float(q.volume) if q else 0.0\nh=p['Independent small opaque hinged hatch with cap relief'];cap=p['Sealed cap proxy GRASP BAND D11 H5'];tube=p['Sealed tube BODY proxy D7.5 H21'];guard=p['Full perimeter protective deck and narrow tube guide'];block=p['Aluminum heater block proxy'];roof=p['Removable top flat panel'];wall=p['Opaque chamber removable wall cassette'];pcb=p['PCB proxy 100x100 live datum']\naxis=Axis((-8,55,108),(1,0,0));sweep=[]\nfor a in range(0,106,5):\n hh=h.rotate(axis,-a);sweep.append(dict(deg=a,cap_mm3=vol(hh,cap),tube_mm3=vol(hh,tube),guard_mm3=vol(hh,guard),roof_mm3=vol(hh,roof),chamber_mm3=vol(hh,wall)))\nhopen=h.rotate(axis,-105)\ninsertion=[]\nfor dz in range(41):\n t=Pos(0,0,dz)*(tube+cap)\n insertion.append(dict(lift_mm=dz,guard_mm3=vol(t,guard),hatch_mm3=vol(t,hopen),block_mm3=vol(t,block)))\n# The projected hot-block top outside the insertion bore is entirely under the protective deck.\nprojection=m['box'](30,30,.2,-8,25,101)-m['cyl'](4.25,.4,-8,25,100.9)\nq=projection-guard\ncoverage_gap=q.volume if q else 0\ncorridor=m['cyl'](13,40,-8,25,103)\nstruct=[r for r in m['review'] if r['name'].startswith(('Elevated gantry','Gantry crossbeam','Opaque chamber','Removable opaque spill'))]\nreport={'scope':'PROVISIONAL geometry-only concept check. NOT safe-touch, thermal or physical-fit qualification.','valid_solids':all(r['shape'].is_valid for r in m['review']),'solid_count':len(m['review']),'installed_bounds_mm':[list(m['result'].bounding_box().min),list(m['result'].bounding_box().max)],'pcb_bounds_mm':[list(pcb.bounding_box().min),list(pcb.bounding_box().max)],'tube_body_z_mm':[85,106],'cap_diameter_height_mm':[11,5],'cap_z_mm':[106,111],'guide_top_mm':103,'cap_lower_edge_above_guide_mm':3,'cap_top_above_guide_mm':8,'exposed_cap_grip_band_mm':5,'guide_inner_diameter_mm':8.5,'tube_diameter_mm':7.5,'nominal_guide_radial_clearance_mm':.5,'closed_hatch_inside_roof_z_mm':115.5,'cap_to_closed_hatch_vertical_clearance_mm':4.5,'guard_projection_overhang_past_hot_block_each_side_mm':9.5,'deck_to_block_top_air_gap_mm':2,'guide_sleeve_to_block_top_air_gap_mm':.5,'unshielded_top_projection_outside_bore_mm3':coverage_gap,'guard_vs_heater_intersection_mm3':vol(guard,block),'guard_vs_sensor_intersection_mm3':vol(guard,p['Optical sensor proxy']),'guard_vs_illumination_intersection_mm3':vol(guard,p['Illumination proxy']),'optical_axis_z_mm':87,'optical_proxy_top_mm':92,'deck_underside_minus_optical_top_mm':8,'optical_passage_diameter_mm':3,'hatch_sweep_5deg_samples':sweep,'axial_insertion_1mm_samples':insertion,'grip_corridor_diameter_height_mm':[26,40],'grip_corridor_vs_open_hatch_mm3':vol(corridor,hopen),'grip_corridor_vs_roof_mm3':vol(corridor,roof),'structure_pcb_intersection_mm3':max(vol(pcb,r['shape']) for r in struct),'conditional_connector_headroom_mm':42-12,'warnings':['Cap is a selected D11x5 envelope, not a sourced sealed tube specification','Protective guide intended cold-touch but temperature unverified; no PETG thermal safety claim','Finger/gripper envelope provisional; intended aids and actual cap need ergonomic testing','Optical slots prove only a proxy passage, not spectral, stray-light, assay or real-part performance','Hatch seam hinge latch and interlock not qualified','Insertion and hinge checks are discrete samples, not certified continuous-motion clearance','Exact mated harnesses, underside solder and final panel fastening remain open']}\njson.dump(report,open('geometry-validation.json','w'),indent=2)\nprint('max swept interference',max(v for x in sweep for k,v in x.items() if k!='deg'))\nprint('max insertion interference',max(v for x in insertion for k,v in x.items() if k!='lift_mm'))\nprint('guard projection gap',coverage_gap,'cap gap4.5; grip5; protrusion8; conditionalheadroom30')\nprint('grip corridor hatch',report['grip_corridor_vs_open_hatch_mm3'])\n",
  "rear_validation_source": "import os,json,runpy,math\nfrom build123d import *\nos.chdir('/root/work/concept-v2c')\nm=runpy.run_path('reader-concept-v2c.build123d');rows=m['review'];p={r['name']:r['shape'] for r in rows}\ndef vol(a,b):\n ba,bb=a.bounding_box(),b.bounding_box()\n if any(list(ba.max)[i]<list(bb.min)[i] or list(bb.max)[i]<list(ba.min)[i] for i in range(3)):return 0.0\n q=a&b;return float(q.volume) if q else 0.0\ndef segment(a,b,r):\n v=Vector(b)-Vector(a);return Plane(origin=a,z_dir=v)*Cylinder(r,v.length,align=(Align.CENTER,Align.CENTER,Align.MIN))\nstatic=[r for r in rows if r['group'] not in ['rear','rearfastener']]\nrear=p['WHOLE removable rear flat panel'];roof=p['Removable top flat panel']\n# Panel itself, moved normal to rear then laterally for service presentation.\nwithdraw=[]\nfor dy in range(0,36,5):\n moved=Pos(0,dy,0)*rear\n hits=[{'part':r['name'],'volume_mm3':vol(moved,r['shape'])} for r in static]\n withdraw.append({'dy_mm':dy,'hits':[h for h in hits if h['volume_mm3']>1e-5]})\n# Exposed rear heads with a straight driver approach; no claim of actual driver geometry.\ndrivers=[]\nfor x in [-73,73]:\n for z in [-5,44,93]:\n  tool=segment((x,77,z),(x,117,z),5)\n  hits=[{'part':r['name'],'volume_mm3':vol(tool,r['shape'])} for r in rows if r['group']!='rearfastener']\n  drivers.append({'head_center_mm':[x,76,z],'axis':[0,1,0],'clearance_proxy_diameter_mm':10,'approach_length_mm':40,'hits':[h for h in hits if h['volume_mm3']>1e-5]})\n# Long-tool/inspection approach only, ending ABOVE the circuitry. It is not a USB mating simulation.\npaths={'above_U1':[(-37,80,25),(-37,-30,25),(-18,-22.476,25)],'above_J9':[(-37,80,25),(-37,-30,25),(12.75,-35,25),(12.75,-45.525,25)],'above_J10':[(-37,80,25),(-37,-30,25),(29.75,-35,25),(29.75,-45.525,25)]}\naccess={}\nfor name,pts in paths.items():\n hits=[]\n for a,b in zip(pts,pts[1:]):\n  tunnel=segment(a,b,5)\n  for r in static:\n   v=vol(tunnel,r['shape'])\n   if v>1e-5:hits.append({'part':r['name'],'volume_mm3':v})\n access[name]={'centerline_mm':pts,'diameter_mm':10,'length_mm':sum((Vector(b)-Vector(a)).length for a,b in zip(pts,pts[1:])),'hits':hits}\noldwindow=m['box'](55,3,32,37,73.5,5)\nnames=[r['name'] for r in rows]\nslack=m['DC_SLACK_POINTS'];length=sum((Vector(b)-Vector(a)).length for a,b in zip(slack,slack[1:]))\nreport={'revision':'v2c','scope':'CONCEPT geometric approach only. No direct USB accessibility, physical reach or mating claim.','no_legacy_service_extension_solids':not any(('Service harness RESERVED' in n or 'SERVICE plate' in n or 'SERVICE EXTENSION' in n) for n in names),'former_service_aperture_material_volume_mm3':vol(rear,oldwindow),'former_service_aperture_expected_full_volume_mm3':55*3*32,'rear_panel_size_mm':[154,3,112.1],'rear_panel_bounds_mm':[list(rear.bounding_box().min),list(rear.bounding_box().max)],'rear_panel_top_gap_to_roof_mm':100.6-100.1,'rear_screw_count':6,'driver_approach_tests':drivers,'normal_panel_withdrawal_samples':withdraw,'service_approach_tests':access,'provisional_dc_pigtail_centerline_length_mm':length,'dc_disconnect_fixed_center_mm':[-56,61,25],'dc_disconnect_panel_center_mm':[-56,67,25],'normal_disconnection_axis':[0,1,0],'rear_open_presentation_after_disconnect_mm':[110,85,0],'electronics_rear_headers_on_opposite_board_edge':True,'J9_J10_body_centers_mm':[[12.75,-45.525],[29.75,-45.525]],'U1_placement_origin_mm':[-18,-22.476],'U1_USB_proxy_region_mm':[-18,-46,4],'rear_inner_face_to_USB_region_y_depth_mm':72-(-46),'warnings':['Remove external12V power and wait for full cooldown before panel service','Internal coupler not selected; unplug it before full panel removal, never pull against J1','Pigtail shown as slack route intent; bend radius, retention and usable withdrawal distance unqualified','Approach cylinders end above circuits, not at verified connector mating faces','Actual Pico USB jack face/axis/overmold and finger reach remain unverified; another panel may need removal','Only selected component body proxies checked; full physical assembly may block approach','Screw heads/holes/rails are representational, not final fastening or tool certification']}\n# Full removable rear assembly (panel, inlet, loose pigtail and unplugged coupler half).\nmovables=[r for r in rows if r['group']=='rear']; tests=[]\nposes=[(0,y,0) for y in range(0,86,5)]+[(x,85,0) for x in range(10,111,10)]\nfor off in poses:\n hits=[]\n for mr in movables:\n  shape=Pos(*off)*mr['shape']\n  for sr in static:\n   v=vol(shape,sr['shape'])\n   if v>1e-5:hits.append({'moving':mr['name'],'fixed':sr['name'],'mm3':v})\n tests.append({'offset_mm':off,'hits':hits})\nreport['disconnected_rear_assembly_withdrawal_samples']=tests\nprint('full rear assembly removal hits',sum(len(t['hits']) for t in tests))\njson.dump(report,open('rear-service-validation.json','w'),indent=2)\nprint('legacy absent',report['no_legacy_service_extension_solids'],'former aperture filled',report['former_service_aperture_material_volume_mm3'])\nprint('withdraw',withdraw);print('drivers',[t['hits'] for t in drivers]);print('access',[(k,v['length_mm'],v['hits']) for k,v in access.items()]);print('pigtail length',length)\n",
  "annotation_source": "import os,json,math\nfrom PIL import Image,ImageDraw,ImageFont,ImageStat,ImageOps\nos.chdir('/root/work/concept-v2c')\nf='/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf';manifest=json.load(open('presentation-manifest.json'));checks={}\ndef arrow(d,a,b,color='#67e9e1',width=3):\n d.line([tuple(a),tuple(b)],fill=color,width=width);ang=math.atan2(b[1]-a[1],b[0]-a[0]);n=13\n d.polygon([tuple(b),(b[0]-n*math.cos(ang-.45),b[1]-n*math.sin(ang-.45)),(b[0]-n*math.cos(ang+.45),b[1]-n*math.sin(ang+.45))],fill=color)\ndef text(d,p,s,size=22,col='#e9f2f5'):d.text(p,s,font=ImageFont.truetype(f,size),fill=col)\ndef pixel(name,im):\n gray=im.convert('L');st=ImageStat.Stat(gray);w,h=im.size;bg=gray.getpixel((1,1));edges=[gray.crop(b) for b in [(0,0,w,2),(0,h-2,w,h),(0,0,2,h),(w-2,0,w,h)]]\n cut=any(abs(p-bg)>24 for e in edges for p in e.getdata());checks[name]={'mean':st.mean[0],'std':st.stddev[0],'cut_off':cut};print(name,checks[name])\nfor pose,title in [('closed-front','CLOSED FRONT'),('hatch-open','HATCH ONLY OPEN - rear panel installed'),('exploded','EXPLODED - whole rear panel removes'),('rear-installed','REAR INSTALLED'),('rear-service-open','REAR SERVICE OPEN - DC coupler disconnected')]:\n im=Image.open(pose+'-raw.png').convert('RGB');d=ImageDraw.Draw(im);pt=manifest['projected_points'][pose]\n text(d,(50,28),'CONCEPT v2c  /  '+title,27)\n text(d,(50,75),'PRELIMINARY VISUAL REVIEW  |  PROXY PARTS  |  AWAITING APPROVAL',20,'#83d5df')\n if pose=='hatch-open':\n  arrow(d,pt['insert_top'],pt['cap']);text(d,(55,132),'Independent 105 degree hatch - normal tube workflow unchanged',22,'#67e9e1')\n  text(d,(55,169),'Cap grip 5 mm; cold-touch performance NOT VERIFIED',21)\n  text(d,(55,1093),'Protective guide, opaque chamber, front controls and PCB remain in installed positions.',21)\n elif pose=='rear-installed':\n  text(d,(55,1020),'Normal operation: provisional panel 12 V DC input to J1 internal',22,'#67e9e1');arrow(d,(650,1010),pt['socket'])\n  text(d,(55,1062),'Service: remove SIX rear-facing screws and the WHOLE panel; no separate service port.',22)\n  text(d,(55,1094),'Unplug external adapter and allow full cooldown before opening.',21,'#edc477')\n elif pose=='rear-service-open':\n  a,b=pt['service_entry'],pt['service_aisle']\n  for t in range(0,20,2):\n   d.line([(a[0]+(b[0]-a[0])*t/20,a[1]+(b[1]-a[1])*t/20),(a[0]+(b[0]-a[0])*(t+1)/20,a[1]+(b[1]-a[1])*(t+1)/20)],fill='#67e9e1',width=3)\n  arrow(d,(380,1010),pt['fixed_disconnect'])\n  text(d,(55,1022),'Disconnect inlet coupler before removing panel - do not pull on J1.',22,'#67e9e1')\n  text(d,(55,1060),'Dashed: hypothetical hidden tool path ABOVE circuitry, below chamber.',21)\n  text(d,(55,1094),'NOT a verified Pico USB mating path; actual reach and plug clearance remain open.',21,'#edc477')\n elif pose=='closed-front':\n  text(d,(55,1093),'Normal front controls and independent guarded hatch preserved.',23,'#edc477')\n else:text(d,(55,1093),'Entire rear panel, DC inlet and loose pigtail shown separate; no service extension harness.',21)\n text(d,(55,1140),'Rear panel joints, DC disconnect, wiring bends and service reach are provisional.',21)\n text(d,(55,1170),'Same-source concept geometry; no PCB or schematic changes; not printable release CAD.',19,'#a9c4cc')\n im=ImageOps.expand(im,border=80,fill=im.getpixel((1,1)))\n im.save('reader-concept-v2c-'+pose+'.png');pixel(pose,im)\na=Image.open('reader-concept-v2c-rear-installed.png');b=Image.open('reader-concept-v2c-rear-service-open.png')\ncomp=Image.new('RGB',(a.width+b.width,a.height),a.getpixel((1,1)));comp.paste(a,(0,0));comp.paste(b,(a.width,0));comp.save('reader-concept-v2c-rear-comparison.png');pixel('rear-comparison',comp)\nevidence={'presentation':manifest,'protected_tube_validation':json.load(open('geometry-validation.json')),'rear_service_validation':json.load(open('rear-service-validation.json')),'pixels':checks,'blender_source':open('render.py').read(),'tessellation_source':open('mesh_review.py').read(),'protected_tube_validation_source':open('validate.py').read(),'rear_validation_source':open('validate-rear.py').read(),'annotation_source':open('finalize.py').read(),'post_composition_padding_px':80,'delivered_single_view_resolution_px':[1660,1360],'geometry_revision':'v2c directly edits v2b Build123d source, no geometry from images'}\njson.dump(evidence,open('review-evidence.json','w'),indent=2)\n",
  "post_composition_padding_px": 80,
  "delivered_single_view_resolution_px": [
    1660,
    1360
  ],
  "geometry_revision": "v2c directly edits v2b Build123d source, no geometry from images"
}