{
  "export_simplification_tolerance_mm": 0.01,
  "watertight": true,
  "one_connected_solid": true,
  "volume_mm3": 63128.601927806194,
  "bounds_mm": [
    [
      -60.0,
      -60.0,
      0.0
    ],
    [
      60.0,
      60.0,
      82.0
    ]
  ],
  "fan_plate_mm": [
    120.0,
    120.0,
    2.4
  ],
  "inlet_diameter_mm": 116.8,
  "collar_wall_mm": 1.2,
  "shell_wall_mm": 1.2,
  "wall_method": "Uniform 1.2 mm shell: the 3-D dilation of the rounded air volume, so every inside fillet is followed outside; connector-service trims locally reduce thickness",
  "GPU_opening_mm": [
    38.5,
    98.5
  ],
  "plug_latch_sweep_collisions_mm3": [
    0.0,
    0.0
  ],
  "connector_bay_collisions_mm3": [
    0.0,
    2.702078046941925e-09
  ],
  "integral_return_top_depth_mm": 3.2,
  "return_underside_ramp_start_mm": 62.0,
  "connector_access": "Open outer/top rims; lower and inner returns retained",
  "housing_clearance_mm": [
    13.6,
    20.6
  ],
  "local_latch_aperture_mm": [
    3.6,
    8.6
  ],
  "physical_fit_tested": false,
  "CFD_validation": "Separate study; CAD export does not certify performance",
  "chamber_length_mm": 70.0,
  "transition_end_mm": 70.0,
  "shoulder_rounding_max_mm": 10.0,
  "shoulder_rounding_at_service_end_mm": 7.0,
  "passage_wall_fillet_max_mm": 8.0,
  "passage_wall_fillet_at_GPU_mm": 6.0,
  "connector_service_policy": "Contoured pocket around explicit straight plug/latch insertion sweep; oversized rectangular service trim removed",
  "shoulder_axial_easing_fraction": 0.06,
  "pocket_transition_end_mm": 44.0,
  "splitter_nose_front_width_mm": 0.4,
  "splitter_nose_radii_mm": [
    0.8,
    1.6
  ],
  "splitter_profile": "symmetric cubic widening with elliptical nose",
  "shoulder_axial_max_slope": 0.8099613152804642,
  "upper_shoulder_requested_radius_mm": 6.0,
  "shape": "every convex air-section corner rounded (>= 6.0 mm, tapering to the seat); upper and lower bay fillets followed by the outer skin; 3.5 mm flange fillet; flush collars with rounded notch ends; rounded return outline and splitter groove",
  "fan_front_to_GPU_face_mm": 95.0,
  "section_rounding_mm": 6.0,
  "flange_fillet_mm": 3.5,
  "splitter_groove_radius_mm": 0.15,
  "return_outline_radius_mm": 0.8,
  "internal_air_volume_mm3": 583733.2173269929,
  "serialized_fillet_checks": [
    {
      "z_mm": 44.0,
      "side": 0,
      "actual_STL_curve_error_mm": 0.003026962439549287
    },
    {
      "z_mm": 44.0,
      "side": 1,
      "actual_STL_curve_error_mm": 0.007784161691572583
    },
    {
      "z_mm": 50.0,
      "side": 0,
      "actual_STL_curve_error_mm": 0.005654079791712287
    },
    {
      "z_mm": 50.0,
      "side": 1,
      "actual_STL_curve_error_mm": 0.0063167173749706755
    },
    {
      "z_mm": 60.0,
      "side": 0,
      "actual_STL_curve_error_mm": 0.013394699043517944
    },
    {
      "z_mm": 60.0,
      "side": 1,
      "actual_STL_curve_error_mm": 0.007034808607507176
    },
    {
      "z_mm": 69.99,
      "side": 0,
      "actual_STL_curve_error_mm": 0.015225127432138635
    },
    {
      "z_mm": 69.99,
      "side": 1,
      "actual_STL_curve_error_mm": 0.006621140425629927
    }
  ],
  "consistent_winding": true,
  "connected_solids": 1,
  "fan_face_uncovered_area_mm2": 0.0052908198441218275,
  "splitter_profile_measurements": [
    {
      "z_mm": 0.0001,
      "expected_half_width_mm": 0.20019354932787356,
      "measured_x_bounds_mm": [
        -0.20016063004732132,
        0.20016081631183624
      ],
      "error_mm": 3.291928055224047e-05
    },
    {
      "z_mm": 0.14,
      "expected_half_width_mm": 0.3789963877828959,
      "measured_x_bounds_mm": [
        -0.3784906268119812,
        0.37913168995573443
      ],
      "error_mm": 0.0005057609709147037
    },
    {
      "z_mm": 0.28,
      "expected_half_width_mm": 0.48762050896123765,
      "measured_x_bounds_mm": [
        -0.4864130933943911,
        0.4867120030843644
      ],
      "error_mm": 0.0012074155668465592
    },
    {
      "z_mm": 0.5,
      "expected_half_width_mm": 0.6055742026952523,
      "measured_x_bounds_mm": [
        -0.6030470654368401,
        0.6012225113842208
      ],
      "error_mm": 0.004351691311031525
    },
    {
      "z_mm": 1.0,
      "expected_half_width_mm": 0.7577213773503793,
      "measured_x_bounds_mm": [
        -0.7563803070587715,
        0.7553465771294346
      ],
      "error_mm": 0.002374800220944606
    },
    {
      "z_mm": 1.5,
      "expected_half_width_mm": 0.8137843900520142,
      "measured_x_bounds_mm": [
        -0.8080459237098694,
        0.810057415343013
      ],
      "error_mm": 0.00573846634214481
    },
    {
      "z_mm": 2.0,
      "expected_half_width_mm": 0.8250563265306123,
      "measured_x_bounds_mm": [
        -0.8240596627672315,
        0.8236245672110379
      ],
      "error_mm": 0.0014317593195743994
    },
    {
      "z_mm": 5.0,
      "expected_half_width_mm": 0.9520408163265306,
      "measured_x_bounds_mm": [
        -0.9526597490094151,
        0.9536602502240566
      ],
      "error_mm": 0.001619433897526057
    },
    {
      "z_mm": 10.0,
      "expected_half_width_mm": 1.3777551020408163,
      "measured_x_bounds_mm": [
        -1.3781232833862305,
        1.3781170249513093
      ],
      "error_mm": 0.0003681813454141647
    },
    {
      "z_mm": 20.0,
      "expected_half_width_mm": 2.8677551020408165,
      "measured_x_bounds_mm": [
        -2.8708024991227874,
        2.8681882083716554
      ],
      "error_mm": 0.0030473970819708818
    },
    {
      "z_mm": 30.0,
      "expected_half_width_mm": 4.905102040816326,
      "measured_x_bounds_mm": [
        -4.90726612508297,
        4.905307702652516
      ],
      "error_mm": 0.0021640842666439397
    },
    {
      "z_mm": 40.0,
      "expected_half_width_mm": 7.124897959183673,
      "measured_x_bounds_mm": [
        -7.121637453189546,
        7.126059554218302
      ],
      "error_mm": 0.003260505994126639
    },
    {
      "z_mm": 50.0,
      "expected_half_width_mm": 9.162244897959184,
      "measured_x_bounds_mm": [
        -9.159872770309448,
        9.16137335771981
      ],
      "error_mm": 0.0023721276497354893
    },
    {
      "z_mm": 54.99,
      "expected_half_width_mm": 9.996963818836328,
      "measured_x_bounds_mm": [
        -9.994018615252635,
        10.000785687722924
      ],
      "error_mm": 0.0038218688865967465
    },
    {
      "z_mm": 60.0,
      "expected_half_width_mm": 10.652244897959184,
      "measured_x_bounds_mm": [
        -10.65218834578991,
        10.65418141911765
      ],
      "error_mm": 0.00193652115846632
    },
    {
      "z_mm": 69.99,
      "expected_half_width_mm": 11.229999361489387,
      "measured_x_bounds_mm": [
        -11.230480173036286,
        11.235026181427935
      ],
      "error_mm": 0.005026819938548144
    }
  ],
  "collar_section_difference_from_cad_mm": 0.0073461937363589426,
  "stl_sha256": "2325c0fea81747cb24a19f2345a51e9d2f505bbdca61a17ca6fd1843aa85833d",
  "total_estimated_port_obstruction_mm2": 149.36702633694256,
  "passage_fillet_min_radius_service_region_mm": 6.009873940702722,
  "layer_audit": {
    "layer_height_mm": 0.28,
    "overhang_horizontal_allowance_mm": 0.28,
    "maximum_beyond_45deg_area_mm2": 0.03203892972850593,
    "layers_beyond_45deg": [],
    "floating_layers": [],
    "note": "Geometric layer overlap screen, not a physical print test. Small bridge spans may print without supports; material, cooling and speed matter."
  },
  "mesh_quality": {
    "folded_edges_above_120deg": 13,
    "folded_edges_visible": 0,
    "folded_edges_above_160deg": 2,
    "needle_faces": 34
  },
  "normal_audit": [
    {
      "min_triangle_area_mm2": [
        0,
        0.0001
      ],
      "adjacent_edges": 36,
      "edges_above_35deg": 0
    },
    {
      "min_triangle_area_mm2": [
        0.0001,
        0.001
      ],
      "adjacent_edges": 153,
      "edges_above_35deg": 3
    },
    {
      "min_triangle_area_mm2": [
        0.001,
        0.01
      ],
      "adjacent_edges": 2594,
      "edges_above_35deg": 37
    },
    {
      "min_triangle_area_mm2": [
        0.01,
        0.1
      ],
      "adjacent_edges": 51944,
      "edges_above_35deg": 52
    },
    {
      "min_triangle_area_mm2": [
        0.1,
        1000
      ],
      "adjacent_edges": 22763,
      "edges_above_35deg": 1
    }
  ],
  "CFD_status": "Controlled 0/3/6/9 mm upper-shoulder radius screening is running; no optimality claim.",
  "printability": {
    "part": "duct",
    "thresholds": {
      "layer_h": 0.2,
      "overhang_deg": 45.0,
      "max_overhang_island_mm2": 0.25,
      "cantilever_deg": 60.0,
      "cantilever_min_mm2": 0.002,
      "slicer_first_layer": 0.2,
      "slicer_layer_h": 0.28,
      "report_deg": [
        45.0,
        50.0,
        55.0,
        60.0
      ],
      "overhang_eps": 0.02,
      "noise_mm2": 0.001,
      "solid_k": 1.3333333333333333,
      "max_solid_island_mm2": 1.0,
      "hole_noise_mm2": 0.005,
      "voxel": 0.5,
      "cap_grow": 0.6,
      "min_void_mm3": 1.0,
      "support_max_g": 0.0
    },
    "passed": true,
    "failed": [],
    "gates": {
      "unsupported_overhang": {
        "name": "unsupported_overhang",
        "passed": true,
        "summary": {
          "layer_h_mm": 0.2,
          "slicer_stack_mm": [
            0.2,
            0.28
          ],
          "rule": "tier A (0.2 mm layers): island beyond 45 deg > 0.25 mm2; tier B (0.28 mm slicer layers): island steeper than 60 deg >= 0.002 mm2; floating islands",
          "unsupported_volume_mm3": {
            "45deg": 0.0046,
            "50deg": 0.0,
            "55deg": 0.0,
            "60deg": 0.0
          },
          "worst_layer_area_mm2": {
            "45deg": 0.0073,
            "50deg": 0.0,
            "55deg": 0.0,
            "60deg": 0.0
          },
          "tier_a_failures": [],
          "tier_b_failures": [],
          "floating_islands": [],
          "below_limits": [
            {
              "z_range": [
                69.7,
                69.7
              ],
              "bbox_xy": [
                -50.95,
                27.13,
                -50.88,
                27.2
              ],
              "centre": [
                -50.92,
                27.16,
                69.7
              ],
              "layers": 1,
              "max_island_mm2": 0.0019,
              "volume_mm3": 0.0,
              "worst_layer": [
                -50.93,
                27.16,
                69.7
              ],
              "max_angle_deg": 52.7,
              "reach_mm": 0.263
            },
            {
              "z_range": [
                69.7,
                69.7
              ],
              "bbox_xy": [
                -33.73,
                45.55,
                -33.67,
                45.61
              ],
              "centre": [
                -33.7,
                45.58,
                69.7
              ],
              "layers": 1,
              "max_island_mm2": 0.0018,
              "volume_mm3": 0.0,
              "worst_layer": [
                -33.72,
                45.59,
                69.7
              ],
              "max_angle_deg": 52.7,
              "reach_mm": 0.263
            },
            {
              "z_range": [
                69.7,
                69.7
              ],
              "bbox_xy": [
                10.01,
                27.13,
                10.08,
                27.2
              ],
              "centre": [
                10.04,
                27.16,
                69.7
              ],
              "layers": 1,
              "max_island_mm2": 0.0019,
              "volume_mm3": 0.0,
              "worst_layer": [
                10.03,
                27.16,
                69.7
              ],
              "max_angle_deg": 52.7,
              "reach_mm": 0.263
            },
            {
              "z_range": [
                69.7,
                69.7
              ],
              "bbox_xy": [
                27.23,
                45.55,
                27.29,
                45.61
              ],
              "centre": [
                27.26,
                45.58,
                69.7
              ],
              "layers": 1,
              "max_island_mm2": 0.0018,
              "volume_mm3": 0.0,
              "worst_layer": [
                27.24,
                45.59,
                69.7
              ],
              "max_angle_deg": 52.7,
              "reach_mm": 0.263
            }
          ],
          "steepest_slicer_stack": [
            {
              "z_range": [
                66.98,
                69.5
              ],
              "bbox_xy": [
                -50.76,
                24.82,
                -48.56,
                27.02
              ],
              "centre": [
                -49.66,
                25.92,
                68.24
              ],
              "layers": 10,
              "max_island_mm2": 0.0014,
              "volume_mm3": 0.004,
              "worst_layer": [
                -50.75,
                26.98,
                69.5
              ],
              "max_angle_deg": 50.4,
              "reach_mm": 0.339
            },
            {
              "z_range": [
                66.98,
                69.5
              ],
              "bbox_xy": [
                10.2,
                24.82,
                12.4,
                27.02
              ],
              "centre": [
                11.3,
                25.92,
                68.24
              ],
              "layers": 10,
              "max_island_mm2": 0.0014,
              "volume_mm3": 0.004,
              "worst_layer": [
                10.21,
                26.98,
                69.5
              ],
              "max_angle_deg": 50.4,
              "reach_mm": 0.339
            },
            {
              "z_range": [
                68.94,
                69.5
              ],
              "bbox_xy": [
                -33.55,
                49.75,
                -33.01,
                50.28
              ],
              "centre": [
                -33.28,
                50.02,
                69.22
              ],
              "layers": 3,
              "max_island_mm2": 0.0014,
              "volume_mm3": 0.001,
              "worst_layer": [
                -33.53,
                50.25,
                69.5
              ],
              "max_angle_deg": 50.4,
              "reach_mm": 0.339
            },
            {
              "z_range": [
                68.94,
                69.5
              ],
              "bbox_xy": [
                27.41,
                49.75,
                27.95,
                50.28
              ],
              "centre": [
                27.68,
                50.02,
                69.22
              ],
              "layers": 3,
              "max_island_mm2": 0.0014,
              "volume_mm3": 0.001,
              "worst_layer": [
                27.43,
                50.25,
                69.5
              ],
              "max_angle_deg": 50.4,
              "reach_mm": 0.339
            }
          ]
        },
        "failures": [],
        "allowed": []
      },
      "solid_regions": {
        "name": "solid_regions",
        "passed": true,
        "summary": {
          "layer_h_mm": 0.2,
          "wall_mm": 1.2,
          "ball_diameter_mm": 1.6,
          "island_limit_mm2": 1.0,
          "unexplained_solid_volume_mm3": 0.0,
          "allowed_solid_volume_mm3": {
            "fan plate": 8796.32,
            "flange fillet": 909.87,
            "splitter web": 1338.55,
            "seat corner fill": 61.8
          },
          "features": [],
          "below_limit": []
        },
        "failures": [],
        "allowed": [
          {
            "z_range": [
              0.3,
              3.5
            ],
            "bbox_xy": [
              -60.0,
              -60.0,
              60.0,
              60.0
            ],
            "centre": [
              0.0,
              0.0,
              1.9
            ],
            "layers": 17,
            "max_island_mm2": 3797.7374,
            "volume_mm3": 8796.324,
            "worst_layer": [
              59.18,
              0.03,
              1.5
            ],
            "allowed_as": "fan plate"
          },
          {
            "z_range": [
              3.7,
              5.9
            ],
            "bbox_xy": [
              -57.15,
              -59.42,
              57.15,
              58.14
            ],
            "centre": [
              0.0,
              -0.64,
              4.8
            ],
            "layers": 12,
            "max_island_mm2": 664.2599,
            "volume_mm3": 909.874,
            "worst_layer": [
              -46.64,
              -36.87,
              3.7
            ],
            "allowed_as": "flange fillet"
          },
          {
            "z_range": [
              6.1,
              10.9
            ],
            "bbox_xy": [
              -1.5,
              -59.14,
              1.5,
              56.18
            ],
            "centre": [
              0.0,
              -1.48,
              8.5
            ],
            "layers": 25,
            "max_island_mm2": 309.3887,
            "volume_mm3": 1338.548,
            "worst_layer": [
              -0.0,
              -4.54,
              10.1
            ],
            "allowed_as": "splitter web"
          },
          {
            "z_range": [
              66.9,
              69.7
            ],
            "bbox_xy": [
              -50.18,
              21.86,
              -43.78,
              26.44
            ],
            "centre": [
              -46.98,
              24.15,
              68.3
            ],
            "layers": 15,
            "max_island_mm2": 17.6858,
            "volume_mm3": 30.944,
            "worst_layer": [
              -48.44,
              24.11,
              69.1
            ],
            "allowed_as": "seat corner fill"
          },
          {
            "z_range": [
              66.9,
              69.7
            ],
            "bbox_xy": [
              10.78,
              21.87,
              17.17,
              26.44
            ],
            "centre": [
              13.98,
              24.16,
              68.3
            ],
            "layers": 15,
            "max_island_mm2": 17.6434,
            "volume_mm3": 30.859,
            "worst_layer": [
              12.48,
              24.06,
              69.1
            ],
            "allowed_as": "seat corner fill"
          }
        ]
      },
      "seal": {
        "name": "seal",
        "passed": true,
        "summary": {
          "a_undesigned_voids": [],
          "a_designed_void_layers": {
            "branch passage": 700,
            "fan screw hole": 48
          },
          "b_voxels": {
            "voxel_mm": 0.5,
            "caps": [
              {
                "z": -0.25,
                "area_mm2": 10931.1
              },
              {
                "z": 70.25,
                "area_mm2": 7055.1
              }
            ],
            "passage_components": 2,
            "leaks": [],
            "enclosed_voids": []
          }
        },
        "failures": [],
        "allowed": []
      },
      "slicer_support": {
        "name": "slicer_support",
        "passed": true,
        "summary": {
          "profile": "profiles/slicer/process-028.json",
          "gcode": "runs/slice-v27/plate_1.gcode",
          "slice": null,
          "gate_g": 0.0,
          "unexplained_support_g": 0,
          "allowed_support_g": 0,
          "support_filament_mm": 0.0,
          "support_g": 0.0,
          "interface_g": 0.0,
          "plate_offset_xy": [
            128.0,
            126.0
          ],
          "islands": []
        },
        "failures": [],
        "allowed": []
      }
    },
    "allowlist": [
      {
        "gate": "solid_regions",
        "name": "fan plate",
        "lo": [
          -61.0,
          -61.0,
          -1
        ],
        "hi": [
          61.0,
          61.0,
          3.5999999999999996
        ],
        "max_deg": 90.0,
        "why": "2.4 mm plate under the 105 mm screw pattern: solid by design; the ball also fits in the L-junction of each wall with the plate, up to about one wall above it"
      },
      {
        "gate": "solid_regions",
        "name": "flange fillet",
        "lo": [
          -61.0,
          -61.0,
          2.4
        ],
        "hi": [
          61.0,
          61.0,
          5.9
        ],
        "max_deg": 90.0,
        "why": "3.5 mm concave fillet between plate and body: a solid quarter-round"
      },
      {
        "gate": "solid_regions",
        "name": "splitter web",
        "lo": [
          -3,
          -61.0,
          -1
        ],
        "hi": [
          3,
          61.0,
          12.15
        ],
        "max_deg": 90.0,
        "why": "the web between the branches is solid until the skins part by 2 x splitter_groove_radius (splitter half width >= wall + groove at z = 9.75 mm), then the shell rounds it"
      },
      {
        "gate": "solid_regions",
        "name": "seat corner fill",
        "lo": [
          -51.03000000000001,
          17.599999999999998,
          66.5
        ],
        "hi": [
          -43.63,
          27.3,
          70.0
        ],
        "max_deg": 90.0,
        "why": "the seat closes between the rounded passage corner (r 6.0 mm at the seat) and the square bore/collar, and up to the plug-pocket floor (y 27.2), undercut at return_ramp_slope: ~30 mm3 per card, up to 2.7 mm wide, within 3.5 mm of the seat"
      },
      {
        "gate": "solid_regions",
        "name": "seat corner fill",
        "lo": [
          9.930000000000001,
          17.599999999999998,
          66.5
        ],
        "hi": [
          17.330000000000002,
          27.3,
          70.0
        ],
        "max_deg": 90.0,
        "why": "the seat closes between the rounded passage corner (r 6.0 mm at the seat) and the square bore/collar, and up to the plug-pocket floor (y 27.2), undercut at return_ramp_slope: ~30 mm3 per card, up to 2.7 mm wide, within 3.5 mm of the seat"
      }
    ]
  }
}