{
  "schema_version": "hardware-structure/v2",
  "unit": "mm",
  "product_id": "creative-041",
  "title": "041 定量宠物喂食器结构概念评审",
  "revision": "engineering-fit-r2-20261016",
  "updated_at": "2026-10-16",
  "coordinate_system": "X=产品宽度，Y=上下，Z=前后；原点位于产品主体外包络中心",
  "case_metadata": {
    "case_id": 41,
    "domain": "宠物与动物",
    "name": "定量宠物喂食器",
    "user_value": "按计划定量出粮，检测余粮与卡粮，并支持本地手动喂食。",
    "discovery_platform": "Amazon",
    "source_grade": "C",
    "source_url": "https://www.amazon.com/s?k=automatic%20pet%20feeder%20smart",
    "mvp_path": "舵机/步进电机控制单次份量；超声测余粮；电流检测卡粮；Home Assistant 记录。",
    "components": "ESP32、步进电机、称重/超声、电流传感器、按钮",
    "software_stack": "ESPHome、Home Assistant、MQTT",
    "github_project": "DIY Cheap Cat Feeder",
    "github_url": "https://github.com/rubengargar/diy-cheap-cat-feeder",
    "match_level": "直接",
    "bom_estimate_cny": 420,
    "difficulty": 3,
    "novelty": 3,
    "demand": 5,
    "reuse": 5,
    "risk": 4,
    "differentiation": "离线日程、可拆洗料道和卡粮自检。",
    "safety_boundary": "不能作为长期无人照护替代；断电要能手动供食。",
    "recommendation_score": 70,
    "structural_archetype": "pet_feeder",
    "prototype_family": "pet-wearable",
    "prototype_label_zh": "宠物佩戴与饲养设备",
    "prototype_label_en": "Pet-worn and animal-care assembly",
    "prototype_version": "creative-host-assembly/v1",
    "migration_role": "prototype_migrated",
    "assembly_topology": [
      "动物或饲养环境",
      "佩戴或防倾安装",
      "功能主机",
      "安全接触面"
    ],
    "dimension_authority": "design_proposed_and_pending_verification",
    "structure_evidence": [
      {
        "id": "workbook-source-041",
        "url": "https://www.amazon.com/s?k=automatic%20pet%20feeder%20smart",
        "kind": "discovery_source",
        "claim": "工作簿记录的创意发现来源；只证明市场灵感，不证明机械尺寸。",
        "application": "idea_provenance_only"
      },
      {
        "id": "pet_feeder",
        "url": "https://manuals.plus/asin/B0C5WGSGKK",
        "kind": "product_manual",
        "claim": "自动喂食器由可拆料仓、转子、主机、食盆和双电源仓组成。",
        "application": "analogous_structure_reference"
      }
    ],
    "evidence_maturity": "analogous_reference",
    "recognition_parts": [
      "密封粮桶",
      "可拆顶盖",
      "防卡转子",
      "出粮斜槽",
      "不锈钢食盆",
      "电池底仓"
    ],
    "geometry_authority": "design_proposed_functional_constraints",
    "geometry_generation_method": "codex_agent_closed_loop",
    "geometry_iteration": 4,
    "geometry_fingerprint": "sha256:c6b1dd434ff0d6348fe10210f2d20cdb85abdf34fbc745142b37af29f226bfdf",
    "structure_quality_revision": "structure-quality-r1",
    "engineering_geometry_authority": "design_proposed_from_functional_constraints",
    "previous_geometry_authority": "concept_photo_primary"
  },
  "envelope": {
    "external": {
      "width": 280,
      "height": 400,
      "depth": 420,
      "center": [
        0,
        0,
        85
      ]
    },
    "internal": {
      "width": 274,
      "height": 394,
      "depth": 414,
      "center": [
        0,
        0,
        85
      ]
    },
    "wall_thickness": 3
  },
  "openings": [],
  "prototype_instance": {
    "schema_version": "creative-host-assembly/v1",
    "prototype_family": "pet-wearable",
    "prototype_label_zh": "宠物佩戴与饲养设备",
    "prototype_label_en": "Pet-worn and animal-care assembly",
    "host_strategy": "floor_supported_feeding_appliance",
    "shell_strategy": "washable_food_path_and_dry_electronics_bay",
    "assembly_topology": [
      "防倾地面支撑与底仓",
      "直立可拆粮桶和顶盖",
      "共轴电机/定量转盘/可拆斜槽",
      "独立称重食盆与反馈"
    ],
    "migration_role": "prototype_migrated",
    "legacy_family_note": "pet-wearable 为旧迁移分类标签，不能作为当前机械宿主或佩戴用途依据。"
  },
  "assemblies": [
    {
      "id": "codex-host-assembly",
      "label": "使用宿主与安装基准",
      "part_ids": [
        "host-pet-torso"
      ]
    },
    {
      "id": "codex-product-form",
      "label": "产品主体与照片可识别零件",
      "part_ids": [
        "codex-body",
        "codex-recognition-01",
        "codex-recognition-02",
        "codex-recognition-03",
        "codex-recognition-04",
        "codex-recognition-05",
        "codex-recognition-06"
      ]
    },
    {
      "id": "codex-electronics",
      "label": "内部电子与功能路径",
      "part_ids": [
        "codex-main-pcba"
      ]
    },
    {
      "id": "engineering-fit-components",
      "label": "2026-10-16 装配修订实体零件",
      "part_ids": [
        "feeder-motor",
        "feeder-motor-shaft",
        "feeder-motor-mount",
        "feeder-food-divider",
        "feeder-battery-envelope",
        "feeder-rotor-home",
        "feeder-level-probe",
        "feeder-bowl-floor",
        "feeder-bowl-loadcell",
        "feeder-bowl-spacer",
        "feeder-bowl-plinth",
        "feeder-base-bottom"
      ]
    }
  ],
  "parts": [
    {
      "id": "host-pet-torso",
      "label": "桌面/地面支撑基准（旧 pet-wearable 宿主已废弃）",
      "group": "host",
      "type": "box",
      "dimensions": {
        "width": 480,
        "height": 8,
        "depth": 500
      },
      "position": [
        0,
        -204,
        85
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0.0,
        0.0,
        0.0
      ],
      "material": "使用环境尺度参考",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 工程装配修订；尺寸为 design_proposed，见 engineering_update.source_constraints，非供应商 CAD 或实物确认。",
      "appearance": {
        "color": "#7c6e62",
        "opacity": 0.035,
        "roughness": 0.82,
        "metalness": 0.05
      },
      "color": "#7c6e62",
      "camera_fit": false,
      "photo_derived": true,
      "photo_component_id": "host-context",
      "source_target_id": "host-context",
      "source_part_ids": [
        "host-pet-torso"
      ],
      "photo_visible": true,
      "render_mode": "metadata_only",
      "geometry_role": "floor_context"
    },
    {
      "id": "codex-body",
      "label": "筒形整机轮廓参考（实体粮桶/底仓见子件）",
      "group": "shell",
      "type": "cylinder",
      "dimensions": {
        "diameter": 240.0,
        "length": 380.0
      },
      "position": [
        0.0,
        0.0,
        0.0
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0.0,
        1.0,
        0.0
      ],
      "material": "材料与 CMF 由概念照片推断，待工程确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 工程装配修订；尺寸为 design_proposed，见 engineering_update.source_constraints，非供应商 CAD 或实物确认。",
      "appearance": {
        "color": "#d8d7cf",
        "opacity": 0.82,
        "roughness": 0.58,
        "metalness": 0.08
      },
      "color": "#d8d7cf",
      "photo_derived": true,
      "photo_component_id": "product-silhouette",
      "source_target_id": "product-silhouette",
      "source_part_ids": [
        "codex-body"
      ],
      "photo_bbox": [
        420,
        103,
        803,
        925
      ],
      "photo_polygon": [
        [
          425,
          715
        ],
        [
          420,
          730
        ],
        [
          420,
          910
        ],
        [
          425,
          918
        ],
        [
          430,
          922
        ],
        [
          545,
          922
        ],
        [
          540,
          920
        ],
        [
          535,
          915
        ],
        [
          535,
          785
        ],
        [
          540,
          780
        ],
        [
          535,
          775
        ],
        [
          535,
          650
        ],
        [
          540,
          645
        ],
        [
          555,
          640
        ],
        [
          555,
          422
        ],
        [
          540,
          422
        ]
      ],
      "photo_visible": true,
      "camera_fit": true,
      "render_mode": "metadata_only"
    },
    {
      "id": "codex-recognition-01",
      "label": "密封粮桶（直立可拆内胆）",
      "group": "shell",
      "type": "ring",
      "dimensions": {
        "outer_diameter": 220,
        "inner_diameter": 214,
        "width": 220
      },
      "position": [
        0,
        65,
        0
      ],
      "rotation_deg": [
        90,
        0,
        0
      ],
      "explode_vector": [
        1.0,
        1.0,
        1.0
      ],
      "material": "食品接触 PP 候选；批次/清洁/迁移测试待确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 工程装配修订；尺寸为 design_proposed，见 engineering_update.source_constraints，非供应商 CAD 或实物确认。",
      "appearance": {
        "color": "#c7e0e2",
        "opacity": 0.34,
        "roughness": 0.16,
        "metalness": 0.02
      },
      "color": "#c7e0e2",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-041",
        "pet_feeder"
      ],
      "photo_derived": true,
      "photo_component_id": "recognition-01",
      "source_target_id": "recognition-01",
      "source_part_ids": [
        "codex-recognition-01"
      ],
      "photo_bbox": [
        538,
        103,
        798,
        428
      ],
      "photo_polygon": [
        [
          541,
          110
        ],
        [
          792,
          110
        ],
        [
          795,
          120
        ],
        [
          798,
          415
        ],
        [
          793,
          422
        ],
        [
          540,
          422
        ],
        [
          538,
          415
        ],
        [
          538,
          120
        ]
      ],
      "photo_visible": true,
      "camera_fit": true,
      "section_profile": "rectangular",
      "geometry_representation": "nominal_rectangular_annular_volume"
    },
    {
      "id": "codex-recognition-02",
      "label": "可拆顶盖",
      "group": "shell",
      "type": "cylinder",
      "dimensions": {
        "diameter": 224,
        "length": 6
      },
      "position": [
        0,
        178,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        1.0,
        1.0,
        1.0
      ],
      "material": "食品接触 PP 候选与可换密封圈",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 工程装配修订；尺寸为 design_proposed，见 engineering_update.source_constraints，非供应商 CAD 或实物确认。",
      "appearance": {
        "color": "#d8d7cf",
        "opacity": 1.0,
        "roughness": 0.58,
        "metalness": 0.08
      },
      "color": "#d8d7cf",
      "profile_points": [
        [
          -96.136,
          6.934
        ],
        [
          -93.211,
          9.246
        ],
        [
          -85.901,
          10.17
        ],
        [
          85.901,
          10.17
        ],
        [
          93.211,
          9.246
        ],
        [
          96.136,
          6.934
        ],
        [
          96.136,
          -6.934
        ],
        [
          93.211,
          -9.246
        ],
        [
          85.901,
          -10.17
        ],
        [
          -85.901,
          -10.17
        ],
        [
          -93.211,
          -9.246
        ],
        [
          -96.136,
          -6.934
        ]
      ],
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-041",
        "pet_feeder"
      ],
      "photo_derived": true,
      "photo_component_id": "recognition-02",
      "source_target_id": "recognition-02",
      "source_part_ids": [
        "codex-recognition-02"
      ],
      "photo_bbox": [
        536,
        103,
        799,
        147
      ],
      "photo_polygon": [
        [
          536,
          110
        ],
        [
          540,
          105
        ],
        [
          550,
          103
        ],
        [
          785,
          103
        ],
        [
          795,
          105
        ],
        [
          799,
          110
        ],
        [
          799,
          140
        ],
        [
          795,
          145
        ],
        [
          785,
          147
        ],
        [
          550,
          147
        ],
        [
          540,
          145
        ],
        [
          536,
          140
        ]
      ],
      "photo_visible": true,
      "camera_fit": true
    },
    {
      "id": "codex-recognition-03",
      "label": "防卡转子（可拆定量转盘预留）",
      "group": "sensor",
      "type": "cylinder",
      "dimensions": {
        "diameter": 70,
        "length": 18
      },
      "position": [
        0,
        -58,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        -1.0,
        -1.0,
        1.0
      ],
      "material": "材料与 CMF 由概念照片推断，待工程确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 工程装配修订；尺寸为 design_proposed，见 engineering_update.source_constraints，非供应商 CAD 或实物确认。",
      "appearance": {
        "color": "#d8d7cf",
        "opacity": 1.0,
        "roughness": 0.58,
        "metalness": 0.08
      },
      "color": "#d8d7cf",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-041",
        "pet_feeder"
      ],
      "photo_derived": true,
      "photo_component_id": "recognition-03",
      "source_target_id": "recognition-03",
      "source_part_ids": [
        "codex-recognition-03"
      ],
      "photo_bbox": [
        466,
        744,
        527,
        835
      ],
      "photo_polygon": [],
      "photo_visible": false,
      "camera_fit": false,
      "render_mode": "solid"
    },
    {
      "id": "codex-recognition-04",
      "label": "出粮斜槽",
      "group": "sensor",
      "type": "prism",
      "dimensions": {
        "width": 50,
        "height": 30,
        "depth": 80
      },
      "position": [
        0,
        -92,
        80
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        -1.0,
        -1.0,
        1.0
      ],
      "material": "可拆洗食品接触斜槽；表面/倾角待粮粒实测",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 工程装配修订；尺寸为 design_proposed，见 engineering_update.source_constraints，非供应商 CAD 或实物确认。",
      "appearance": {
        "color": "#53c9ad",
        "opacity": 0.96,
        "roughness": 0.24,
        "metalness": 0.03
      },
      "color": "#53c9ad",
      "profile_points": [
        [
          -25.587,
          18.491
        ],
        [
          25.587,
          18.491
        ],
        [
          29.243,
          16.18
        ],
        [
          29.243,
          -16.18
        ],
        [
          25.587,
          -18.491
        ],
        [
          18.277,
          -20.803
        ],
        [
          -18.277,
          -20.803
        ],
        [
          -25.587,
          -18.491
        ],
        [
          -29.243,
          -16.18
        ],
        [
          -29.243,
          16.18
        ]
      ],
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-041",
        "pet_feeder"
      ],
      "photo_derived": true,
      "photo_component_id": "recognition-04",
      "source_target_id": "recognition-04",
      "source_part_ids": [
        "codex-recognition-04"
      ],
      "photo_bbox": [
        555,
        640,
        635,
        730
      ],
      "photo_polygon": [
        [
          560,
          645
        ],
        [
          630,
          645
        ],
        [
          635,
          650
        ],
        [
          635,
          720
        ],
        [
          630,
          725
        ],
        [
          620,
          730
        ],
        [
          570,
          730
        ],
        [
          560,
          725
        ],
        [
          555,
          720
        ],
        [
          555,
          650
        ]
      ],
      "photo_visible": true,
      "camera_fit": true
    },
    {
      "id": "codex-recognition-05",
      "label": "不锈钢食盆",
      "group": "sensor",
      "type": "ring",
      "dimensions": {
        "outer_diameter": 170,
        "inner_diameter": 166,
        "width": 40
      },
      "position": [
        0,
        -155,
        205
      ],
      "rotation_deg": [
        90,
        0,
        0
      ],
      "explode_vector": [
        -1.0,
        -1.0,
        1.0
      ],
      "material": "食品接触不锈钢候选；牌号、接缝和清洗验证待确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 工程装配修订；尺寸为 design_proposed，见 engineering_update.source_constraints，非供应商 CAD 或实物确认。",
      "appearance": {
        "color": "#8b9698",
        "opacity": 1.0,
        "roughness": 0.28,
        "metalness": 0.72
      },
      "color": "#8b9698",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-041",
        "pet_feeder"
      ],
      "photo_derived": true,
      "photo_component_id": "recognition-05",
      "source_target_id": "recognition-05",
      "source_part_ids": [
        "codex-recognition-05"
      ],
      "photo_bbox": [
        420,
        710,
        652,
        925
      ],
      "photo_polygon": [
        [
          425,
          715
        ],
        [
          645,
          715
        ],
        [
          650,
          720
        ],
        [
          652,
          730
        ],
        [
          652,
          910
        ],
        [
          650,
          918
        ],
        [
          645,
          922
        ],
        [
          430,
          922
        ],
        [
          425,
          918
        ],
        [
          420,
          910
        ],
        [
          420,
          730
        ]
      ],
      "photo_visible": true,
      "camera_fit": true,
      "section_profile": "rectangular",
      "geometry_representation": "nominal_rectangular_annular_volume"
    },
    {
      "id": "codex-recognition-06",
      "label": "电池底仓（电机/电子隔离底座）",
      "group": "shell",
      "type": "rounded_frame",
      "dimensions": {
        "width": 240,
        "height": 100,
        "depth": 220,
        "corner_radius": 12,
        "frame_width": 3
      },
      "position": [
        0,
        -140,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        1.0,
        -1.0,
        1.0
      ],
      "material": "材料与 CMF 由概念照片推断，待工程确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 工程装配修订；尺寸为 design_proposed，见 engineering_update.source_constraints，非供应商 CAD 或实物确认。",
      "appearance": {
        "color": "#d8d7cf",
        "opacity": 1.0,
        "roughness": 0.58,
        "metalness": 0.08
      },
      "color": "#d8d7cf",
      "profile_points": [
        [
          -94.308,
          32.36
        ],
        [
          94.308,
          32.36
        ],
        [
          97.963,
          30.049
        ],
        [
          97.963,
          -30.049
        ],
        [
          94.308,
          -32.36
        ],
        [
          88.46,
          -33.285
        ],
        [
          -90.653,
          -33.285
        ],
        [
          -94.308,
          -32.36
        ],
        [
          -97.963,
          -30.049
        ],
        [
          -97.963,
          30.049
        ]
      ],
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-041",
        "pet_feeder"
      ],
      "photo_derived": true,
      "photo_component_id": "recognition-06",
      "source_target_id": "recognition-06",
      "source_part_ids": [
        "codex-recognition-06"
      ],
      "photo_bbox": [
        535,
        775,
        803,
        925
      ],
      "photo_polygon": [
        [
          540,
          780
        ],
        [
          798,
          780
        ],
        [
          803,
          785
        ],
        [
          803,
          915
        ],
        [
          798,
          920
        ],
        [
          790,
          922
        ],
        [
          545,
          922
        ],
        [
          540,
          920
        ],
        [
          535,
          915
        ],
        [
          535,
          785
        ]
      ],
      "photo_visible": true,
      "camera_fit": true
    },
    {
      "id": "codex-main-pcba",
      "label": "主控 PCBA（内部建议布局）",
      "group": "pcb",
      "type": "box",
      "dimensions": {
        "width": 92,
        "height": 68,
        "depth": 1.6
      },
      "position": [
        65,
        -145,
        -90
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0.0,
        0.0,
        -1.0
      ],
      "material": "FR-4 多层板；板框与器件高度待工程确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 工程装配修订；尺寸为 design_proposed，见 engineering_update.source_constraints，非供应商 CAD 或实物确认。",
      "appearance": {
        "color": "#23754f",
        "opacity": 1.0,
        "roughness": 0.56,
        "metalness": 0.05
      },
      "color": "#23754f",
      "inside_envelope": true
    },
    {
      "id": "feeder-motor",
      "label": "42 mm 步进电机安装包络",
      "group": "sensor",
      "type": "box",
      "dimensions": {
        "width": 42,
        "height": 40,
        "depth": 42
      },
      "position": [
        0,
        -100,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "工程设计建议材料；牌号、尺寸公差与供货待确认",
      "quantity": 1,
      "source_status": "pending_verification",
      "source_reference": "https://www.adafruit.com/product/324 ; 42 mm frame / 5 mm shaft / 31 mm mounting pattern 为样机约束；40 mm 电机长为预留，不是厂商 CAD。"
    },
    {
      "id": "feeder-motor-shaft",
      "label": "5 mm 电机输出轴预留",
      "group": "interface",
      "type": "cylinder",
      "dimensions": {
        "diameter": 5,
        "length": 15
      },
      "position": [
        0,
        -72.5,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "工程设计建议材料；牌号、尺寸公差与供货待确认",
      "quantity": 1,
      "source_status": "pending_verification",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-motor-mount",
      "label": "步进电机固定板",
      "group": "bracket",
      "type": "box",
      "dimensions": {
        "width": 64,
        "height": 4,
        "depth": 64
      },
      "position": [
        0,
        -78,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "工程设计建议材料；牌号、尺寸公差与供货待确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-food-divider",
      "label": "粮道/电子仓隔板",
      "group": "bracket",
      "type": "box",
      "dimensions": {
        "width": 230,
        "height": 3,
        "depth": 210
      },
      "position": [
        0,
        -73.5,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "可清洁隔板；轴密封、出粮开口及防夹待详细 CAD",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-battery-envelope",
      "label": "底仓保护电池预留",
      "group": "sensor",
      "type": "box",
      "dimensions": {
        "width": 60,
        "height": 40,
        "depth": 25
      },
      "position": [
        0,
        -150,
        -55
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "电芯/保护/充电架构未冻结，当前不代替 12 V 主电源",
      "quantity": 1,
      "source_status": "pending_verification",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-rotor-home",
      "label": "转盘原点/转动反馈预留",
      "group": "sensor",
      "type": "box",
      "dimensions": {
        "width": 8,
        "height": 8,
        "depth": 5
      },
      "position": [
        40,
        -58,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "工程设计建议材料；牌号、尺寸公差与供货待确认",
      "quantity": 1,
      "source_status": "pending_verification",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-level-probe",
      "label": "上盖余粮检测探头预留",
      "group": "sensor",
      "type": "box",
      "dimensions": {
        "width": 45,
        "height": 15,
        "depth": 20
      },
      "position": [
        0,
        163,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "工程设计建议材料；牌号、尺寸公差与供货待确认",
      "quantity": 1,
      "source_status": "pending_verification",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-bowl-floor",
      "label": "可拆食盆底面",
      "group": "interface",
      "type": "cylinder",
      "dimensions": {
        "diameter": 166,
        "length": 2
      },
      "position": [
        0,
        -174,
        205
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "食品接触不锈钢候选",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-bowl-loadcell",
      "label": "食盆称重元件预留",
      "group": "sensor",
      "type": "box",
      "dimensions": {
        "width": 60,
        "height": 12,
        "depth": 15
      },
      "position": [
        0,
        -184,
        205
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "工程设计建议材料；牌号、尺寸公差与供货待确认",
      "quantity": 1,
      "source_status": "pending_verification",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-bowl-spacer",
      "label": "食盆受力端支架",
      "group": "bracket",
      "type": "box",
      "dimensions": {
        "width": 24,
        "height": 3,
        "depth": 24
      },
      "position": [
        18,
        -176.5,
        205
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "工程设计建议材料；牌号、尺寸公差与供货待确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-bowl-plinth",
      "label": "食盆称重独立底架",
      "group": "bracket",
      "type": "box",
      "dimensions": {
        "width": 180,
        "height": 6,
        "depth": 180
      },
      "position": [
        0,
        -193,
        205
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "工程设计建议材料；牌号、尺寸公差与供货待确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    },
    {
      "id": "feeder-base-bottom",
      "label": "可拆底盖",
      "group": "shell",
      "type": "box",
      "dimensions": {
        "width": 240,
        "height": 4,
        "depth": 220
      },
      "position": [
        0,
        -192,
        0
      ],
      "rotation_deg": [
        0,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        1
      ],
      "material": "工程设计建议材料；牌号、尺寸公差与供货待确认",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "2026-10-16 engineering-fit proposal; not vendor CAD or physical verification"
    }
  ],
  "patterns": [],
  "relations": [
    {
      "id": "codex-host-installation",
      "type": "installed_on",
      "part_ids": [
        "host-pet-torso",
        "codex-body"
      ],
      "description": "产品通过安装件与动物佩戴/使用基准建立可检查的空间关系"
    },
    {
      "id": "codex-component-recognition-01-01",
      "type": "located_on",
      "part_ids": [
        "codex-body",
        "codex-recognition-01"
      ],
      "description": "零件位置来自概念图二维区域映射，深度与固定方式待工程复核。"
    },
    {
      "id": "codex-component-recognition-02-01",
      "type": "located_on",
      "part_ids": [
        "codex-body",
        "codex-recognition-02"
      ],
      "description": "零件位置来自概念图二维区域映射，深度与固定方式待工程复核。"
    },
    {
      "id": "codex-component-recognition-03-01",
      "type": "located_on",
      "part_ids": [
        "codex-body",
        "codex-recognition-03"
      ],
      "description": "零件位置来自概念图二维区域映射，深度与固定方式待工程复核。"
    },
    {
      "id": "codex-component-recognition-04-01",
      "type": "located_on",
      "part_ids": [
        "codex-body",
        "codex-recognition-04"
      ],
      "description": "零件位置来自概念图二维区域映射，深度与固定方式待工程复核。"
    },
    {
      "id": "codex-component-recognition-05-01",
      "type": "located_on",
      "part_ids": [
        "codex-body",
        "codex-recognition-05"
      ],
      "description": "零件位置来自概念图二维区域映射，深度与固定方式待工程复核。"
    },
    {
      "id": "codex-component-recognition-06-01",
      "type": "located_on",
      "part_ids": [
        "codex-body",
        "codex-recognition-06"
      ],
      "description": "零件位置来自概念图二维区域映射，深度与固定方式待工程复核。"
    },
    {
      "id": "codex-photo-connection-01",
      "type": "attached_to",
      "part_ids": [
        "codex-recognition-02",
        "codex-recognition-01"
      ],
      "description": "lid covers and seals hopper opening"
    },
    {
      "id": "codex-photo-connection-02",
      "type": "routes_to",
      "part_ids": [
        "codex-recognition-01",
        "codex-recognition-04"
      ],
      "description": "hopper gravity-feeds to dispensing chute"
    },
    {
      "id": "codex-photo-connection-03",
      "type": "routes_to",
      "part_ids": [
        "codex-recognition-04",
        "codex-recognition-05"
      ],
      "description": "chute delivers food into stainless steel bowl"
    },
    {
      "id": "codex-photo-connection-04",
      "type": "attached_to",
      "part_ids": [
        "codex-recognition-06",
        "codex-recognition-05"
      ],
      "description": "base supports and integrates bowl assembly"
    },
    {
      "id": "codex-photo-connection-05",
      "type": "attached_to",
      "part_ids": [
        "codex-recognition-06",
        "codex-recognition-01"
      ],
      "description": "base structurally supports hopper tower"
    },
    {
      "id": "codex-pcba-contained",
      "type": "contained_by",
      "part_ids": [
        "codex-main-pcba",
        "codex-body"
      ],
      "description": "主控 PCBA 位于主体内部；板框、支柱和连接器位置待详细设计。"
    }
  ],
  "interfaces": [
    {
      "id": "codex-service-interface",
      "label": "供电/维护接口摘要",
      "part_ids": [
        "codex-recognition-06"
      ]
    },
    {
      "id": "feeder-motor-datum",
      "part_ids": [
        "feeder-motor",
        "feeder-motor-mount",
        "feeder-motor-shaft",
        "codex-recognition-03"
      ],
      "purpose": "步进电机、输出轴与转盘共轴；31 mm 方形安装孔阵列，M3 候选，实际孔深/轴长/联轴器待图纸。",
      "status": "design_proposed",
      "mounting_holes_mm": [
        [
          -15.5,
          -78,
          -15.5
        ],
        [
          15.5,
          -78,
          -15.5
        ],
        [
          15.5,
          -78,
          15.5
        ],
        [
          -15.5,
          -78,
          15.5
        ]
      ],
      "shaft_axis": [
        0,
        1,
        0
      ]
    },
    {
      "id": "feeder-food-path",
      "part_ids": [
        "codex-recognition-01",
        "codex-recognition-03",
        "codex-recognition-04",
        "codex-recognition-05",
        "feeder-food-divider"
      ],
      "purpose": "粮桶→可拆转盘→斜槽→独立称重食盆；隔板分离干燥电子仓，清洗无需浸泡电机或 PCB。",
      "status": "design_proposed",
      "path_mm": [
        [
          0,
          -45,
          0
        ],
        [
          0,
          -58,
          0
        ],
        [
          0,
          -92,
          80
        ],
        [
          0,
          -140,
          145
        ],
        [
          0,
          -155,
          205
        ]
      ],
      "food_contact_status": "pending_qualified_material_and_cleaning_test"
    },
    {
      "id": "feeder-dispense-feedback",
      "part_ids": [
        "feeder-rotor-home",
        "feeder-bowl-loadcell",
        "feeder-level-probe",
        "feeder-motor"
      ],
      "purpose": "旋转反馈与食盆质量增量同时验证出粮；超声仅余量趋势，电流不能替代真实克重。",
      "status": "design_proposed",
      "maximum_food_surface_y_mm": 120,
      "level_probe_blind_zone_min_mm": 35,
      "source_blind_zone_max_mm": 30,
      "proposed_margin_mm": 5
    },
    {
      "id": "feeder-shaft-seal",
      "part_ids": [
        "feeder-food-divider",
        "feeder-motor-shaft"
      ],
      "purpose": "隔板轴孔和可拆食品级密封待详细图；本隔板体块为分区，不能视为已生成孔和轴封。",
      "status": "design_proposed",
      "opening_center_mm": [
        0,
        -73.5,
        0
      ],
      "proposed_diameter_mm": 8
    }
  ],
  "cables": [],
  "assembly_steps": [
    {
      "id": "engineering-step-1",
      "sequence": 1,
      "label": "先安装电机支架、主板、电池预留和底盖，确认干燥电子仓与粮路隔离。",
      "part_ids": [
        "codex-recognition-06",
        "feeder-motor",
        "feeder-motor-mount",
        "codex-main-pcba",
        "feeder-battery-envelope",
        "feeder-base-bottom"
      ],
      "direction": [
        0,
        -1,
        0
      ],
      "status": "design_proposed"
    },
    {
      "id": "engineering-step-2",
      "sequence": 2,
      "label": "装输出轴、隔板/轴封、原点反馈与可拆转盘，再装粮桶、斜槽和顶盖。",
      "part_ids": [
        "feeder-motor-shaft",
        "feeder-food-divider",
        "feeder-rotor-home",
        "codex-recognition-03",
        "codex-recognition-01",
        "codex-recognition-04",
        "codex-recognition-02",
        "feeder-level-probe"
      ],
      "direction": [
        0,
        1,
        0
      ],
      "status": "design_proposed"
    },
    {
      "id": "engineering-step-3",
      "sequence": 3,
      "label": "独立装称重元件、受力支架与食盆；称重零点和出粮克重校准后做堵转与复电测试。",
      "part_ids": [
        "feeder-bowl-loadcell",
        "feeder-bowl-spacer",
        "feeder-bowl-plinth",
        "codex-recognition-05",
        "feeder-bowl-floor"
      ],
      "direction": [
        0,
        1,
        0
      ],
      "status": "design_proposed"
    }
  ],
  "validation_rules": [
    {
      "id": "codex-photo-form",
      "type": "photo_form_identity",
      "minimum_score": 85,
      "severity": "error"
    },
    {
      "id": "recognition-parts",
      "type": "photo_component_coverage",
      "minimum_count": 5,
      "severity": "error"
    },
    {
      "id": "assembly-legibility",
      "type": "assembly_relationship_legibility",
      "minimum_score": 85,
      "severity": "error"
    },
    {
      "id": "geometry-uniqueness",
      "type": "cross_case_geometry_uniqueness",
      "minimum_score": 85,
      "severity": "error"
    },
    {
      "id": "feeder-base-cavity-fit",
      "type": "part_inside_cavity",
      "cavity_id": "feeder-base-cavity",
      "part_ids": [
        "codex-main-pcba",
        "feeder-battery-envelope"
      ],
      "minimum_clearance_mm": 0.2,
      "severity": "error",
      "evaluator": "scripts/verify_priority_structure_geometry.py"
    },
    {
      "id": "feeder-battery-board-gap",
      "type": "nonoverlap",
      "part_ids": [
        "feeder-battery-envelope",
        "codex-main-pcba"
      ],
      "minimum_clearance_mm": 5,
      "severity": "error",
      "evaluator": "scripts/verify_priority_structure_geometry.py"
    },
    {
      "id": "feeder-bowl-body-gap",
      "type": "nonoverlap",
      "part_ids": [
        "codex-recognition-05",
        "codex-recognition-06"
      ],
      "minimum_clearance_mm": 5,
      "severity": "error",
      "evaluator": "scripts/verify_priority_structure_geometry.py"
    },
    {
      "id": "feeder-mechanical-path",
      "type": "feeder_path",
      "severity": "error",
      "evaluator": "scripts/verify_priority_structure_geometry.py"
    }
  ],
  "dimension_sources": [
    {
      "id": "concept-photo-form",
      "status": "design_proposed",
      "scope": "可见轮廓、宿主、安装点、零件数量和相对位置",
      "reference": "/hardware-structure/photos/creative-041-photo-v1.jpg"
    },
    {
      "id": "codex-c-loop-geometry",
      "status": "design_proposed",
      "scope": "照片驱动参数几何、内部装配、工作路径和浏览器评审视图",
      "reference": "Codex Agent -> code -> render -> visual review -> patch, iteration 4"
    },
    {
      "id": "hidden-dimensions",
      "status": "pending_verification",
      "scope": "照片不可见的深度、背面、壁厚、紧固、密封、公差和真实材料",
      "reference": "Requires multi-view images, supplier drawings or physical measurement"
    },
    {
      "id": "engineering-fit-20261016",
      "status": "design_proposed",
      "scope": "7 案例的腔体、部件包络、功能基准与装配修订",
      "reference": "docs/engineering/traffic-production-20261016/README.md; engineering_update.source_constraints"
    }
  ],
  "visual_assets": [
    {
      "id": "product-concept-photo",
      "type": "ai_generated_concept_photo",
      "url": "/hardware-structure/photos/creative-041-photo-v1.jpg",
      "source_status": "ai_generated_concept",
      "revision": "photo-v1",
      "truth_boundary": {
        "zh": "AI 生成的产品概念照片，用于表达外观与使用场景，不是量产实物摄影。",
        "en": "AI-generated product concept image for form and use context; not a photograph of a manufactured unit."
      }
    },
    {
      "id": "structure-thumbnail",
      "type": "structure_preview",
      "url": "/hardware-structure/thumbnails/creative-041.svg"
    }
  ],
  "photo_structure_contract": {
    "schema_version": "creative-photo-structure-contract/v1",
    "photo_revision": "photo-v1",
    "structure_revision": "engineering-fit-r2-20261016",
    "prototype_family": "pet-wearable",
    "migration_role": "prototype_migrated",
    "host": "地面或桌面支撑的喂食设备；不安装在宠物躯干。",
    "installation": "低重心底座支撑，粮桶/转盘/斜槽/食盆可拆洗。",
    "scale_reference": "动物佩戴/使用基准",
    "visual_cues": [
      "密封粮桶",
      "可拆顶盖",
      "防卡转子",
      "出粮斜槽",
      "不锈钢食盆",
      "电池底仓"
    ],
    "expected_recognition_parts": [
      "密封粮桶",
      "可拆顶盖",
      "防卡转子",
      "出粮斜槽",
      "不锈钢食盆",
      "电池底仓"
    ],
    "pixel_review_status": "photo_geometry_rebuilt_pending_review",
    "truth_boundary": "结构契约验证照片和参数模型共享同一组可识别部件；非像素级 CAD 重建。",
    "quality_status": "reworked_pending_blind_visual_review"
  },
  "assumptions": [
    "单张概念图约束可见轮廓、颜色、零件数量和二维空间关系，不能证明背面及内部结构。",
    "深度、壁厚、紧固、密封和装配公差由 Codex 生成设计建议，必须经过图纸或实物复核。",
    "浏览器模型使用统一毫米单位，并保留概念、推断与待确认边界。",
    "recognition-03 internal rotor geometry not visible - marked invisible per instructions",
    "recognition-06 battery compartment is inferred from typical product layout and lower base volume - exact panel seams not clearly resolved",
    "本次实际装配几何优先于旧照片投影和原型模板；未执行的环境、强度、寿命及校准测试不因名义空间检查通过而完成。"
  ],
  "engineering_boundary": "2026-10-16 工程装配提案：已修正列出的名义几何矛盾并建立可执行空间校验。所有新增/改动尺寸为 design_proposed；不是供应商原生 CAD，不证明公差、材料、强度、热、密封、射频、传感性能或量产放行。现有概念照片仅保留为外观参考，后续需供应商图纸和样机验证。",
  "photo_reconstruction": {
    "schema_version": "creative-photo-reconstruction/v1",
    "product_id": "creative-041",
    "case_id": 41,
    "photo_revision": "photo-v1",
    "structure_input_revision": "codex-geometry-c5",
    "generated_at": "2026-09-03",
    "photo": {
      "url": "/hardware-structure/photos/creative-041-photo-v1.jpg",
      "width_px": 960,
      "height_px": 600,
      "sha256": "4177c0c7e6de51e19fee97f7355a78a2c6da7e0187cd77c2902db38189668be9",
      "coordinate_system": "normalized image space 0..1000; origin top-left"
    },
    "targets": [
      {
        "id": "host-context",
        "label": "动物佩戴/使用基准",
        "role": "host",
        "part_ids": [
          "host-pet-torso"
        ],
        "instruction": "Tight box around the physical host or use surface that establishes installation and scale.",
        "bound_part_ids": [
          "host-pet-torso"
        ]
      },
      {
        "id": "recognition-01",
        "label": "密封粮桶",
        "role": "product_shell",
        "part_ids": [
          "codex-recognition-01"
        ],
        "instruction": "Tight box and polygon around this visible photo-defining part or repeated group.",
        "bound_part_ids": [
          "codex-recognition-01"
        ]
      },
      {
        "id": "recognition-02",
        "label": "可拆顶盖",
        "role": "product_shell",
        "part_ids": [
          "codex-recognition-02"
        ],
        "instruction": "Tight box and polygon around this visible photo-defining part or repeated group.",
        "bound_part_ids": [
          "codex-recognition-02"
        ]
      },
      {
        "id": "recognition-03",
        "label": "防卡转子",
        "role": "visible_part",
        "part_ids": [
          "codex-recognition-03"
        ],
        "instruction": "Tight box and polygon around this visible photo-defining part or repeated group.",
        "bound_part_ids": [
          "codex-recognition-03"
        ]
      },
      {
        "id": "recognition-04",
        "label": "出粮斜槽",
        "role": "visible_part",
        "part_ids": [
          "codex-recognition-04"
        ],
        "instruction": "Tight box and polygon around this visible photo-defining part or repeated group.",
        "bound_part_ids": [
          "codex-recognition-04"
        ]
      },
      {
        "id": "recognition-05",
        "label": "不锈钢食盆",
        "role": "visible_part",
        "part_ids": [
          "codex-recognition-05"
        ],
        "instruction": "Tight box and polygon around this visible photo-defining part or repeated group.",
        "bound_part_ids": [
          "codex-recognition-05"
        ]
      },
      {
        "id": "recognition-06",
        "label": "电池底仓",
        "role": "visible_part",
        "part_ids": [
          "codex-recognition-06"
        ],
        "instruction": "Tight box and polygon around this visible photo-defining part or repeated group.",
        "bound_part_ids": [
          "codex-recognition-06"
        ]
      },
      {
        "id": "product-silhouette",
        "label": "产品主体整体轮廓",
        "role": "product_shell",
        "part_ids": [
          "codex-body"
        ],
        "instruction": "Trace the complete visible product silhouette, excluding the host and background.",
        "bound_part_ids": [
          "codex-body"
        ]
      }
    ],
    "regions": [
      {
        "target_id": "host-context",
        "role": "host",
        "bbox": [
          78,
          425,
          426,
          790
        ],
        "polygon": [
          [
            78,
            425
          ],
          [
            426,
            425
          ],
          [
            426,
            790
          ],
          [
            78,
            790
          ]
        ],
        "visible": true,
        "confidence": 0.95,
        "shape_hint": "cylinder",
        "visual_description": "cat body establishing scale reference"
      },
      {
        "target_id": "recognition-01",
        "role": "product_shell",
        "bbox": [
          538,
          103,
          798,
          428
        ],
        "polygon": [
          [
            541,
            110
          ],
          [
            792,
            110
          ],
          [
            795,
            120
          ],
          [
            798,
            415
          ],
          [
            793,
            422
          ],
          [
            540,
            422
          ],
          [
            538,
            415
          ],
          [
            538,
            120
          ]
        ],
        "visible": true,
        "confidence": 0.98,
        "shape_hint": "prism",
        "visual_description": "transparent dark-tinted hopper containing dry pet food pellets"
      },
      {
        "target_id": "recognition-02",
        "role": "product_shell",
        "bbox": [
          536,
          103,
          799,
          147
        ],
        "polygon": [
          [
            536,
            110
          ],
          [
            540,
            105
          ],
          [
            550,
            103
          ],
          [
            785,
            103
          ],
          [
            795,
            105
          ],
          [
            799,
            110
          ],
          [
            799,
            140
          ],
          [
            795,
            145
          ],
          [
            785,
            147
          ],
          [
            550,
            147
          ],
          [
            540,
            145
          ],
          [
            536,
            140
          ]
        ],
        "visible": true,
        "confidence": 0.92,
        "shape_hint": "prism",
        "visual_description": "light gray top lid covering hopper opening"
      },
      {
        "target_id": "recognition-03",
        "role": "visible_part",
        "bbox": [
          0,
          0,
          0,
          0
        ],
        "polygon": [],
        "visible": false,
        "confidence": 0.0,
        "shape_hint": "cylinder",
        "visual_description": "internal anti-jam rotor not visible from exterior"
      },
      {
        "target_id": "recognition-04",
        "role": "visible_part",
        "bbox": [
          555,
          640,
          635,
          730
        ],
        "polygon": [
          [
            560,
            645
          ],
          [
            630,
            645
          ],
          [
            635,
            650
          ],
          [
            635,
            720
          ],
          [
            630,
            725
          ],
          [
            620,
            730
          ],
          [
            570,
            730
          ],
          [
            560,
            725
          ],
          [
            555,
            720
          ],
          [
            555,
            650
          ]
        ],
        "visible": true,
        "confidence": 0.88,
        "shape_hint": "prism",
        "visual_description": "angled dispensing chute bridging body to bowl"
      },
      {
        "target_id": "recognition-05",
        "role": "visible_part",
        "bbox": [
          420,
          710,
          652,
          925
        ],
        "polygon": [
          [
            425,
            715
          ],
          [
            645,
            715
          ],
          [
            650,
            720
          ],
          [
            652,
            730
          ],
          [
            652,
            910
          ],
          [
            650,
            918
          ],
          [
            645,
            922
          ],
          [
            430,
            922
          ],
          [
            425,
            918
          ],
          [
            420,
            910
          ],
          [
            420,
            730
          ]
        ],
        "visible": true,
        "confidence": 0.95,
        "shape_hint": "cylinder",
        "visual_description": "stainless steel bowl with gray plastic base containing dispensed food"
      },
      {
        "target_id": "recognition-06",
        "role": "visible_part",
        "bbox": [
          535,
          775,
          803,
          925
        ],
        "polygon": [
          [
            540,
            780
          ],
          [
            798,
            780
          ],
          [
            803,
            785
          ],
          [
            803,
            915
          ],
          [
            798,
            920
          ],
          [
            790,
            922
          ],
          [
            545,
            922
          ],
          [
            540,
            920
          ],
          [
            535,
            915
          ],
          [
            535,
            785
          ]
        ],
        "visible": true,
        "confidence": 0.85,
        "shape_hint": "prism",
        "visual_description": "lower base housing with curved footprint likely containing battery compartment"
      },
      {
        "target_id": "product-silhouette",
        "role": "product_shell",
        "visible": true,
        "bbox": [
          420,
          103,
          803,
          925
        ],
        "polygon": [
          [
            425,
            715
          ],
          [
            420,
            730
          ],
          [
            420,
            910
          ],
          [
            425,
            918
          ],
          [
            430,
            922
          ],
          [
            545,
            922
          ],
          [
            540,
            920
          ],
          [
            535,
            915
          ],
          [
            535,
            785
          ],
          [
            540,
            780
          ],
          [
            535,
            775
          ],
          [
            535,
            650
          ],
          [
            540,
            645
          ],
          [
            555,
            640
          ],
          [
            555,
            422
          ],
          [
            540,
            422
          ]
        ],
        "confidence": 0.9,
        "shape_hint": "cylinder",
        "visual_description": "complete automatic pet feeder with hopper, control knob, dispensing chute, and bowl assembly"
      }
    ],
    "product_silhouette": {
      "bbox": [
        420,
        103,
        803,
        925
      ],
      "polygon": [
        [
          425,
          715
        ],
        [
          420,
          730
        ],
        [
          420,
          910
        ],
        [
          425,
          918
        ],
        [
          430,
          922
        ],
        [
          545,
          922
        ],
        [
          540,
          920
        ],
        [
          535,
          915
        ],
        [
          535,
          785
        ],
        [
          540,
          780
        ],
        [
          535,
          775
        ],
        [
          535,
          650
        ],
        [
          540,
          645
        ],
        [
          555,
          640
        ],
        [
          555,
          422
        ],
        [
          540,
          422
        ]
      ],
      "description": "complete automatic pet feeder with hopper, control knob, dispensing chute, and bowl assembly"
    },
    "mounting_points": [
      {
        "label": "floor_contact",
        "point": [
          650,
          922
        ],
        "host_target_id": "host-context",
        "product_target_id": "recognition-06",
        "confidence": 0.9
      }
    ],
    "connections": [
      {
        "from_target_id": "recognition-02",
        "to_target_id": "recognition-01",
        "type": "attached_to",
        "description": "lid covers and seals hopper opening"
      },
      {
        "from_target_id": "recognition-01",
        "to_target_id": "recognition-04",
        "type": "routes_to",
        "description": "hopper gravity-feeds to dispensing chute"
      },
      {
        "from_target_id": "recognition-04",
        "to_target_id": "recognition-05",
        "type": "routes_to",
        "description": "chute delivers food into stainless steel bowl"
      },
      {
        "from_target_id": "recognition-06",
        "to_target_id": "recognition-05",
        "type": "attached_to",
        "description": "base supports and integrates bowl assembly"
      },
      {
        "from_target_id": "recognition-06",
        "to_target_id": "recognition-01",
        "type": "attached_to",
        "description": "base structurally supports hopper tower"
      }
    ],
    "camera": {
      "view": "front_right",
      "yaw_deg": 25,
      "pitch_deg": -8,
      "roll_deg": 0,
      "fov_deg": 45,
      "framing_bbox": [
        420,
        103,
        803,
        925
      ]
    },
    "geometry_plan": {
      "strategy": "codex_agent_photo_specific_parametric",
      "rationale": "Codex maps concept-photo silhouette, component regions and connections into millimetre parametric parts; the browser render must pass screenshot review before customer publication.",
      "bindings": [
        {
          "target_id": "recognition-01",
          "asset_mode": "parameterized",
          "depth_order": 2,
          "orientation": "vertical",
          "confidence": 0.9
        },
        {
          "target_id": "recognition-02",
          "asset_mode": "parameterized",
          "depth_order": 3,
          "orientation": "horizontal",
          "confidence": 0.9
        },
        {
          "target_id": "recognition-04",
          "asset_mode": "parameterized",
          "depth_order": 1,
          "orientation": "diagonal_left",
          "confidence": 0.85
        },
        {
          "target_id": "recognition-05",
          "asset_mode": "parameterized",
          "depth_order": 0,
          "orientation": "horizontal",
          "confidence": 0.9
        },
        {
          "target_id": "recognition-06",
          "asset_mode": "parameterized",
          "depth_order": 0,
          "orientation": "horizontal",
          "confidence": 0.85
        },
        {
          "target_id": "host-context",
          "asset_mode": "glb_part",
          "depth_order": -1,
          "orientation": "horizontal",
          "confidence": 0.7
        },
        {
          "target_id": "recognition-03",
          "asset_mode": "parameterized",
          "depth_order": 1,
          "orientation": "horizontal",
          "confidence": 0.0
        },
        {
          "target_id": "product-silhouette",
          "asset_mode": "parameterized",
          "depth_order": 0,
          "orientation": "freeform",
          "confidence": 0.9
        }
      ]
    },
    "uncertainties": [
      "recognition-03 internal rotor geometry not visible - marked invisible per instructions",
      "recognition-06 battery compartment is inferred from typical product layout and lower base volume - exact panel seams not clearly resolved"
    ],
    "provenance": {
      "mode": "kimi_vlm",
      "provider": "kimi",
      "model": "kimi-k2.6",
      "operation": "photo-reconstruction.annotate",
      "prompt_template_version": "photo-reconstruction-v1",
      "calls": [
        {
          "provider": "kimi",
          "model_version": "kimi-k2.6",
          "operation": "photo-reconstruction.annotate",
          "prompt_template_version": "photo-reconstruction-v1",
          "request_hash": "5631d058a90226438064a914de176e0d29af00baacfceb1c151c4f3d6bbdd7cf",
          "latency_ms": 47361,
          "status": "completed",
          "prompt_tokens": 1546,
          "completion_tokens": 1691,
          "total_tokens": 3237,
          "cached_tokens": 1024,
          "error_code": "",
          "error_message": "",
          "fallback_used": false
        }
      ]
    },
    "truth_boundary": {
      "zh": "照片校准层用于验证轮廓、宿主、安装和可见零件；工程零件尺寸、间隙及制造结论仍由原结构层和正式图纸控制。",
      "en": "The photo-calibrated layer checks silhouette, host, installation and visible parts; engineering dimensions, clearances and manufacturing conclusions remain controlled by the engineering layer and released drawings."
    },
    "geometry_proxy_parts": [
      {
        "id": "photo-proxy-host-pet-torso",
        "source_target_id": "host-context",
        "source_part_ids": [
          "host-pet-torso"
        ],
        "label": "宠物躯干尺度参考",
        "group": "host",
        "type": "ellipsoid",
        "dimensions": {
          "width": 644.0,
          "depth": 504.0,
          "height": 646.0
        },
        "position": [
          0.0,
          -171.0,
          -144.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "material": "宠物尺度代理",
        "source_status": "pending_verification",
        "source_reference": "creative-041 photo-v1 concept-image reconstruction by the Codex Agent C-loop; visible form follows image evidence while depth, hidden fastening and millimetre values remain design proposals",
        "bbox": [],
        "polygon": [],
        "confidence": 0.85,
        "asset_requirement": "parameterized_or_glb_refinement",
        "camera_fit": false,
        "appearance": {
          "color": "#7c6e62",
          "opacity": 0.035,
          "roughness": 0.82,
          "metalness": 0.05
        },
        "color": "#7c6e62"
      },
      {
        "id": "photo-proxy-codex-body",
        "source_target_id": "product-silhouette",
        "source_part_ids": [
          "codex-body"
        ],
        "label": "照片轮廓驱动筒形主体",
        "group": "shell",
        "type": "cylinder",
        "dimensions": {
          "diameter": 240.0,
          "length": 380.0
        },
        "position": [
          0.0,
          0.0,
          0.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "material": "材料与 CMF 由概念照片推断，待工程确认",
        "source_status": "design_proposed",
        "source_reference": "creative-041 photo-v1 concept-image reconstruction by the Codex Agent C-loop; visible form follows image evidence while depth, hidden fastening and millimetre values remain design proposals",
        "bbox": [
          420,
          103,
          803,
          925
        ],
        "polygon": [
          [
            425,
            715
          ],
          [
            420,
            730
          ],
          [
            420,
            910
          ],
          [
            425,
            918
          ],
          [
            430,
            922
          ],
          [
            545,
            922
          ],
          [
            540,
            920
          ],
          [
            535,
            915
          ],
          [
            535,
            785
          ],
          [
            540,
            780
          ],
          [
            535,
            775
          ],
          [
            535,
            650
          ],
          [
            540,
            645
          ],
          [
            555,
            640
          ],
          [
            555,
            422
          ],
          [
            540,
            422
          ]
        ],
        "confidence": 0.85,
        "asset_requirement": "parameterized_or_glb_refinement",
        "camera_fit": true,
        "appearance": {
          "color": "#d8d7cf",
          "opacity": 0.82,
          "roughness": 0.58,
          "metalness": 0.08
        },
        "color": "#d8d7cf"
      },
      {
        "id": "photo-proxy-codex-recognition-01",
        "source_target_id": "recognition-01",
        "source_part_ids": [
          "codex-recognition-01"
        ],
        "label": "密封粮桶",
        "group": "shell",
        "type": "cylinder",
        "dimensions": {
          "diameter": 108.175,
          "length": 190.078
        },
        "position": [
          41.305,
          114.878,
          108.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          90.0
        ],
        "material": "透明 PC / 玻璃概念件",
        "source_status": "design_proposed",
        "source_reference": "creative-041 photo-v1 concept-image reconstruction by the Codex Agent C-loop; visible form follows image evidence while depth, hidden fastening and millimetre values remain design proposals",
        "bbox": [
          538,
          103,
          798,
          428
        ],
        "polygon": [
          [
            541,
            110
          ],
          [
            792,
            110
          ],
          [
            795,
            120
          ],
          [
            798,
            415
          ],
          [
            793,
            422
          ],
          [
            540,
            422
          ],
          [
            538,
            415
          ],
          [
            538,
            120
          ]
        ],
        "confidence": 0.85,
        "asset_requirement": "parameterized_or_glb_refinement",
        "camera_fit": true,
        "appearance": {
          "color": "#c7e0e2",
          "opacity": 0.34,
          "roughness": 0.16,
          "metalness": 0.02
        },
        "color": "#c7e0e2"
      },
      {
        "id": "photo-proxy-codex-recognition-02",
        "source_target_id": "recognition-02",
        "source_part_ids": [
          "codex-recognition-02"
        ],
        "label": "可拆顶盖",
        "group": "shell",
        "type": "extruded_polygon",
        "dimensions": {
          "width": 192.272,
          "depth": 7.729,
          "height": 20.341
        },
        "position": [
          40.94,
          179.83,
          108.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "material": "材料与 CMF 由概念照片推断，待工程确认",
        "source_status": "design_proposed",
        "source_reference": "creative-041 photo-v1 concept-image reconstruction by the Codex Agent C-loop; visible form follows image evidence while depth, hidden fastening and millimetre values remain design proposals",
        "bbox": [
          536,
          103,
          799,
          147
        ],
        "polygon": [
          [
            536,
            110
          ],
          [
            540,
            105
          ],
          [
            550,
            103
          ],
          [
            785,
            103
          ],
          [
            795,
            105
          ],
          [
            799,
            110
          ],
          [
            799,
            140
          ],
          [
            795,
            145
          ],
          [
            785,
            147
          ],
          [
            550,
            147
          ],
          [
            540,
            145
          ],
          [
            536,
            140
          ]
        ],
        "confidence": 0.85,
        "asset_requirement": "parameterized_or_glb_refinement",
        "camera_fit": true,
        "profile_points": [
          [
            -96.136,
            6.934
          ],
          [
            -93.211,
            9.246
          ],
          [
            -85.901,
            10.17
          ],
          [
            85.901,
            10.17
          ],
          [
            93.211,
            9.246
          ],
          [
            96.136,
            6.934
          ],
          [
            96.136,
            -6.934
          ],
          [
            93.211,
            -9.246
          ],
          [
            85.901,
            -10.17
          ],
          [
            -85.901,
            -10.17
          ],
          [
            -93.211,
            -9.246
          ],
          [
            -96.136,
            -6.934
          ]
        ],
        "appearance": {
          "color": "#d8d7cf",
          "opacity": 1.0,
          "roughness": 0.58,
          "metalness": 0.08
        },
        "color": "#d8d7cf"
      },
      {
        "id": "photo-proxy-codex-recognition-03",
        "source_target_id": "recognition-03",
        "source_part_ids": [
          "codex-recognition-03"
        ],
        "label": "防卡转子",
        "group": "sensor",
        "type": "cylinder",
        "dimensions": {
          "diameter": 30.096,
          "length": 44.8
        },
        "position": [
          -84.0,
          -127.3,
          108.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "material": "材料与 CMF 由概念照片推断，待工程确认",
        "source_status": "pending_verification",
        "source_reference": "creative-041 photo-v1 concept-image reconstruction by the Codex Agent C-loop; visible form follows image evidence while depth, hidden fastening and millimetre values remain design proposals",
        "bbox": [
          466,
          744,
          527,
          835
        ],
        "polygon": [],
        "confidence": 0.35,
        "asset_requirement": "parameterized_or_glb_refinement",
        "camera_fit": false,
        "render_mode": "metadata_only",
        "appearance": {
          "color": "#d8d7cf",
          "opacity": 1.0,
          "roughness": 0.58,
          "metalness": 0.08
        },
        "color": "#d8d7cf"
      },
      {
        "id": "photo-proxy-codex-recognition-04",
        "source_target_id": "recognition-04",
        "source_part_ids": [
          "codex-recognition-04"
        ],
        "label": "出粮斜槽",
        "group": "sensor",
        "type": "extruded_polygon",
        "dimensions": {
          "width": 58.486,
          "depth": 15.81,
          "height": 41.606
        },
        "position": [
          -12.063,
          -79.051,
          108.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "material": "PC 导光与显示组件",
        "source_status": "design_proposed",
        "source_reference": "creative-041 photo-v1 concept-image reconstruction by the Codex Agent C-loop; visible form follows image evidence while depth, hidden fastening and millimetre values remain design proposals",
        "bbox": [
          555,
          640,
          635,
          730
        ],
        "polygon": [
          [
            560,
            645
          ],
          [
            630,
            645
          ],
          [
            635,
            650
          ],
          [
            635,
            720
          ],
          [
            630,
            725
          ],
          [
            620,
            730
          ],
          [
            570,
            730
          ],
          [
            560,
            725
          ],
          [
            555,
            720
          ],
          [
            555,
            650
          ]
        ],
        "confidence": 0.85,
        "asset_requirement": "parameterized_or_glb_refinement",
        "camera_fit": true,
        "profile_points": [
          [
            -25.587,
            18.491
          ],
          [
            25.587,
            18.491
          ],
          [
            29.243,
            16.18
          ],
          [
            29.243,
            -16.18
          ],
          [
            25.587,
            -18.491
          ],
          [
            18.277,
            -20.803
          ],
          [
            -18.277,
            -20.803
          ],
          [
            -25.587,
            -18.491
          ],
          [
            -29.243,
            -16.18
          ],
          [
            -29.243,
            16.18
          ]
        ],
        "appearance": {
          "color": "#53c9ad",
          "opacity": 0.96,
          "roughness": 0.24,
          "metalness": 0.03
        },
        "color": "#53c9ad"
      },
      {
        "id": "photo-proxy-codex-recognition-05",
        "source_target_id": "recognition-05",
        "source_part_ids": [
          "codex-recognition-05"
        ],
        "label": "不锈钢食盆",
        "group": "sensor",
        "type": "cylinder",
        "dimensions": {
          "diameter": 71.562,
          "length": 169.608
        },
        "position": [
          -55.196,
          -140.304,
          108.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          90.0
        ],
        "material": "金属件，牌号与表面处理待确认",
        "source_status": "design_proposed",
        "source_reference": "creative-041 photo-v1 concept-image reconstruction by the Codex Agent C-loop; visible form follows image evidence while depth, hidden fastening and millimetre values remain design proposals",
        "bbox": [
          420,
          710,
          652,
          925
        ],
        "polygon": [
          [
            425,
            715
          ],
          [
            645,
            715
          ],
          [
            650,
            720
          ],
          [
            652,
            730
          ],
          [
            652,
            910
          ],
          [
            650,
            918
          ],
          [
            645,
            922
          ],
          [
            430,
            922
          ],
          [
            425,
            918
          ],
          [
            420,
            910
          ],
          [
            420,
            730
          ]
        ],
        "confidence": 0.85,
        "asset_requirement": "parameterized_or_glb_refinement",
        "camera_fit": true,
        "appearance": {
          "color": "#8b9698",
          "opacity": 1.0,
          "roughness": 0.28,
          "metalness": 0.72
        },
        "color": "#8b9698"
      },
      {
        "id": "photo-proxy-codex-recognition-06",
        "source_target_id": "recognition-06",
        "source_part_ids": [
          "codex-recognition-06"
        ],
        "label": "电池底仓",
        "group": "shell",
        "type": "extruded_polygon",
        "dimensions": {
          "width": 195.927,
          "depth": 26.35,
          "height": 69.343
        },
        "position": [
          42.037,
          -155.328,
          108.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "material": "材料与 CMF 由概念照片推断，待工程确认",
        "source_status": "design_proposed",
        "source_reference": "creative-041 photo-v1 concept-image reconstruction by the Codex Agent C-loop; visible form follows image evidence while depth, hidden fastening and millimetre values remain design proposals",
        "bbox": [
          535,
          775,
          803,
          925
        ],
        "polygon": [
          [
            540,
            780
          ],
          [
            798,
            780
          ],
          [
            803,
            785
          ],
          [
            803,
            915
          ],
          [
            798,
            920
          ],
          [
            790,
            922
          ],
          [
            545,
            922
          ],
          [
            540,
            920
          ],
          [
            535,
            915
          ],
          [
            535,
            785
          ]
        ],
        "confidence": 0.85,
        "asset_requirement": "parameterized_or_glb_refinement",
        "camera_fit": true,
        "profile_points": [
          [
            -94.308,
            32.36
          ],
          [
            94.308,
            32.36
          ],
          [
            97.963,
            30.049
          ],
          [
            97.963,
            -30.049
          ],
          [
            94.308,
            -32.36
          ],
          [
            88.46,
            -33.285
          ],
          [
            -90.653,
            -33.285
          ],
          [
            -94.308,
            -32.36
          ],
          [
            -97.963,
            -30.049
          ],
          [
            -97.963,
            30.049
          ]
        ],
        "appearance": {
          "color": "#d8d7cf",
          "opacity": 1.0,
          "roughness": 0.58,
          "metalness": 0.08
        },
        "color": "#d8d7cf"
      }
    ],
    "engineering_geometry_revision": "engineering-fit-r2-20261016",
    "geometry_fingerprint": "sha256:c6b1dd434ff0d6348fe10210f2d20cdb85abdf34fbc745142b37af29f226bfdf",
    "engineering_revision_note": "照片轮廓和旧视觉评分仅作历史证据；当前工程修订待新的视觉与实物复核。",
    "visual_review_status": "pending_current_geometry_review"
  },
  "presentation": {
    "default_view": "iso",
    "iso_view_deg": [
      25.0,
      16.0
    ],
    "dimensions_visible_by_default": false,
    "hidden_groups_by_default": [
      "fov"
    ],
    "shell_opacity": 0.86,
    "photo_mode_available": true
  },
  "codex_geometry_refinement": {
    "schema_version": "codex-geometry-refinement/v1",
    "mode": "codex_agent_closed_loop",
    "source_photo_revision": "photo-v1",
    "iteration": 4,
    "status": "render_pending_visual_review",
    "scope": [
      "photo-specific-form",
      "host-and-installation",
      "key-parts",
      "internal-assembly",
      "work-path"
    ],
    "pipeline": [
      "generate_code",
      "render_screenshot",
      "visual_review",
      "patch_code"
    ],
    "truth_boundary": {
      "zh": "结构由单张 AI 概念图反向生成；可见比例受照片约束，隐藏结构和工程尺寸仍需图纸或实物确认。",
      "en": "Geometry is generated from one AI concept image. Visible proportions are image-constrained; hidden construction and engineering dimensions still require drawings or physical verification."
    },
    "quality_status": "reworked_pending_blind_visual_review"
  },
  "photo_derived_structure": {
    "schema_version": "creative-photo-derived-structure/v1",
    "product_id": "creative-041",
    "case_id": 41,
    "photo_revision": "photo-v1",
    "generated_at": "2026-09-03",
    "photo": {
      "url": "/hardware-structure/photos/creative-041-photo-v1.jpg",
      "width_px": 960,
      "height_px": 600,
      "sha256": "4177c0c7e6de51e19fee97f7355a78a2c6da7e0187cd77c2902db38189668be9",
      "coordinate_system": "normalized image space 0..1000; origin top-left"
    },
    "product": {
      "bbox": [
        420,
        103,
        803,
        925
      ],
      "polygon": [
        [
          425,
          715
        ],
        [
          420,
          730
        ],
        [
          420,
          910
        ],
        [
          425,
          918
        ],
        [
          430,
          922
        ],
        [
          545,
          922
        ],
        [
          540,
          920
        ],
        [
          535,
          915
        ],
        [
          535,
          785
        ],
        [
          540,
          780
        ],
        [
          535,
          775
        ],
        [
          535,
          650
        ],
        [
          540,
          645
        ],
        [
          555,
          640
        ],
        [
          555,
          422
        ],
        [
          540,
          422
        ]
      ],
      "estimated_dimensions_mm": {
        "width": 280.0,
        "depth": 240.0,
        "height": 380.0
      },
      "dimension_basis": "动物佩戴/使用基准; front review plane preserves the concept-photo silhouette ratio while the original engineering envelope remains unchanged",
      "form_summary": "complete automatic pet feeder with hopper, control knob, dispensing chute, and bowl assembly"
    },
    "components": [
      {
        "id": "host-context",
        "label_zh": "动物佩戴/使用基准",
        "label_en": "动物佩戴/使用基准",
        "role": "host",
        "bbox": [
          78,
          425,
          426,
          790
        ],
        "polygon": [
          [
            78,
            425
          ],
          [
            426,
            425
          ],
          [
            426,
            790
          ],
          [
            78,
            790
          ]
        ],
        "confidence": 0.95,
        "material_guess": "cat body establishing scale reference"
      },
      {
        "id": "recognition-01",
        "label_zh": "密封粮桶",
        "label_en": "密封粮桶",
        "role": "product_shell",
        "bbox": [
          538,
          103,
          798,
          428
        ],
        "polygon": [
          [
            541,
            110
          ],
          [
            792,
            110
          ],
          [
            795,
            120
          ],
          [
            798,
            415
          ],
          [
            793,
            422
          ],
          [
            540,
            422
          ],
          [
            538,
            415
          ],
          [
            538,
            120
          ]
        ],
        "confidence": 0.98,
        "material_guess": "transparent dark-tinted hopper containing dry pet food pellets"
      },
      {
        "id": "recognition-02",
        "label_zh": "可拆顶盖",
        "label_en": "可拆顶盖",
        "role": "product_shell",
        "bbox": [
          536,
          103,
          799,
          147
        ],
        "polygon": [
          [
            536,
            110
          ],
          [
            540,
            105
          ],
          [
            550,
            103
          ],
          [
            785,
            103
          ],
          [
            795,
            105
          ],
          [
            799,
            110
          ],
          [
            799,
            140
          ],
          [
            795,
            145
          ],
          [
            785,
            147
          ],
          [
            550,
            147
          ],
          [
            540,
            145
          ],
          [
            536,
            140
          ]
        ],
        "confidence": 0.92,
        "material_guess": "light gray top lid covering hopper opening"
      },
      {
        "id": "recognition-04",
        "label_zh": "出粮斜槽",
        "label_en": "出粮斜槽",
        "role": "visible_part",
        "bbox": [
          555,
          640,
          635,
          730
        ],
        "polygon": [
          [
            560,
            645
          ],
          [
            630,
            645
          ],
          [
            635,
            650
          ],
          [
            635,
            720
          ],
          [
            630,
            725
          ],
          [
            620,
            730
          ],
          [
            570,
            730
          ],
          [
            560,
            725
          ],
          [
            555,
            720
          ],
          [
            555,
            650
          ]
        ],
        "confidence": 0.88,
        "material_guess": "angled dispensing chute bridging body to bowl"
      },
      {
        "id": "recognition-05",
        "label_zh": "不锈钢食盆",
        "label_en": "不锈钢食盆",
        "role": "visible_part",
        "bbox": [
          420,
          710,
          652,
          925
        ],
        "polygon": [
          [
            425,
            715
          ],
          [
            645,
            715
          ],
          [
            650,
            720
          ],
          [
            652,
            730
          ],
          [
            652,
            910
          ],
          [
            650,
            918
          ],
          [
            645,
            922
          ],
          [
            430,
            922
          ],
          [
            425,
            918
          ],
          [
            420,
            910
          ],
          [
            420,
            730
          ]
        ],
        "confidence": 0.95,
        "material_guess": "stainless steel bowl with gray plastic base containing dispensed food"
      },
      {
        "id": "recognition-06",
        "label_zh": "电池底仓",
        "label_en": "电池底仓",
        "role": "visible_part",
        "bbox": [
          535,
          775,
          803,
          925
        ],
        "polygon": [
          [
            540,
            780
          ],
          [
            798,
            780
          ],
          [
            803,
            785
          ],
          [
            803,
            915
          ],
          [
            798,
            920
          ],
          [
            790,
            922
          ],
          [
            545,
            922
          ],
          [
            540,
            920
          ],
          [
            535,
            915
          ],
          [
            535,
            785
          ]
        ],
        "confidence": 0.85,
        "material_guess": "lower base housing with curved footprint likely containing battery compartment"
      },
      {
        "id": "product-silhouette",
        "label_zh": "产品主体整体轮廓",
        "label_en": "产品主体整体轮廓",
        "role": "product_shell",
        "bbox": [
          420,
          103,
          803,
          925
        ],
        "polygon": [
          [
            425,
            715
          ],
          [
            420,
            730
          ],
          [
            420,
            910
          ],
          [
            425,
            918
          ],
          [
            430,
            922
          ],
          [
            545,
            922
          ],
          [
            540,
            920
          ],
          [
            535,
            915
          ],
          [
            535,
            785
          ],
          [
            540,
            780
          ],
          [
            535,
            775
          ],
          [
            535,
            650
          ],
          [
            540,
            645
          ],
          [
            555,
            640
          ],
          [
            555,
            422
          ],
          [
            540,
            422
          ]
        ],
        "confidence": 0.9,
        "material_guess": "complete automatic pet feeder with hopper, control knob, dispensing chute, and bowl assembly"
      }
    ],
    "relations": [
      {
        "from_target_id": "recognition-02",
        "to_target_id": "recognition-01",
        "type": "attached_to",
        "description": "lid covers and seals hopper opening"
      },
      {
        "from_target_id": "recognition-01",
        "to_target_id": "recognition-04",
        "type": "routes_to",
        "description": "hopper gravity-feeds to dispensing chute"
      },
      {
        "from_target_id": "recognition-04",
        "to_target_id": "recognition-05",
        "type": "routes_to",
        "description": "chute delivers food into stainless steel bowl"
      },
      {
        "from_target_id": "recognition-06",
        "to_target_id": "recognition-05",
        "type": "attached_to",
        "description": "base supports and integrates bowl assembly"
      },
      {
        "from_target_id": "recognition-06",
        "to_target_id": "recognition-01",
        "type": "attached_to",
        "description": "base structurally supports hopper tower"
      }
    ],
    "camera": {
      "view": "front_right",
      "yaw_deg": 25,
      "pitch_deg": -8,
      "roll_deg": 0,
      "fov_deg": 45,
      "framing_bbox": [
        420,
        103,
        803,
        925
      ]
    },
    "uncertainties": [
      "recognition-03 internal rotor geometry not visible - marked invisible per instructions",
      "recognition-06 battery compartment is inferred from typical product layout and lower base volume - exact panel seams not clearly resolved"
    ],
    "provenance": {
      "mode": "codex_agent_closed_loop",
      "operation": "concept-photo-to-parametric-geometry",
      "iteration": 4
    }
  },
  "engineering_update": {
    "revision": "engineering-fit-r2-20261016",
    "supersedes_revision": "codex-geometry-c5",
    "status": "design_proposed",
    "production_ready": false,
    "physical_verified": false,
    "geometry_review_status": "pending_physical_validation",
    "source_constraints": [
      {
        "id": "stepper-mount",
        "url": "https://www.adafruit.com/product/324",
        "constraint": "样机步进电机 42 mm frame、5 mm D 轴、约 31 mm 方形 M3 孔阵列；保持扭矩不等于满粮仓输送扭矩。",
        "application": "source_constraint_only_proposed_geometry_not_vendor_drawing"
      },
      {
        "id": "level-blind-zone",
        "url": "https://www.adafruit.com/product/4007",
        "constraint": "RCWL-1601 有约 2–3 cm 盲区，斜粮面/粉尘需实测；本限位 25 mm 是结构初值，不能保证空满检测。",
        "application": "source_constraint_only_proposed_geometry_not_vendor_drawing"
      }
    ],
    "remaining_gates": [
      "新底座占地包含前置食盆，总包络 280×420×400 mm；需要用户尺寸/摆放限制与防倾实物验证。",
      "电机轴长/机芯、实际粮粒范围、剪切/堵粮/夹伤、食品接触材料与洗后装配尚未验证。",
      "称重元件固定端/受力端型号和微小过载限位需细化；当前仅建立独立力路径和空间。",
      "矩形环形网格现在使用完整轴向宽度并保留中心孔；电芯和 FPC 为保守安装包络，壳体/粮桶/食盆为名义设计体，实际截面、倒角、公差、底面连接、开孔与密封仍需原生 CAD 和供应商图。"
    ],
    "check_scope": "仅验证所列名义空间、功能位置和装配关系；不代表完整碰撞、强度、密封、电气或量产验收。",
    "proposal_status": "proposed",
    "design_changes": [
      {
        "id": "fit-change-1",
        "title": "纠正设备宿主与粮道方向",
        "summary": "废弃宠物佩戴宿主，采用地面支撑；粮桶直立，转盘/电机/轴共轴，斜槽下降至独立可拆食盆。",
        "part_ids": [
          "host-pet-torso",
          "codex-recognition-01",
          "codex-recognition-03",
          "feeder-motor",
          "feeder-motor-shaft",
          "codex-recognition-04",
          "codex-recognition-05"
        ]
      },
      {
        "id": "fit-change-2",
        "title": "建立反馈与电子隔离",
        "summary": "新增干燥电子仓隔板、转动反馈、独立食盆称重和35.5 mm满粮盲区余量；前置食盆使整机包络修订为280×420×400 mm。",
        "part_ids": [
          "feeder-food-divider",
          "feeder-rotor-home",
          "feeder-bowl-loadcell",
          "feeder-level-probe",
          "codex-main-pcba"
        ]
      },
      {
        "id": "fit-change-rectangular-section",
        "title": "环形截面与轴向尺寸一致",
        "summary": "显式采用矩形环形截面和完整轴向宽度，完整环保留中心孔、弧段封闭两端；保守电芯包络不冒充供应商实际外形。",
        "part_ids": [
          "codex-recognition-01",
          "codex-recognition-05"
        ]
      }
    ],
    "superseded_visual_review": {
      "status": "pending_review",
      "score": null,
      "geometry_fingerprint": "sha256:029d3077273c10ab5e0be96238e473723f10263012c08b984f175f2b906f74d5",
      "updated_at": "2026-09-19",
      "reason": "Geometry changed during deterministic structure-quality remediation and requires fresh visual review."
    },
    "renderer_update": {
      "previous_revision": "engineering-fit-r1-20261016",
      "section_profile": "rectangular",
      "axial_extent": "centered_full_dimensions_width",
      "scope": "只对显式标记的环形零件生成矩形环形截面；旧案例的 TorusGeometry 保持不变。",
      "authority": "名义结构体或保守安装包络；不是供应商实际截面、圆角、密封或可制造 CAD。"
    }
  },
  "cavities": [
    {
      "id": "feeder-base-cavity",
      "owner_part_id": "codex-recognition-06",
      "shape": "box",
      "dimensions": {
        "width": 234,
        "height": 94,
        "depth": 214
      },
      "center": [
        0,
        -140,
        0
      ],
      "part_ids": [
        "codex-main-pcba",
        "feeder-battery-envelope"
      ],
      "source_status": "design_proposed",
      "wall_and_service_note": "净空按名义尺寸定义；圆角、紧固件、密封及制造公差需后续 CAD/实物确认。"
    }
  ]
}
