{
  "counts": {
    "datasheet envelope": 10,
    "maker model": 2,
    "not placed": 6
  },
  "labels": {
    "envelope_only": "datasheet envelope",
    "exact": "maker model",
    "exact, outside the scale band": "maker model off its published size",
    "not placed": "not placed",
    "not_evaluated": "placement not evaluated"
  },
  "not_placed": [
    {
      "category": "sensor",
      "declared_quantity": 1,
      "disposition": "unresolved_by_stage2b",
      "label": "not placed",
      "manufacturer": "Texas Instruments",
      "mpn": "TMP1075DGKR",
      "name": "Texas Instruments TMP1075DGKR",
      "placement_status": "NOT_PLACED_UNRESOLVED",
      "record_id": "U_TEMP"
    },
    {
      "category": "sensor",
      "declared_quantity": 1,
      "disposition": "uninstantiated",
      "label": "not placed",
      "manufacturer": "Holybro",
      "mpn": "H-RTK ZED-F9P (RM3100 Compass)",
      "name": "Holybro H-RTK ZED-F9P (RM3100 Compass)",
      "placement_status": "PLACED",
      "record_id": "U_GNSS"
    },
    {
      "category": "communication",
      "declared_quantity": 1,
      "disposition": "uninstantiated",
      "label": "not placed",
      "manufacturer": "Holybro",
      "mpn": "Remote ID Module (ArduRemoteID, ESP32-C3)",
      "name": "Holybro Remote ID Module (ArduRemoteID, ESP32-C3)",
      "placement_status": "PLACED",
      "record_id": "U_RID"
    },
    {
      "category": "communication",
      "declared_quantity": 1,
      "disposition": "not_in_design",
      "label": "not placed",
      "manufacturer": "Texas Instruments",
      "mpn": "SN65HVD230D",
      "name": "Texas Instruments SN65HVD230D",
      "placement_status": "SUPERSEDED_BY_INTEGRATED_TRANSCEIVERS",
      "record_id": "U_CAN"
    },
    {
      "category": "sensor",
      "declared_quantity": 1,
      "disposition": "uninstantiated",
      "label": "not placed",
      "manufacturer": "Benewake",
      "mpn": "TF03-180",
      "name": "Benewake TF03-180",
      "placement_status": "PLACED",
      "record_id": "U_AGL"
    },
    {
      "category": "battery",
      "declared_quantity": 1,
      "disposition": "uninstantiated",
      "label": "not placed",
      "manufacturer": "Tattu (Grepow)",
      "mpn": "Tattu NEO Compact 33000mAh 12S1P",
      "name": "Tattu (Grepow) Tattu NEO Compact 33000mAh 12S1P",
      "placement_status": "OFF_BOARD_ELECTROMECHANICAL",
      "record_id": "BT1"
    }
  ],
  "parts": [
    {
      "catalog_id": "article_u_oa1",
      "collision": {
        "acceptance_window_mm3": [
          96940.8,
          109866.24
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.0,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "LightWare LiDAR SF45/B",
      "envelope": {
        "record_notes": [
          "envelope of the stated overall size [51.0, 48.0, 44.0] mm (box); no maker model of this article was accepted, so the robot carries the datasheet envelope",
          "mass is the stated figure; the density is that mass over this envelope's volume",
          "placed by the article mount record mechanical/article_mounts/article_mounts.json (judged placement; the model only proposed it)",
          "LightWare LiDAR SF45/B; retrieved 2026-08-31T13:31:40+00:00 from https://lightwarelidar.com/shop/sf45-b-50-m/",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
          "MECH_CAD_SOURCE_GAP: no maker CAD of this exact MPN was accepted; the shape is the stated overall size"
        ],
        "stated_dimensions": [],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article MECH_CAD_SOURCE_GAP: no maker CAD of this exact MPN was accepted; the shape is the stated overall size",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "LightWare LiDAR",
      "mass": {
        "kg": 0.059000000000000004,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 59.0
      },
      "mpn": "SF45/B",
      "name": "LightWare LiDAR SF45/B",
      "occurrences": [
        "article_u_oa1"
      ],
      "part_id": "article_u_oa1",
      "placed_geometry": {
        "measured_size_mm": [
          51.0,
          48.0,
          44.0
        ],
        "path": "design_package/mechanical/parts/article_u_oa1.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "db51f4ef78f627e8a97d568f734dee7c01f95aa4ca01035e9dc7ad055d21d43d",
        "sha256_matches_file": true
      }
    },
    {
      "catalog_id": "article_u_oa2_u_oa5",
      "collision": {
        "acceptance_window_mm3": [
          9072.0,
          10281.6
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.0,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "Benewake TFmini-S",
      "envelope": {
        "record_notes": [
          "envelope of the stated overall size [42.0, 15.0, 16.0] mm (box); no maker model of this article was accepted, so the robot carries the datasheet envelope",
          "mass is the stated figure; the density is that mass over this envelope's volume",
          "placed by the article mount record mechanical/article_mounts/article_mounts.json (judged placement; the model only proposed it)",
          "Benewake TFmini-S; retrieved 2026-08-31T13:31:32+00:00 from https://en.benewake.com/TFminiS/index.html",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
          "MECH_CAD_SOURCE_GAP: no maker CAD of this exact MPN was accepted; the shape is the stated overall size"
        ],
        "stated_dimensions": [],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article MECH_CAD_SOURCE_GAP: no maker CAD of this exact MPN was accepted; the shape is the stated overall size",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "Benewake",
      "mass": {
        "kg": 0.005,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 5.0
      },
      "mpn": "TFmini-S",
      "name": "Benewake TFmini-S",
      "occurrences": [
        "article_u_oa2_u_oa5_1",
        "article_u_oa2_u_oa5_2",
        "article_u_oa2_u_oa5_3",
        "article_u_oa2_u_oa5_4"
      ],
      "part_id": "article_u_oa2_u_oa5",
      "placed_geometry": {
        "measured_size_mm": [
          42.0,
          16.0,
          15.0
        ],
        "path": "design_package/mechanical/parts/article_u_oa2_u_oa5.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "a812545f1deb6bc30af21faffa0c4b5dfe592cce7d59df25bb0300183ff7a3df",
        "sha256_matches_file": true
      }
    },
    {
      "catalog_id": "article_u_pm",
      "collision": {
        "acceptance_window_mm3": [
          43172.99999999999,
          48929.4
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.0000000000000002,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "Holybro PM08-CAN",
      "envelope": {
        "record_notes": [
          "envelope of the stated overall size [45.0, 41.0, 26.0] mm (box); no maker model of this article was accepted, so the robot carries the datasheet envelope",
          "mass is the stated figure; the density is that mass over this envelope's volume",
          "placed by the article mount record mechanical/article_mounts/article_mounts.json (judged placement; the model only proposed it)",
          "Holybro PM08-CAN; retrieved 2026-08-31T13:31:48+00:00 from https://docs.holybro.com/power-module-and-pdb/power-module-comparison.md",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
          "MECH_CAD_SOURCE_GAP: no maker CAD of this exact MPN was accepted; the shape is the stated overall size"
        ],
        "stated_dimensions": [],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article MECH_CAD_SOURCE_GAP: no maker CAD of this exact MPN was accepted; the shape is the stated overall size",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "Holybro",
      "mass": {
        "kg": 0.185,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 185.0
      },
      "mpn": "PM08-CAN",
      "name": "Holybro PM08-CAN",
      "occurrences": [
        "article_u_pm"
      ],
      "part_id": "article_u_pm",
      "placed_geometry": {
        "measured_size_mm": [
          45.0,
          41.0,
          26.0
        ],
        "path": "design_package/mechanical/parts/article_u_pm.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "e021d40307bb3c14e6f57515204afc325298ac9e4678faa138274c883fc9d856",
        "sha256_matches_file": true
      }
    },
    {
      "catalog_id": "article_u_telem",
      "collision": {
        "acceptance_window_mm3": [
          19699.2,
          22325.760000000002
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.0,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "RFDesign RFD900x",
      "envelope": {
        "record_notes": [
          "envelope of the stated overall size [30.0, 57.0, 12.8] mm (box); no maker model of this article was accepted, so the robot carries the datasheet envelope",
          "mass is the stated figure; the density is that mass over this envelope's volume",
          "placed by the article mount record mechanical/article_mounts/article_mounts.json (judged placement; the model only proposed it)",
          "RFDesign RFD900x; retrieved 2026-08-31T13:28:43+00:00 from https://files.rfdesign.com.au/Files/documents/RFD900x%20DataSheet.pdf",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
          "MECH_CAD_SOURCE_GAP: no maker CAD of this exact MPN was accepted; the shape is the stated overall size"
        ],
        "stated_dimensions": [],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article MECH_CAD_SOURCE_GAP: no maker CAD of this exact MPN was accepted; the shape is the stated overall size",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "RFDesign",
      "mass": {
        "kg": 0.014,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 14.0
      },
      "mpn": "RFD900x",
      "name": "RFDesign RFD900x",
      "occurrences": [
        "article_u_telem"
      ],
      "part_id": "article_u_telem",
      "placed_geometry": {
        "measured_size_mm": [
          57.0,
          12.8,
          30.0
        ],
        "path": "design_package/mechanical/parts/article_u_telem.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "a4b63027219dede0aa38567d5b6bceead0d3dbe7b8cb553270cb08e3137df5b0",
        "sha256_matches_file": true
      }
    },
    {
      "cad_acquisition": {
        "cad_links": [],
        "pages": 1,
        "state": "NO_MAKER_MODEL_ACCEPTED",
        "why": "no CAD link found on the maker's pages reached from the run's 1 document(s) (0 page(s) on the maker's host)"
      },
      "catalog_id": "battery_tattu_neo_compact_26000_12s",
      "collision": {
        "acceptance_window_mm3": [
          3313259.9999999995,
          3755028.0
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.0000000000000002,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "Tattu NEO Compact 26000 mAh 12S1P LiPo pack",
      "envelope": {
        "record_notes": [
          "Envelope 233.0 x 158.0 x 100.0 mm from the vendor's published outline. Mass is the vendor figure; the density used for the mass-properties run is the vendor mass divided by this envelope volume, so the total mass and the centre of mass are right and only the internal mass distribution is idealised.",
          "Selection of the pack capacity is Stage 2B's design variable; Stage 2A owns only the mechanical envelope and retention.",
          "This solid is the nominal 233 x 158 x 100 mm envelope. The pack's published tolerance is +5/+2/+2 mm, so the bay around it is built to 238 x 160 x 102 mm and this box is deliberately smaller than the space reserved for it.",
          "Tattu (Grepow) Tattu NEO Compact 26000mAh 12S1P; retrieved 2026-08-31 from https://genstattu.com/tattu-neo-compact-26000mah-12s1p-44-4v-10c-smart-uav-lipo-battery-with-as150u-f-plug/",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article"
        ],
        "stated_dimensions": [
          {
            "role": "length",
            "source": "design_package/mechanical/vendor_cad/tattu/TattuNEOCompact-26000-12S/product_page.html#Specifications table (method=vendor_published)",
            "stated_mm": 233.0,
            "stated_tolerance_mm": 5.0,
            "stated_tolerance_source": "design_package/mechanical/vendor_cad/tattu/TattuNEOCompact-26000-12S/product_page.html#Specifications table (method=vendor_published)"
          },
          {
            "role": "width",
            "source": "design_package/mechanical/vendor_cad/tattu/TattuNEOCompact-26000-12S/product_page.html#Specifications table (method=vendor_published)",
            "stated_mm": 158.0,
            "stated_tolerance_mm": 2.0,
            "stated_tolerance_source": "design_package/mechanical/vendor_cad/tattu/TattuNEOCompact-26000-12S/product_page.html#Specifications table (method=vendor_published)"
          },
          {
            "role": "height",
            "source": "design_package/mechanical/vendor_cad/tattu/TattuNEOCompact-26000-12S/product_page.html#Specifications table (method=vendor_published)",
            "stated_mm": 100.0,
            "stated_tolerance_mm": 2.0,
            "stated_tolerance_source": "design_package/mechanical/vendor_cad/tattu/TattuNEOCompact-26000-12S/product_page.html#Specifications table (method=vendor_published)"
          }
        ],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "Tattu (Grepow)",
      "mass": {
        "kg": 4.25,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 4250.0
      },
      "mpn": "Tattu NEO Compact 26000mAh 12S1P",
      "name": "Tattu (Grepow) Tattu NEO Compact 26000mAh 12S1P",
      "occurrences": [
        "battery"
      ],
      "part_id": "battery",
      "placed_geometry": {
        "measured_size_mm": [
          233.0,
          158.0,
          100.0
        ],
        "path": "design_package/mechanical/parts/battery.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "b556775d2b61e39099881333e502512636ebad61bf96e3f1be87caa241af4b11",
        "sha256_matches_file": true
      }
    },
    {
      "cad_acquisition": {
        "cad_links": [],
        "pages": 1,
        "state": "NO_MAKER_MODEL_ACCEPTED",
        "why": "no CAD link found on the maker's pages reached from the run's 1 document(s) (0 page(s) on the maker's host)"
      },
      "catalog_id": "cam_micasense_rededge_p",
      "collision": {
        "acceptance_window_mm3": [
          331467.06599999993,
          375662.6747999999
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.0,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "MicaSense RedEdge-P multispectral camera",
      "envelope": {
        "record_notes": [
          "Envelope 86.8 x 63.0 x 67.35 mm from the RedEdge-P integration guide. Datum is the top face because that is the mating face.",
          "MicaSense (AgEagle) RedEdge-P; retrieved 2026-08-31 from https://xcopter.com/download/RedEdge-P-Guide-Dec2021.pdf",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article"
        ],
        "stated_dimensions": [
          {
            "role": "length",
            "source": "design_package/mechanical/vendor_cad/micasense/RedEdge-P/RedEdge-P-Guide-Dec2021.pdf#p.6 Physical table (method=vendor_published)",
            "stated_mm": 86.8
          },
          {
            "role": "width",
            "source": "design_package/mechanical/vendor_cad/micasense/RedEdge-P/RedEdge-P-Guide-Dec2021.pdf#p.6 Physical table (method=vendor_published)",
            "stated_mm": 63.0
          },
          {
            "role": "height",
            "source": "design_package/mechanical/vendor_cad/micasense/RedEdge-P/RedEdge-P-Guide-Dec2021.pdf#p.6 Physical table (method=vendor_published)",
            "stated_mm": 67.35
          }
        ],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "MicaSense (AgEagle)",
      "mass": {
        "kg": 0.245,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 245.0
      },
      "mpn": "RedEdge-P",
      "name": "MicaSense (AgEagle) RedEdge-P",
      "occurrences": [
        "camera"
      ],
      "part_id": "camera",
      "placed_geometry": {
        "measured_size_mm": [
          86.8,
          63.0,
          67.35
        ],
        "path": "design_package/mechanical/parts/camera.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "f4dcf9f0a1cc7f7b6d193d1fef3283ce7d1bdada641c85b4f752b265f90b7ee4",
        "sha256_matches_file": true
      }
    },
    {
      "cad_acquisition": {
        "cad_links": [],
        "pages": 1,
        "state": "NO_MAKER_MODEL_ACCEPTED",
        "why": "no CAD link found on the maker's pages reached from the run's 1 document(s) (0 page(s) on the maker's host)"
      },
      "catalog_id": "dls2_micasense",
      "collision": {
        "acceptance_window_mm3": [
          36883.467,
          41801.262599999995
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.0,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "MicaSense DLS 2 downwelling light sensor and GPS",
      "envelope": {
        "record_notes": [
          "Envelope 63.5 x 46.0 x 14.03 mm from the vendor's published outline. Mass is the vendor figure; the density used for the mass-properties run is the vendor mass divided by this envelope volume, so the total mass and the centre of mass are right and only the internal mass distribution is idealised.",
          "Must sit on the topside with an unobstructed upward hemisphere, which is why it is on the top plate beside the battery tray and not under it.",
          "MicaSense (AgEagle) DLS 2; retrieved 2026-08-31 from https://xcopter.com/download/RedEdge-P-Guide-Dec2021.pdf",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article"
        ],
        "stated_dimensions": [
          {
            "role": "length",
            "source": "design_package/mechanical/vendor_cad/micasense/RedEdge-P/RedEdge-P-Guide-Dec2021.pdf#p.19 (method=vendor_published)",
            "stated_mm": 63.5
          },
          {
            "role": "width",
            "source": "design_package/mechanical/vendor_cad/micasense/RedEdge-P/RedEdge-P-Guide-Dec2021.pdf#p.19 (method=vendor_published)",
            "stated_mm": 46.0
          },
          {
            "role": "height",
            "source": "design_package/mechanical/vendor_cad/micasense/RedEdge-P/RedEdge-P-Guide-Dec2021.pdf#p.19 (method=vendor_published)",
            "stated_mm": 14.03
          }
        ],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "MicaSense (AgEagle)",
      "mass": {
        "kg": 0.054,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 54.0
      },
      "mpn": "DLS 2",
      "name": "MicaSense (AgEagle) DLS 2",
      "occurrences": [
        "dls2"
      ],
      "part_id": "dls2",
      "placed_geometry": {
        "measured_size_mm": [
          63.5,
          46.0,
          14.03
        ],
        "path": "design_package/mechanical/parts/dls2.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "135e4c55c481e37f8e43be0ecf1c9a00f20dcde76df106568d27ad9e0c2bff9d",
        "sha256_matches_file": true
      }
    },
    {
      "cad_acquisition": {
        "cad_links": [
          {
            "file_name": "ALPHA Datalink Firmware Upgrade Tutorial.zip",
            "refusal": "CAD_LABEL_DOES_NOT_NAME_THE_MPN",
            "url": "https://store.tmotor.com/images/file/202605/ALPHA Datalink Firmware Upgrade Tutorial.zip"
          }
        ],
        "pages": 1,
        "state": "NO_MAKER_MODEL_ACCEPTED",
        "why": "1 CAD link(s) found on the maker's pages, 0 named for 'ALPHA 60A 12S V1.2', none accepted"
      },
      "catalog_id": "esc_tmotor_alpha_60a_12s",
      "collision": {
        "acceptance_window_mm3": [
          37291.994999999995,
          42264.261000000006
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.0000000000000002,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "T-MOTOR ALPHA 60A 12S V1.2 electronic speed controller",
      "envelope": {
        "record_notes": [
          "Envelope 78.7 x 32.5 x 16.2 mm from the vendor's published outline. Mass is the vendor figure; the density used for the mass-properties run is the vendor mass divided by this envelope volume, so the total mass and the centre of mass are right and only the internal mass distribution is idealised.",
          "Envelope taken from the product page's printed 'Size' row, 78.7 x 32.5 x 16.2 mm, and read here from the layout so the ESC and its saddle clip are sized from one figure rather than two.",
          "Retained by a saddle clip on the arm tube and bonded to its pad, exactly as the retired KDE ESC was, and for the same reason: no published bolt pattern. That the two agree is a coincidence of the vendors' publishing habits, not a design choice carried across.",
          "T-MOTOR ALPHA 60A 12S V1.2; retrieved 2026-08-31 from https://store.tmotor.com/product/alpha-60a-12s-esc.html",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
          "MECH_CAD_SOURCE_GAP: T-MOTOR publish no 3D model for the ALPHA 60A 12S, so its envelope is a printed outline rather than a queried solid and its internal mass distribution is idealised as uniform. The published 73 g is used for the total and the centre of mass; only the inertia about its own centre is an idealisation.",
          "MECH_CAD_SOURCE_GAP: No published mounting-hole pattern for the ALPHA 60A 12S. The saddle clip is therefore a friction-and-bond interface and no fastener holes are invented for it. A bolted ESC interface needs a vendor answer."
        ],
        "stated_dimensions": [
          {
            "role": "length",
            "source": "design_package/mechanical/vendor_cad/tmotor/ALPHA-60A-12S-V1.2/product_page.html#div class=\"basicParameterBox\" Specification table, row \"Size\" (method=vendor_published)",
            "stated_mm": 78.7
          },
          {
            "role": "width",
            "source": "design_package/mechanical/vendor_cad/tmotor/ALPHA-60A-12S-V1.2/product_page.html#div class=\"basicParameterBox\" Specification table, row \"Size\" (method=vendor_published)",
            "stated_mm": 32.5
          },
          {
            "role": "height",
            "source": "design_package/mechanical/vendor_cad/tmotor/ALPHA-60A-12S-V1.2/product_page.html#div class=\"basicParameterBox\" Specification table, row \"Size\" (method=vendor_published)",
            "stated_mm": 16.2
          }
        ],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article MECH_CAD_SOURCE_GAP: T-MOTOR publish no 3D model for the ALPHA 60A 12S, so its envelope is a printed outline rather than a queried solid and its internal mass distribution is idealised as uniform. The published 73 g is used for the total and the centre of mass; only the inertia about its own centre is an idealisation. MECH_CAD_SOURCE_GAP: No published mounting-hole pattern for the ALPHA 60A 12S. The saddle clip is therefore a friction-and-bond interface and no fastener holes are invented for it. A bolted ESC interface needs a vendor answer.",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "T-MOTOR",
      "mass": {
        "kg": 0.073,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 73.0
      },
      "mpn": "ALPHA 60A 12S V1.2",
      "name": "T-MOTOR ALPHA 60A 12S V1.2",
      "occurrences": [
        "esc_1",
        "esc_2",
        "esc_3",
        "esc_4",
        "esc_5",
        "esc_6"
      ],
      "part_id": "esc",
      "placed_geometry": {
        "measured_size_mm": [
          78.7,
          32.5,
          16.2
        ],
        "path": "design_package/mechanical/parts/esc.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "73b48b3733eaca7aaf5f9958a79b8548f6bc65643e37e859be82676da2ff9dfa",
        "sha256_matches_file": true
      }
    },
    {
      "cad_acquisition": {
        "cad_links": [
          {
            "file_name": "tekko32-f4metal-65a_asm.stp",
            "refusal": "CAD_LABEL_DOES_NOT_NAME_THE_MPN",
            "url": "https://2367252986-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLIgtGDAvVGkCKGOJb1bR%2Fuploads%2FLYOTWedGJdoIhHzwbWvF%2Ftekko32-f4metal-65a_asm.stp?alt=media&token=f8fe2e43-34f8-4d3f-b164-b655143b39c4"
          },
          {
            "file_name": "pixhawk5x-3D-simple.stp",
            "refusal": "CAD_LABEL_DOES_NOT_NAME_THE_MPN",
            "url": "https://2367252986-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLIgtGDAvVGkCKGOJb1bR%2Fuploads%2FRu0v17lNzMoBTbZflmr2%2Fpixhawk5x-3D-simple.stp?alt=media&token=2907ae25-1e50-4483-a174-67bdcdf18b44"
          },
          {
            "file_name": "pixhawk-5x-pcba.stp",
            "refusal": "CAD_LABEL_DOES_NOT_NAME_THE_MPN",
            "url": "https://2367252986-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLIgtGDAvVGkCKGOJb1bR%2Fuploads%2FkSY88d0BeqV8pt8DTwjw%2Fpixhawk-5x-pcba.stp?alt=media&token=63f607b1-7440-44f2-a531-41837e7e0c4f"
          }
        ],
        "pages": 23,
        "state": "NO_MAKER_MODEL_ACCEPTED",
        "why": "3 CAD link(s) found on the maker's pages, 0 named for 'Pixhawk 6X (Standard Baseboard)', none accepted"
      },
      "catalog_id": "fc_pixhawk6x_standard",
      "collision": {
        "acceptance_window_mm3": [
          152629.5672,
          172980.17616000003
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.0000000000000002,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "Holybro Pixhawk 6X (Pixhawk Autopilot v6X standard) flight controller",
      "envelope": {
        "record_notes": [
          "Envelope 103.4 x 52.4 x 31.299999999999997 mm from the vendor's published outline. Mass is the vendor figure; the density used for the mass-properties run is the vendor mass divided by this envelope volume, so the total mass and the centre of mass are right and only the internal mass distribution is idealised.",
          "The Pixhawk Autopilot v6X standard (DS-012) specifies the electrical and mechanical interface of the flight-management unit but does not publish a baseboard fastener pattern, so this part is bonded to a damping pad on the underside of the top plate rather than bolted.",
          "Holybro Pixhawk 6X (Standard Baseboard); retrieved 2026-08-31 from https://docs.px4.io/main/en/flight_controller/pixhawk6x.html",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
          "MECH_CAD_SOURCE_GAP: DS-012 Pixhawk Autopilot v6X Standard publishes the FMU form factor but no baseboard mounting-hole pattern for the Holybro 6X carrier, so the flight-controller interface is an adhesive damping pad. A bolted interface would need a vendor drawing that does not exist in the cached set."
        ],
        "stated_dimensions": [],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article MECH_CAD_SOURCE_GAP: DS-012 Pixhawk Autopilot v6X Standard publishes the FMU form factor but no baseboard mounting-hole pattern for the Holybro 6X carrier, so the flight-controller interface is an adhesive damping pad. A bolted interface would need a vendor drawing that does not exist in the cached set.",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "Holybro",
      "mass": {
        "kg": 0.074,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 74.0
      },
      "mpn": "Pixhawk 6X (Standard Baseboard)",
      "name": "Holybro Pixhawk 6X (Standard Baseboard)",
      "occurrences": [
        "flight_controller"
      ],
      "part_id": "flight_controller",
      "placed_geometry": {
        "measured_size_mm": [
          103.4,
          52.4,
          31.3
        ],
        "path": "design_package/mechanical/parts/flight_controller.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "b6dc8b412a9494857fa7d0d3a70b2c39cf1391b39dbcc1e5704deb600b37d2d1",
        "sha256_matches_file": true
      }
    },
    {
      "cad_acquisition": {
        "cad_links": [],
        "pages": 1,
        "state": "NO_MAKER_MODEL_ACCEPTED",
        "why": "no CAD link found on the maker's pages reached from the run's 1 document(s) (0 page(s) on the maker's host)"
      },
      "catalog_id": "isolator_enidine_cr2_400",
      "collision": {
        "acceptance_window_mm3": [
          10694.430000000002,
          12120.354
        ],
        "closes": true,
        "closure_ratio_vs_solid": 0.9999999999999997,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 1
      },
      "description": "ITT Enidine CR2-400 compact wire-rope isolator",
      "envelope": {
        "record_notes": [
          "Envelope 27.0 x 27.0 x 16.3 mm from the WR catalogue outline. The cable loops are not modelled; only the installed envelope and the two bar faces matter for assembly.",
          "Enidine (ITT) CR2-400-D; retrieved 2026-08-31 from https://www.enidine.com/en-us/products/compact-wire-rope-isolators",
          "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article",
          "MECH_CAD_SOURCE_GAP: The Enidine WR catalogue dimensions the mounting bar length but not the bar's two-hole pitch, so each isolator is retained by a single central M3 through the bracket web instead of the catalogue's two holes. A two-hole bracket pattern cannot be drawn from the cached catalogue without inventing the pitch."
        ],
        "stated_dimensions": [
          {
            "role": "width",
            "source": "design_package/mechanical/vendor_cad/enidine/CR-series/WR_Catalog.pdf#p.41 CR2 Series sizing table, width 'W' (Ref) (method=vendor_published)",
            "stated_mm": 27.0
          },
          {
            "role": "height",
            "source": "design_package/mechanical/vendor_cad/enidine/CR-series/WR_Catalog.pdf#p.41 CR2 Series sizing table, height 'H' (method=vendor_published)",
            "stated_mm": 27.0
          }
        ],
        "why": "no vendor CAD published; geometry is built from datasheet dimensions and the fidelity field says how far that is from the article MECH_CAD_SOURCE_GAP: The Enidine WR catalogue dimensions the mounting bar length but not the bar's two-hole pitch, so each isolator is retained by a single central M3 through the bracket web instead of the catalogue's two holes. A two-hole bracket pattern cannot be drawn from the cached catalogue without inventing the pitch.",
        "why_source": "stage 2A part notes (verbatim, the notes that name CAD, STEP or a 3D model)"
      },
      "geometry_fidelity": "envelope_only",
      "label": "datasheet envelope",
      "manufacturer": "Enidine (ITT)",
      "mass": {
        "kg": 0.0045000000000000005,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 4.5
      },
      "mpn": "CR2-400-D",
      "name": "Enidine (ITT) CR2-400-D",
      "occurrences": [
        "isolator_1",
        "isolator_2",
        "isolator_3",
        "isolator_4"
      ],
      "part_id": "isolator",
      "placed_geometry": {
        "measured_size_mm": [
          27.0,
          27.0,
          16.3
        ],
        "path": "design_package/mechanical/parts/isolator.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "7d01871f9414f2e48064d7b9f79d50cddbed55c8a443c29b74260168cd2ac4fd",
        "sha256_matches_file": true
      }
    },
    {
      "cad_acquisition": {
        "cad_links": [],
        "pages": 0,
        "state": "MAKER_MODEL_ALREADY_PLACED",
        "why": "the robot already carries the maker's model of this part; it is not searched again"
      },
      "catalog_id": "motor_tmotor_mn5008_kv170",
      "collision": {
        "acceptance_window_mm3": [
          8576.76919207209,
          54615.177411880766
        ],
        "closes": true,
        "closure_ratio_vs_solid": 1.7053050002648578,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 64
      },
      "description": "T-MOTOR MN5008 KV170 brushless motor",
      "geometry_fidelity": "exact",
      "label": "maker model",
      "maker_model": {
        "file_sha256_matches_record": true,
        "licence": {
          "access_note": null,
          "code": "LICENCE_NOT_STATED",
          "text": "the record states no licence or terms for the model"
        },
        "local_path": "design_package/mechanical/vendor_cad/tmotor/MN5008-KV170/mn5008-motor-3d-model.step",
        "manufacturer": "T-MOTOR",
        "mpn": "MN5008 KV170",
        "recorded_by": "design_package/mechanical/vendor_cad/tmotor/MN5008-KV170/mn5008-motor-3d-model.step.retrieval.json",
        "retrieved_utc": "2026-08-31T21:52:51.918686+00:00",
        "sha256": "c0122648f7003a603475581eb711c9841b8aa667aca548002bb28a2a48fd458d",
        "state": "RECORDED",
        "url": "https://cn.tmotor.com/uploadfile/downloads/tmotor-mn5008-motor-3d-model.step",
        "url_found_in": "https://uav-en.tmotor.com/download/43.html, download-item titled 'MN5008 Motor 3D CAD Model', file type '3D CAD Model / STEP'"
      },
      "manufacturer": "T-MOTOR",
      "mass": {
        "kg": 0.128,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 128.0
      },
      "mpn": "MN5008 KV170",
      "name": "T-MOTOR MN5008 KV170",
      "occurrences": [
        "motor_1",
        "motor_2",
        "motor_3",
        "motor_4",
        "motor_5",
        "motor_6"
      ],
      "part_id": "motor",
      "placed_geometry": {
        "measured_size_mm": [
          55.6,
          55.6,
          31.9
        ],
        "path": "design_package/mechanical/parts/motor.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "87bf33d96145e573bcc289ead5205b6cfa53a80f0381c1e1f3e02cb165262602",
        "sha256_matches_file": true
      },
      "scale_check": {
        "band": [
          0.8,
          1.25
        ],
        "made_by": "this account, on the placed geometry",
        "model_size_mm": [
          55.6,
          55.6,
          31.9
        ],
        "notes": [
          "body_diameter_mm = 55.6 mm is measured from the model itself (design_package/mechanical/vendor_cad/tmotor/MN5008-KV170/mn5008-motor-3d-model.step#largest z-axial cylindrical face in the assembly (method=brep_queried)); not read",
          "overall_height_mm = 31.9 mm is measured from the model itself (design_package/mechanical/vendor_cad/tmotor/MN5008-KV170/mn5008-motor-3d-model.step#triangulation z extent at 0.005 mm deflection, whole assembly (method=brep_queried)); not read",
          "radial_envelope_diameter_mm = 55.6 mm is measured from the model itself (design_package/mechanical/vendor_cad/tmotor/MN5008-KV170/mn5008-motor-3d-model.step#maximum node radius about the part axis over a triangulation at 0.005 mm deflection, whole assembly (method=brep_queried)); not read"
        ],
        "rule": "geometric mean of model/stated over the pairing of stated dimensions with model extents that minimises the largest |log ratio|; agrees when it lies in the band",
        "schema": "anubis.stage2a.vendor_model_scale_check/1",
        "stated": [],
        "tolerance": 0.25,
        "verdict": "NOT_CHECKABLE",
        "why": "the part's record states no overall dimension"
      }
    },
    {
      "cad_acquisition": {
        "cad_links": [],
        "pages": 0,
        "state": "MAKER_MODEL_ALREADY_PLACED",
        "why": "the robot already carries the maker's model of this part; it is not searched again"
      },
      "catalog_id": "prop_tmotor_p18x61_cf",
      "collision": {
        "acceptance_window_mm3": [
          42916.94448509526,
          160615.8287532893
        ],
        "closes": true,
        "closure_ratio_vs_solid": 0.9347467958204709,
        "derived_from": "the placed geometry, by Stage 2A's V-HACD closure judge (mechanical/collision/collision_closure.json)",
        "hull_count": 64
      },
      "description": "T-MOTOR P18*6.1 CF Polish propeller (two blades, integrated)",
      "geometry_fidelity": "exact",
      "label": "maker model",
      "maker_model": {
        "file_sha256_matches_record": true,
        "licence": {
          "access_note": null,
          "code": "LICENCE_NOT_STATED",
          "text": "the record states no licence or terms for the model"
        },
        "local_path": "design_package/mechanical/vendor_cad/tmotor/P18X6.1-CF-POLISH/p18-propeller-3d-model.step",
        "manufacturer": "T-MOTOR",
        "mpn": "P18*6.1 CF Polish",
        "recorded_by": "design_package/mechanical/vendor_cad/tmotor/P18X6.1-CF-POLISH/p18-propeller-3d-model.step.retrieval.json",
        "retrieved_utc": "2026-08-31T21:53:19.944382+00:00",
        "sha256": "a9517656f8ed57d936358b24a95ce161fc7bddc522495fae95e19206b3349473",
        "state": "RECORDED",
        "url": "https://en.tmotor.com/uploadfile/downloads/tmotor-p18-propeller-3d-model.step",
        "url_found_in": "https://uav-en.tmotor.com/download/3.html, download-item titled 'P18x6.1 Propeller 3D Model', file type '3D CAD Model / STEP'"
      },
      "manufacturer": "T-MOTOR",
      "mass": {
        "kg": 0.063,
        "source": "design_package/mechanical/resolved_parts_mass_properties.json",
        "vendor_mass_g": 63.0
      },
      "mpn": "P18*6.1 CF Polish",
      "name": "T-MOTOR P18*6.1 CF Polish",
      "occurrences": [
        "propeller_1",
        "propeller_2",
        "propeller_3",
        "propeller_4",
        "propeller_5",
        "propeller_6"
      ],
      "part_id": "propeller",
      "placed_geometry": {
        "measured_size_mm": [
          457.2213,
          58.1134,
          21.0808
        ],
        "path": "design_package/mechanical/parts/propeller.brep",
        "path_basis": "Stage 2F.5 occurrence manifest geometry_path",
        "sha256": "13c47db1abe27353ae7f41a5ab830d017fec996af2e4cd52ef55c55eda62af87",
        "sha256_matches_file": true
      },
      "scale_check": {
        "band": [
          0.8,
          1.25
        ],
        "made_by": "this account, on the placed geometry",
        "model_size_mm": [
          457.2213,
          58.1134,
          21.0808
        ],
        "notes": [
          "installation_diameter_mm = 457.268461517 mm is measured from the model itself (design_package/mechanical/vendor_cad/tmotor/P18X6.1-CF-POLISH/p18-propeller-3d-model.step#twice the maximum node radius about the propeller axis over a triangulation at 0.005 mm deflection (method=brep_queried)); not read"
        ],
        "rule": "geometric mean of model/stated over the pairing of stated dimensions with model extents that minimises the largest |log ratio|; agrees when it lies in the band",
        "schema": "anubis.stage2a.vendor_model_scale_check/1",
        "stated": [],
        "tolerance": 0.25,
        "verdict": "NOT_CHECKABLE",
        "why": "the part's record states no overall dimension"
      }
    }
  ],
  "scale_check_rule": {
    "refusal_code": "VENDOR_MODEL_SCALE_MISMATCH",
    "tolerance": 0.25
  },
  "schema": "anubis.stage2f5.bought_part_geometry/1",
  "sources": [
    {
      "path": "design_package/integration/component_instance_manifest.json",
      "sha256": "bbf3a77bf4e2f7fbd2a3a932e1af8bb86d868a4aa4c4d087a56e9d2222e00f21"
    },
    {
      "path": "design_package/mechanical/collision/collision_closure.json",
      "sha256": "95b655b330b8fdf64ce1b6a1dafb6688664c023331f67acd54d1cc5ee500cdcd"
    },
    {
      "path": "design_package/mechanical/mechanical_assembly_spec.json",
      "sha256": "560e66c267d0462fa7af846879ac89258781f7f1369ba78d8fcae8495102bd14"
    },
    {
      "path": "design_package/mechanical/vendor_cad/acquired/cad_acquisition.json",
      "sha256": "3e46b0ba975bccb8089e5d3488db5ce7a8fb15eddf5b8bedff4803b048e1cec8"
    }
  ]
}
