{
  "schema_version": "hardware-structure/v2",
  "unit": "mm",
  "product_id": "creative-001",
  "title": "001 单株智能灌溉器结构概念评审",
  "revision": "codex-geometry-c1",
  "updated_at": "2026-09-03",
  "coordinate_system": "X=产品宽度，Y=上下，Z=前后；原点位于产品主体外包络中心",
  "case_metadata": {
    "case_id": 1,
    "domain": "环境与农业",
    "name": "单株智能灌溉器",
    "user_value": "让普通花盆按土壤含水率自动补水，并保留手动覆盖与缺水报警。",
    "discovery_platform": "Amazon",
    "source_grade": "C",
    "source_url": "https://www.amazon.com/s?k=smart%20plant%20watering%20sensor",
    "mvp_path": "先用 ESP32 每分钟采样电容土壤传感器；阈值+滞回控制微型泵；Web 页面校准干/湿点并查看趋势。",
    "components": "ESP32-C3、电容土壤探头、MOSFET、5V 蠕动泵、水位开关",
    "software_stack": "ESPHome 或 PlatformIO；MQTT；Home Assistant",
    "github_project": "esp32-plant-monitor",
    "github_url": "https://github.com/bklen/esp32-plant-monitor",
    "match_level": "直接",
    "bom_estimate_cny": 180,
    "difficulty": 2,
    "novelty": 3,
    "demand": 5,
    "reuse": 5,
    "risk": 2,
    "differentiation": "增加植物品种模板、泵空转保护和离线工作。",
    "safety_boundary": "水电隔离；泵必须有回流与干转保护。",
    "recommendation_score": 82,
    "structural_archetype": "photo-derived-creative-001",
    "prototype_family": "agriculture-attachment",
    "prototype_label_zh": "种植容器与农业宿主附件",
    "prototype_label_en": "Plant container and agriculture attachment",
    "prototype_version": "creative-host-assembly/v1",
    "migration_role": "photo_bound_gold_template",
    "assembly_topology": [
      "植物或户外宿主",
      "快拆安装件",
      "功能舱",
      "水、料或检测路径"
    ],
    "dimension_authority": "design_proposed_and_pending_verification",
    "structure_evidence": [
      {
        "id": "workbook-source-001",
        "url": "https://www.amazon.com/s?k=smart%20plant%20watering%20sensor",
        "kind": "discovery_source",
        "claim": "工作簿记录的创意发现来源；只证明市场灵感，不证明机械尺寸。",
        "application": "idea_provenance_only"
      }
    ],
    "evidence_maturity": "workbook_discovery_only",
    "recognition_parts": [
      "控制器外壳",
      "透明水箱",
      "盆沿夹",
      "左侧灌溉软管",
      "右侧灌溉软管",
      "土壤湿度探头",
      "水箱盖",
      "状态按钮/指示灯"
    ],
    "geometry_authority": "concept_photo_primary",
    "photo_component_count": 9,
    "geometry_fingerprint": "sha256:3118b1459692485f13d5462cdae3682574a450af6475e7f613584897bf73ba8a",
    "geometry_generation_method": "codex_agent_closed_loop",
    "geometry_iteration": 2,
    "structure_quality_revision": "structure-quality-r1"
  },
  "envelope": {
    "external": {
      "width": 350,
      "depth": 280,
      "height": 340,
      "center": [
        -5,
        28,
        8
      ]
    },
    "internal": {
      "width": 334,
      "depth": 264,
      "height": 324,
      "center": [
        -5,
        28,
        8
      ]
    },
    "wall_thickness": 2.0
  },
  "openings": [],
  "prototype_instance": {
    "schema_version": "creative-host-assembly/v1",
    "prototype_family": "agriculture-attachment",
    "prototype_label_zh": "种植容器与农业宿主附件",
    "prototype_label_en": "Plant container and agriculture attachment",
    "host_strategy": "plant_or_outdoor",
    "shell_strategy": "host_attachment",
    "assembly_topology": [
      "植物或户外宿主",
      "快拆安装件",
      "功能舱",
      "水、料或检测路径"
    ],
    "migration_role": "photo_bound_gold_template"
  },
  "assemblies": [
    {
      "id": "host-plant-assembly",
      "label": "花盆、土壤与植物宿主",
      "part_ids": [
        "photo-host-pot",
        "pot-rim",
        "soil-bed",
        "plant-stem-a",
        "plant-stem-b",
        "plant-leaf-a",
        "plant-leaf-b",
        "plant-leaf-c"
      ]
    },
    {
      "id": "reservoir-controller-assembly",
      "label": "水箱与盆沿控制器总成",
      "part_ids": [
        "photo-water-tank",
        "water-volume",
        "photo-controller-housing",
        "photo-tank-lid",
        "photo-pot-rim-clip",
        "clip-inner-pad",
        "photo-status-button",
        "photo-internal-pcba-1",
        "micro-pump"
      ]
    },
    {
      "id": "irrigation-path-assembly",
      "label": "双路灌溉与土壤检测总成",
      "part_ids": [
        "photo-irrigation-tube-left",
        "photo-irrigation-tube-right",
        "photo-soil-probe",
        "probe-prong-a",
        "probe-prong-b"
      ]
    }
  ],
  "parts": [
    {
      "id": "photo-host-pot",
      "label": "花盆（宿主）",
      "label_en": "Plant Pot (Host)",
      "group": "host",
      "type": "tapered_cylinder",
      "dimensions": {
        "top_diameter": 228,
        "bottom_diameter": 176,
        "length": 174
      },
      "position": [
        24,
        -34,
        8
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0,
        0,
        0
      ],
      "material": "米灰釉面陶瓷",
      "quantity": 1,
      "source_status": "pending_verification",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "recognition_role": false,
      "evidence_ids": [
        "workbook-source-001"
      ],
      "photo_component_id": "host-pot",
      "photo_bbox": [
        350,
        334,
        834,
        1000
      ],
      "photo_polygon": [
        [
          379,
          334
        ],
        [
          805,
          334
        ],
        [
          834,
          381
        ],
        [
          781,
          947
        ],
        [
          747,
          1000
        ],
        [
          437,
          1000
        ],
        [
          403,
          947
        ],
        [
          350,
          381
        ]
      ],
      "photo_z_order": -3,
      "photo_depth_ratio": 0.85,
      "confidence": 0.95,
      "appearance": {
        "color": "#c9b9a4",
        "opacity": 1.0,
        "roughness": 0.72,
        "metalness": 0.04
      },
      "color": "#c9b9a4",
      "photo_derived": true,
      "source_target_id": "host-pot",
      "source_part_ids": [
        "photo-host-pot"
      ]
    },
    {
      "id": "pot-rim",
      "label": "花盆上沿",
      "group": "host",
      "type": "ring",
      "dimensions": {
        "outer_diameter": 232,
        "inner_diameter": 204,
        "width": 12
      },
      "position": [
        24,
        55,
        8
      ],
      "rotation_deg": [
        90,
        0,
        0
      ],
      "explode_vector": [
        0,
        0,
        0
      ],
      "material": "米灰釉面陶瓷",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#d8cbbb",
        "opacity": 1.0,
        "roughness": 0.68,
        "metalness": 0.04
      },
      "color": "#d8cbbb"
    },
    {
      "id": "soil-bed",
      "label": "盆栽土壤",
      "group": "host",
      "type": "cylinder",
      "dimensions": {
        "diameter": 202,
        "length": 9
      },
      "position": [
        24,
        57,
        8
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0,
        0,
        0
      ],
      "material": "湿润培养土",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#46382d",
        "opacity": 1.0,
        "roughness": 0.96,
        "metalness": 0.04
      },
      "color": "#46382d"
    },
    {
      "id": "plant-stem-a",
      "label": "植物主茎 A",
      "group": "host",
      "type": "curved_tube",
      "dimensions": {
        "outer_diameter": 7,
        "inner_diameter": 2,
        "length": 136
      },
      "position": [
        0,
        0,
        0
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0,
        0,
        0
      ],
      "material": "植物茎",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#4c7d35",
        "opacity": 1.0,
        "roughness": 0.8,
        "metalness": 0.04
      },
      "color": "#4c7d35",
      "path": [
        [
          18,
          61,
          2
        ],
        [
          12,
          98,
          1
        ],
        [
          -2,
          133,
          4
        ],
        [
          -24,
          165,
          8
        ]
      ]
    },
    {
      "id": "plant-stem-b",
      "label": "植物主茎 B",
      "group": "host",
      "type": "curved_tube",
      "dimensions": {
        "outer_diameter": 6,
        "inner_diameter": 2,
        "length": 120
      },
      "position": [
        0,
        0,
        0
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0,
        0,
        0
      ],
      "material": "植物茎",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#5f8d40",
        "opacity": 1.0,
        "roughness": 0.8,
        "metalness": 0.04
      },
      "color": "#5f8d40",
      "path": [
        [
          28,
          61,
          15
        ],
        [
          39,
          101,
          18
        ],
        [
          62,
          134,
          21
        ],
        [
          83,
          156,
          26
        ]
      ]
    },
    {
      "id": "plant-leaf-a",
      "label": "植物叶片 A",
      "group": "host",
      "type": "ellipsoid",
      "dimensions": {
        "width": 68,
        "depth": 18,
        "height": 35
      },
      "position": [
        -42,
        166,
        8
      ],
      "rotation_deg": [
        10,
        -20,
        -18
      ],
      "explode_vector": [
        0,
        0,
        0
      ],
      "material": "天然叶片",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#4f7f2f",
        "opacity": 1.0,
        "roughness": 0.82,
        "metalness": 0.04
      },
      "color": "#4f7f2f"
    },
    {
      "id": "plant-leaf-b",
      "label": "植物叶片 B",
      "group": "host",
      "type": "ellipsoid",
      "dimensions": {
        "width": 64,
        "depth": 17,
        "height": 32
      },
      "position": [
        91,
        158,
        27
      ],
      "rotation_deg": [
        -8,
        18,
        15
      ],
      "explode_vector": [
        0,
        0,
        0
      ],
      "material": "天然叶片",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#689443",
        "opacity": 1.0,
        "roughness": 0.82,
        "metalness": 0.04
      },
      "color": "#689443"
    },
    {
      "id": "plant-leaf-c",
      "label": "植物叶片 C",
      "group": "host",
      "type": "ellipsoid",
      "dimensions": {
        "width": 54,
        "depth": 15,
        "height": 28
      },
      "position": [
        5,
        130,
        12
      ],
      "rotation_deg": [
        12,
        -8,
        28
      ],
      "explode_vector": [
        0,
        0,
        0
      ],
      "material": "天然叶片",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#3f722d",
        "opacity": 1.0,
        "roughness": 0.82,
        "metalness": 0.04
      },
      "color": "#3f722d"
    },
    {
      "id": "photo-water-tank",
      "label": "透明水箱",
      "label_en": "Water Tank",
      "group": "shell",
      "type": "cylinder",
      "dimensions": {
        "diameter": 67,
        "length": 112
      },
      "position": [
        -132,
        -20,
        14
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        -1,
        -1,
        0
      ],
      "material": "透明 Tritan 水箱",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-001"
      ],
      "photo_component_id": "water-tank",
      "photo_bbox": [
        214,
        498,
        350,
        812
      ],
      "photo_polygon": [
        [
          214,
          498
        ],
        [
          350,
          498
        ],
        [
          350,
          812
        ],
        [
          214,
          812
        ]
      ],
      "photo_z_order": 0,
      "photo_depth_ratio": 0.4,
      "confidence": 0.92,
      "appearance": {
        "color": "#dceff1",
        "opacity": 0.32,
        "roughness": 0.12,
        "metalness": 0.04
      },
      "color": "#dceff1",
      "photo_derived": true,
      "profile_points": [
        [
          -30.29,
          50.68
        ],
        [
          30.291,
          50.68
        ],
        [
          30.291,
          -50.68
        ],
        [
          -30.29,
          -50.68
        ]
      ],
      "source_target_id": "water-tank",
      "source_part_ids": [
        "photo-water-tank"
      ]
    },
    {
      "id": "water-volume",
      "label": "储水液位",
      "group": "sensor",
      "type": "cylinder",
      "dimensions": {
        "diameter": 59,
        "length": 68
      },
      "position": [
        -132,
        -39,
        14
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        -1,
        -1,
        0
      ],
      "material": "清水",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#68bdd0",
        "opacity": 0.42,
        "roughness": 0.08,
        "metalness": 0.04
      },
      "color": "#68bdd0"
    },
    {
      "id": "photo-controller-housing",
      "label": "控制器外壳",
      "label_en": "Controller Housing",
      "group": "shell",
      "type": "cylinder",
      "dimensions": {
        "diameter": 76,
        "length": 43
      },
      "position": [
        -132,
        55,
        14
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        -1,
        1,
        0
      ],
      "material": "哑光白色 ABS",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-001"
      ],
      "photo_component_id": "controller-housing",
      "photo_bbox": [
        210,
        294,
        394,
        498
      ],
      "photo_polygon": [
        [
          210,
          294
        ],
        [
          394,
          294
        ],
        [
          394,
          498
        ],
        [
          210,
          498
        ]
      ],
      "photo_z_order": 0,
      "photo_depth_ratio": 0.35,
      "confidence": 0.95,
      "appearance": {
        "color": "#f2f1e9",
        "opacity": 1.0,
        "roughness": 0.62,
        "metalness": 0.04
      },
      "color": "#f2f1e9",
      "photo_derived": true,
      "source_target_id": "controller-housing",
      "source_part_ids": [
        "photo-controller-housing"
      ]
    },
    {
      "id": "photo-tank-lid",
      "label": "水箱盖",
      "label_en": "Tank Lid",
      "group": "shell",
      "type": "cylinder",
      "dimensions": {
        "diameter": 73,
        "length": 5
      },
      "position": [
        -132,
        79,
        14
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0,
        1,
        0
      ],
      "material": "哑光白色 ABS",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-001"
      ],
      "photo_component_id": "tank-lid",
      "photo_bbox": [
        210,
        294,
        394,
        350
      ],
      "photo_polygon": [
        [
          210,
          294
        ],
        [
          394,
          294
        ],
        [
          394,
          350
        ],
        [
          210,
          350
        ]
      ],
      "photo_z_order": 2,
      "photo_depth_ratio": 0.3,
      "confidence": 0.9,
      "appearance": {
        "color": "#f7f6ef",
        "opacity": 1.0,
        "roughness": 0.58,
        "metalness": 0.04
      },
      "color": "#f7f6ef",
      "photo_derived": true,
      "source_target_id": "tank-lid",
      "source_part_ids": [
        "photo-tank-lid"
      ]
    },
    {
      "id": "photo-pot-rim-clip",
      "label": "盆沿夹",
      "label_en": "Pot Rim Clip",
      "group": "bracket",
      "type": "rounded_box",
      "dimensions": {
        "width": 24,
        "depth": 46,
        "height": 76,
        "corner_radius": 6
      },
      "position": [
        -91,
        22,
        8
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        -1,
        0,
        0
      ],
      "material": "玻纤增强尼龙夹具",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-001"
      ],
      "photo_component_id": "pot-rim-clip",
      "photo_bbox": [
        346,
        382,
        394,
        498
      ],
      "photo_polygon": [
        [
          346,
          382
        ],
        [
          394,
          382
        ],
        [
          394,
          498
        ],
        [
          346,
          498
        ]
      ],
      "photo_z_order": 0,
      "photo_depth_ratio": 0.6,
      "confidence": 0.88,
      "appearance": {
        "color": "#e8e7df",
        "opacity": 1.0,
        "roughness": 0.64,
        "metalness": 0.04
      },
      "color": "#e8e7df",
      "photo_derived": true,
      "source_target_id": "pot-rim-clip",
      "source_part_ids": [
        "photo-pot-rim-clip"
      ]
    },
    {
      "id": "clip-inner-pad",
      "label": "盆沿防滑垫",
      "group": "bracket",
      "type": "rounded_box",
      "dimensions": {
        "width": 6,
        "depth": 38,
        "height": 54,
        "corner_radius": 2
      },
      "position": [
        -77,
        24,
        8
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        -1,
        0,
        0
      ],
      "material": "硅胶",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#6d7775",
        "opacity": 1.0,
        "roughness": 0.9,
        "metalness": 0.04
      },
      "color": "#6d7775"
    },
    {
      "id": "photo-irrigation-tube-left",
      "label": "左侧灌溉软管",
      "label_en": "Left Irrigation Tube",
      "group": "cable",
      "type": "curved_tube",
      "dimensions": {
        "outer_diameter": 7,
        "inner_diameter": 4,
        "length": 196
      },
      "position": [
        0,
        0,
        0
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0,
        1,
        1
      ],
      "material": "透明食品级硅胶",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-001"
      ],
      "photo_component_id": "irrigation-tube-left",
      "photo_bbox": [
        394,
        272,
        606,
        498
      ],
      "photo_polygon": [
        [
          394,
          272
        ],
        [
          606,
          272
        ],
        [
          606,
          498
        ],
        [
          394,
          498
        ]
      ],
      "photo_z_order": 1,
      "photo_depth_ratio": 0.15,
      "confidence": 0.85,
      "appearance": {
        "color": "#b8e5e8",
        "opacity": 0.62,
        "roughness": 0.22,
        "metalness": 0.04
      },
      "color": "#b8e5e8",
      "photo_derived": true,
      "path": [
        [
          -93,
          72,
          -8
        ],
        [
          -68,
          106,
          -22
        ],
        [
          -27,
          116,
          -35
        ],
        [
          4,
          97,
          -40
        ],
        [
          8,
          60,
          -40
        ]
      ],
      "allowed_contacts": [
        "photo-controller-housing",
        "photo-tank-lid",
        "pot-rim",
        "soil-bed"
      ],
      "source_target_id": "irrigation-tube-left",
      "source_part_ids": [
        "photo-irrigation-tube-left"
      ]
    },
    {
      "id": "photo-irrigation-tube-right",
      "label": "右侧灌溉软管",
      "label_en": "Right Irrigation Tube",
      "group": "cable",
      "type": "curved_tube",
      "dimensions": {
        "outer_diameter": 7,
        "inner_diameter": 4,
        "length": 228
      },
      "position": [
        0,
        0,
        0
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0,
        1,
        1
      ],
      "material": "透明食品级硅胶",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-001"
      ],
      "photo_component_id": "irrigation-tube-right",
      "photo_bbox": [
        520,
        272,
        754,
        498
      ],
      "photo_polygon": [
        [
          520,
          272
        ],
        [
          754,
          272
        ],
        [
          754,
          498
        ],
        [
          520,
          498
        ]
      ],
      "photo_z_order": 1,
      "photo_depth_ratio": 0.15,
      "confidence": 0.82,
      "appearance": {
        "color": "#b8e5e8",
        "opacity": 0.62,
        "roughness": 0.22,
        "metalness": 0.04
      },
      "color": "#b8e5e8",
      "photo_derived": true,
      "path": [
        [
          -93,
          72,
          34
        ],
        [
          -45,
          122,
          44
        ],
        [
          16,
          128,
          46
        ],
        [
          68,
          102,
          45
        ],
        [
          72,
          60,
          44
        ]
      ],
      "allowed_contacts": [
        "photo-controller-housing",
        "photo-tank-lid",
        "pot-rim",
        "soil-bed"
      ],
      "source_target_id": "irrigation-tube-right",
      "source_part_ids": [
        "photo-irrigation-tube-right"
      ]
    },
    {
      "id": "photo-soil-probe",
      "label": "土壤湿度探头",
      "label_en": "Soil Moisture Probe",
      "group": "sensor",
      "type": "rounded_box",
      "dimensions": {
        "width": 18,
        "depth": 12,
        "height": 66,
        "corner_radius": 5
      },
      "position": [
        83,
        91,
        4
      ],
      "rotation_deg": [
        0,
        0,
        -9
      ],
      "explode_vector": [
        1,
        1,
        0
      ],
      "material": "白色 ABS 探头外壳",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-001"
      ],
      "photo_component_id": "soil-probe",
      "photo_bbox": [
        676,
        248,
        754,
        498
      ],
      "photo_polygon": [
        [
          676,
          248
        ],
        [
          754,
          248
        ],
        [
          754,
          498
        ],
        [
          676,
          498
        ]
      ],
      "photo_z_order": 2,
      "photo_depth_ratio": 0.2,
      "confidence": 0.78,
      "appearance": {
        "color": "#f0efe8",
        "opacity": 1.0,
        "roughness": 0.6,
        "metalness": 0.04
      },
      "color": "#f0efe8",
      "photo_derived": true,
      "source_target_id": "soil-probe",
      "source_part_ids": [
        "photo-soil-probe"
      ]
    },
    {
      "id": "probe-prong-a",
      "label": "探头金属电极 A",
      "group": "sensor",
      "type": "cylinder",
      "dimensions": {
        "diameter": 2.4,
        "length": 45
      },
      "position": [
        78,
        39,
        2
      ],
      "rotation_deg": [
        0,
        0,
        -9
      ],
      "explode_vector": [
        1,
        1,
        0
      ],
      "material": "316 不锈钢",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#aab3b3",
        "opacity": 1.0,
        "roughness": 0.32,
        "metalness": 0.72
      },
      "color": "#aab3b3"
    },
    {
      "id": "probe-prong-b",
      "label": "探头金属电极 B",
      "group": "sensor",
      "type": "cylinder",
      "dimensions": {
        "diameter": 2.4,
        "length": 45
      },
      "position": [
        87,
        38,
        5
      ],
      "rotation_deg": [
        0,
        0,
        -9
      ],
      "explode_vector": [
        1,
        1,
        0
      ],
      "material": "316 不锈钢",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#aab3b3",
        "opacity": 1.0,
        "roughness": 0.32,
        "metalness": 0.72
      },
      "color": "#aab3b3"
    },
    {
      "id": "photo-status-button",
      "label": "状态按钮/指示灯",
      "label_en": "Status Button/Indicator",
      "group": "interface",
      "type": "cylinder",
      "dimensions": {
        "diameter": 10,
        "length": 4
      },
      "position": [
        -112,
        82,
        14
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0,
        1,
        0
      ],
      "material": "PC 导光按键",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "recognition_role": true,
      "evidence_ids": [
        "workbook-source-001"
      ],
      "photo_component_id": "status-button",
      "photo_bbox": [
        370,
        310,
        394,
        334
      ],
      "photo_polygon": [
        [
          382,
          310
        ],
        [
          391,
          312
        ],
        [
          394,
          322
        ],
        [
          391,
          332
        ],
        [
          382,
          334
        ],
        [
          373,
          332
        ],
        [
          370,
          322
        ],
        [
          373,
          312
        ]
      ],
      "photo_z_order": 2,
      "photo_depth_ratio": 0.5,
      "confidence": 0.65,
      "appearance": {
        "color": "#56d6ae",
        "opacity": 1.0,
        "roughness": 0.26,
        "metalness": 0.04
      },
      "color": "#56d6ae",
      "photo_derived": true,
      "source_target_id": "status-button",
      "source_part_ids": [
        "photo-status-button"
      ]
    },
    {
      "id": "photo-internal-pcba-1",
      "label": "灌溉控制 PCBA",
      "group": "pcb",
      "type": "box",
      "dimensions": {
        "width": 46,
        "depth": 2,
        "height": 32
      },
      "position": [
        -132,
        57,
        14
      ],
      "rotation_deg": [
        0.0,
        0.0,
        0.0
      ],
      "explode_vector": [
        0,
        0,
        -1
      ],
      "material": "FR-4 双层板",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#207b52",
        "opacity": 1.0,
        "roughness": 0.55,
        "metalness": 0.04
      },
      "color": "#207b52",
      "inside_envelope": true
    },
    {
      "id": "micro-pump",
      "label": "微型隔膜泵",
      "group": "sensor",
      "type": "cylinder",
      "dimensions": {
        "diameter": 22,
        "length": 32
      },
      "position": [
        -132,
        43,
        14
      ],
      "rotation_deg": [
        0,
        0,
        90
      ],
      "explode_vector": [
        0,
        0,
        -1
      ],
      "material": "POM 泵体与无刷电机",
      "quantity": 1,
      "source_status": "design_proposed",
      "source_reference": "creative-001 photo-v1 concept-image interpretation refined by the Codex Agent C-loop; millimetre dimensions and hidden geometry remain design proposals pending supplier drawings or physical verification",
      "appearance": {
        "color": "#414b50",
        "opacity": 1.0,
        "roughness": 0.48,
        "metalness": 0.04
      },
      "color": "#414b50",
      "inside_envelope": true
    }
  ],
  "patterns": [],
  "relations": [
    {
      "id": "clip-to-pot",
      "type": "clamped_to",
      "part_ids": [
        "photo-pot-rim-clip",
        "photo-host-pot"
      ],
      "description": "盆沿夹从外侧夹持花盆上沿，硅胶垫承受夹紧载荷。"
    },
    {
      "id": "tank-to-controller",
      "type": "latched_to",
      "part_ids": [
        "photo-water-tank",
        "photo-controller-housing"
      ],
      "description": "可拆水箱从控制器下方沿竖直方向装入。"
    },
    {
      "id": "pump-to-tubes",
      "type": "fluid_path",
      "part_ids": [
        "micro-pump",
        "photo-irrigation-tube-left",
        "photo-irrigation-tube-right"
      ],
      "description": "泵将水箱内的水输送到盆土两侧滴灌点。"
    },
    {
      "id": "probe-to-soil",
      "type": "inserted_into",
      "part_ids": [
        "photo-soil-probe",
        "soil-bed"
      ],
      "description": "双电极探头插入根系附近土壤。"
    },
    {
      "id": "pcb-in-controller",
      "type": "contained_by",
      "part_ids": [
        "photo-internal-pcba-1",
        "photo-controller-housing"
      ],
      "description": "控制 PCBA 位于防滴水控制器外壳内。"
    }
  ],
  "interfaces": [
    {
      "id": "water-fill",
      "label": "水箱注水口",
      "part_ids": [
        "photo-tank-lid",
        "photo-water-tank"
      ]
    },
    {
      "id": "soil-measurement",
      "label": "土壤含水率接口",
      "part_ids": [
        "photo-soil-probe",
        "photo-internal-pcba-1"
      ]
    }
  ],
  "cables": [
    {
      "part_id": "photo-irrigation-tube-left",
      "path": [
        [
          -93,
          72,
          -8
        ],
        [
          -68,
          106,
          -22
        ],
        [
          -27,
          116,
          -35
        ],
        [
          4,
          97,
          -40
        ],
        [
          8,
          60,
          -40
        ]
      ]
    },
    {
      "part_id": "photo-irrigation-tube-right",
      "path": [
        [
          -93,
          72,
          34
        ],
        [
          -45,
          122,
          44
        ],
        [
          16,
          128,
          46
        ],
        [
          68,
          102,
          45
        ],
        [
          72,
          60,
          44
        ]
      ]
    }
  ],
  "assembly_steps": [
    {
      "id": "step-01",
      "sequence": 1,
      "label": "将盆沿夹套入花盆上沿",
      "part_ids": [
        "photo-pot-rim-clip",
        "clip-inner-pad"
      ],
      "direction": [
        1,
        0,
        0
      ],
      "status": "design_proposed"
    },
    {
      "id": "step-02",
      "sequence": 2,
      "label": "装入控制板与微型泵并闭合控制器",
      "part_ids": [
        "photo-internal-pcba-1",
        "micro-pump",
        "photo-controller-housing"
      ],
      "direction": [
        0,
        0,
        -1
      ],
      "status": "design_proposed"
    },
    {
      "id": "step-03",
      "sequence": 3,
      "label": "由下向上扣入水箱并安装水箱盖",
      "part_ids": [
        "photo-water-tank",
        "photo-tank-lid"
      ],
      "direction": [
        0,
        1,
        0
      ],
      "status": "design_proposed"
    },
    {
      "id": "step-04",
      "sequence": 4,
      "label": "布置双路软管并插入土壤探头",
      "part_ids": [
        "photo-irrigation-tube-left",
        "photo-irrigation-tube-right",
        "photo-soil-probe",
        "probe-prong-a",
        "probe-prong-b",
        "water-volume",
        "photo-status-button"
      ],
      "direction": [
        0,
        -1,
        0
      ],
      "status": "pending_verification"
    }
  ],
  "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": "work-path-legibility",
      "type": "functional_work_path_legibility",
      "minimum_score": 85,
      "severity": "error"
    }
  ],
  "dimension_sources": [
    {
      "id": "concept-photo-form",
      "status": "design_proposed",
      "scope": "可见外观、主体轮廓、宿主、安装点与关键零件相对位置",
      "reference": "/hardware-structure/photos/creative-001-photo-v1.jpg"
    },
    {
      "id": "codex-c-loop-geometry",
      "status": "design_proposed",
      "scope": "产品专属三维参数、内部装配、装配方向和功能路径",
      "reference": "Codex Agent C-loop iteration 1"
    },
    {
      "id": "hidden-dimensions",
      "status": "pending_verification",
      "scope": "照片不可见的深度、背面、壁厚、紧固、密封和公差",
      "reference": "Requires supplier drawings, multi-view imagery or physical measurement"
    }
  ],
  "visual_assets": [
    {
      "id": "product-concept-photo",
      "type": "ai_generated_concept_photo",
      "url": "/hardware-structure/photos/creative-001-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-001.svg"
    }
  ],
  "photo_structure_contract": {
    "schema_version": "creative-photo-structure-contract/v1",
    "photo_revision": "photo-v1",
    "structure_revision": "codex-geometry-c1",
    "prototype_family": "agriculture-attachment",
    "migration_role": "photo_bound_gold_template",
    "host": "花盆（宿主）",
    "installation": "盆沿夹夹持在花盆边缘外侧",
    "scale_reference": "Ceramic pot ~200mm diameter visible; controller assembly adds ~45mm width; total envelope 245×110×235mm based on standard 6-8 inch plant pot proportions and visible scale against window frame",
    "visual_cues": [
      "控制器外壳",
      "透明水箱",
      "盆沿夹",
      "左侧灌溉软管",
      "右侧灌溉软管",
      "土壤湿度探头",
      "水箱盖",
      "状态按钮/指示灯"
    ],
    "expected_recognition_parts": [
      "控制器外壳",
      "透明水箱",
      "盆沿夹",
      "左侧灌溉软管",
      "右侧灌溉软管",
      "土壤湿度探头",
      "水箱盖",
      "状态按钮/指示灯"
    ],
    "pixel_review_status": "photo_geometry_rebuilt_pending_review",
    "truth_boundary": "本结构由 AI 概念图中的可见外观、宿主和安装关系直接反向生成；单图不可见深度与工程尺寸仍为建议值。",
    "quality_status": "reworked_pending_blind_visual_review"
  },
  "assumptions": [
    "外观和宿主关系来自单张 AI 概念图；花盆、植物及水位用于表达真实使用比例。",
    "水箱背面、卡扣、泵体固定和密封结构不可见，当前为 Codex 设计建议。",
    "所有毫米尺寸均待供应商图纸或实物复核。"
  ],
  "engineering_boundary": "该网页结构以 /hardware-structure/photos/creative-001-photo-v1.jpg 的 AI 概念图为外观输入，由 Codex Agent C-loop 重建产品专属参数几何和装配关系，仅用于形态、包络和评审。所有毫米尺寸均为设计建议或待复核值，不是正式 CAD、STEP、Gerber、模具或量产放行文件。",
  "photo_reconstruction": {
    "schema_version": "creative-photo-reconstruction/v1",
    "product_id": "creative-001",
    "case_id": 1,
    "photo_revision": "photo-v1",
    "structure_input_revision": "codex-geometry-c1",
    "generated_at": "2026-09-03",
    "photo": {
      "url": "/hardware-structure/photos/creative-001-photo-v1.jpg",
      "width_px": 960,
      "height_px": 600,
      "sha256": "dba39b19d94597ba3414c9cf1970a22f903ee156276bba18d2cd43e9a82370a2"
    },
    "targets": [
      {
        "id": "controller-housing",
        "label": "控制器外壳",
        "label_en": "Controller Housing",
        "role": "product_shell",
        "part_ids": [
          "photo-controller-housing"
        ],
        "bound_part_ids": [
          "photo-controller-housing"
        ]
      },
      {
        "id": "water-tank",
        "label": "透明水箱",
        "label_en": "Water Tank",
        "role": "product_shell",
        "part_ids": [
          "photo-water-tank"
        ],
        "bound_part_ids": [
          "photo-water-tank"
        ]
      },
      {
        "id": "pot-rim-clip",
        "label": "盆沿夹",
        "label_en": "Pot Rim Clip",
        "role": "mount",
        "part_ids": [
          "photo-pot-rim-clip"
        ],
        "bound_part_ids": [
          "photo-pot-rim-clip"
        ]
      },
      {
        "id": "irrigation-tube-left",
        "label": "左侧灌溉软管",
        "label_en": "Left Irrigation Tube",
        "role": "path",
        "part_ids": [
          "photo-irrigation-tube-left"
        ],
        "bound_part_ids": [
          "photo-irrigation-tube-left"
        ]
      },
      {
        "id": "irrigation-tube-right",
        "label": "右侧灌溉软管",
        "label_en": "Right Irrigation Tube",
        "role": "path",
        "part_ids": [
          "photo-irrigation-tube-right"
        ],
        "bound_part_ids": [
          "photo-irrigation-tube-right"
        ]
      },
      {
        "id": "soil-probe",
        "label": "土壤湿度探头",
        "label_en": "Soil Moisture Probe",
        "role": "visible_part",
        "part_ids": [
          "photo-soil-probe"
        ],
        "bound_part_ids": [
          "photo-soil-probe"
        ]
      },
      {
        "id": "tank-lid",
        "label": "水箱盖",
        "label_en": "Tank Lid",
        "role": "visible_part",
        "part_ids": [
          "photo-tank-lid"
        ],
        "bound_part_ids": [
          "photo-tank-lid"
        ]
      },
      {
        "id": "status-button",
        "label": "状态按钮/指示灯",
        "label_en": "Status Button/Indicator",
        "role": "visible_part",
        "part_ids": [
          "photo-status-button"
        ],
        "bound_part_ids": [
          "photo-status-button"
        ]
      },
      {
        "id": "host-pot",
        "label": "花盆（宿主）",
        "label_en": "Plant Pot (Host)",
        "role": "host",
        "part_ids": [
          "photo-host-pot"
        ],
        "bound_part_ids": [
          "photo-host-pot"
        ]
      }
    ],
    "regions": [
      {
        "target_id": "controller-housing",
        "role": "product_shell",
        "visible": true,
        "bbox": [
          210,
          294,
          394,
          498
        ],
        "polygon": [
          [
            210,
            294
          ],
          [
            394,
            294
          ],
          [
            394,
            498
          ],
          [
            210,
            498
          ]
        ],
        "confidence": 0.95,
        "shape_hint": "rounded_box",
        "visual_description": "控制器外壳；照片识别材质：哑光白色ABS塑料；直接驱动 photo-controller-housing 的实际几何。"
      },
      {
        "target_id": "water-tank",
        "role": "product_shell",
        "visible": true,
        "bbox": [
          214,
          498,
          350,
          812
        ],
        "polygon": [
          [
            214,
            498
          ],
          [
            350,
            498
          ],
          [
            350,
            812
          ],
          [
            214,
            812
          ]
        ],
        "confidence": 0.92,
        "shape_hint": "prism",
        "visual_description": "透明水箱；照片识别材质：透明PET或PC塑料；直接驱动 photo-water-tank 的实际几何。"
      },
      {
        "target_id": "pot-rim-clip",
        "role": "mount",
        "visible": true,
        "bbox": [
          346,
          382,
          394,
          498
        ],
        "polygon": [
          [
            346,
            382
          ],
          [
            394,
            382
          ],
          [
            394,
            498
          ],
          [
            346,
            498
          ]
        ],
        "confidence": 0.88,
        "shape_hint": "rounded_box",
        "visual_description": "盆沿夹；照片识别材质：白色塑料；直接驱动 photo-pot-rim-clip 的实际几何。"
      },
      {
        "target_id": "irrigation-tube-left",
        "role": "path",
        "visible": true,
        "bbox": [
          394,
          272,
          606,
          498
        ],
        "polygon": [
          [
            394,
            272
          ],
          [
            606,
            272
          ],
          [
            606,
            498
          ],
          [
            394,
            498
          ]
        ],
        "confidence": 0.85,
        "shape_hint": "cable",
        "visual_description": "左侧灌溉软管；照片识别材质：透明硅胶软管；直接驱动 photo-irrigation-tube-left 的实际几何。"
      },
      {
        "target_id": "irrigation-tube-right",
        "role": "path",
        "visible": true,
        "bbox": [
          520,
          272,
          754,
          498
        ],
        "polygon": [
          [
            520,
            272
          ],
          [
            754,
            272
          ],
          [
            754,
            498
          ],
          [
            520,
            498
          ]
        ],
        "confidence": 0.82,
        "shape_hint": "cable",
        "visual_description": "右侧灌溉软管；照片识别材质：透明硅胶软管；直接驱动 photo-irrigation-tube-right 的实际几何。"
      },
      {
        "target_id": "soil-probe",
        "role": "visible_part",
        "visible": true,
        "bbox": [
          676,
          248,
          754,
          498
        ],
        "polygon": [
          [
            676,
            248
          ],
          [
            754,
            248
          ],
          [
            754,
            498
          ],
          [
            676,
            498
          ]
        ],
        "confidence": 0.78,
        "shape_hint": "rounded_box",
        "visual_description": "土壤湿度探头；照片识别材质：白色塑料外壳，金属探针；直接驱动 photo-soil-probe 的实际几何。"
      },
      {
        "target_id": "tank-lid",
        "role": "visible_part",
        "visible": true,
        "bbox": [
          210,
          294,
          394,
          350
        ],
        "polygon": [
          [
            210,
            294
          ],
          [
            394,
            294
          ],
          [
            394,
            350
          ],
          [
            210,
            350
          ]
        ],
        "confidence": 0.9,
        "shape_hint": "rounded_box",
        "visual_description": "水箱盖；照片识别材质：白色塑料；直接驱动 photo-tank-lid 的实际几何。"
      },
      {
        "target_id": "status-button",
        "role": "visible_part",
        "visible": true,
        "bbox": [
          370,
          310,
          394,
          334
        ],
        "polygon": [
          [
            370,
            310
          ],
          [
            394,
            310
          ],
          [
            394,
            334
          ],
          [
            370,
            334
          ]
        ],
        "confidence": 0.65,
        "shape_hint": "cylinder",
        "visual_description": "状态按钮/指示灯；照片识别材质：白色塑料，可能带LED；直接驱动 photo-status-button 的实际几何。"
      },
      {
        "target_id": "host-pot",
        "role": "host",
        "visible": true,
        "bbox": [
          350,
          334,
          834,
          1000
        ],
        "polygon": [
          [
            350,
            334
          ],
          [
            834,
            334
          ],
          [
            834,
            1000
          ],
          [
            350,
            1000
          ]
        ],
        "confidence": 0.95,
        "shape_hint": "cylinder",
        "visual_description": "花盆（宿主）；照片识别材质：釉面陶瓷，底部粗陶；直接驱动 photo-host-pot 的实际几何。"
      }
    ],
    "product_silhouette": {
      "bbox": [
        204,
        272,
        754,
        1000
      ],
      "polygon": [
        [
          204,
          272
        ],
        [
          754,
          272
        ],
        [
          754,
          1000
        ],
        [
          204,
          1000
        ]
      ],
      "description": "自动灌溉控制器夹持在花盆边缘，透明水箱悬挂外侧，双路软管伸入盆土，土壤探头插入土中"
    },
    "mounting_points": [
      {
        "id": "photo-mount-01",
        "label": "盆沿夹",
        "point": [
          370,
          440
        ],
        "confidence": 0.88
      }
    ],
    "connections": [
      {
        "from_target_id": "controller-housing",
        "to_target_id": "pot-rim-clip",
        "type": "connected_to",
        "description": "控制器外壳与盆沿夹一体成型，夹持固定在花盆边缘"
      },
      {
        "from_target_id": "pot-rim-clip",
        "to_target_id": "host-pot",
        "type": "attached_to",
        "description": "盆沿夹夹持在花盆边缘外侧"
      },
      {
        "from_target_id": "water-tank",
        "to_target_id": "controller-housing",
        "type": "connected_to",
        "description": "透明水箱悬挂于控制器外壳下方，一体连接"
      },
      {
        "from_target_id": "tank-lid",
        "to_target_id": "water-tank",
        "type": "connected_to",
        "description": "水箱盖覆盖于透明水箱顶部"
      },
      {
        "from_target_id": "irrigation-tube-left",
        "to_target_id": "controller-housing",
        "type": "connected_to",
        "description": "左侧软管从控制器底部引出"
      },
      {
        "from_target_id": "irrigation-tube-right",
        "to_target_id": "controller-housing",
        "type": "connected_to",
        "description": "右侧软管从控制器底部引出"
      },
      {
        "from_target_id": "irrigation-tube-left",
        "to_target_id": "host-pot",
        "type": "inserted_into",
        "description": "左侧软管末端插入盆土中"
      },
      {
        "from_target_id": "irrigation-tube-right",
        "to_target_id": "host-pot",
        "type": "inserted_into",
        "description": "右侧软管末端插入盆土中"
      },
      {
        "from_target_id": "soil-probe",
        "to_target_id": "host-pot",
        "type": "inserted_into",
        "description": "土壤探头插入盆土中，靠近植物茎基部"
      },
      {
        "from_target_id": "status-button",
        "to_target_id": "controller-housing",
        "type": "connected_to",
        "description": "状态按钮嵌于控制器外壳顶部"
      }
    ],
    "camera": {
      "view": "front",
      "projection": "orthographic_like",
      "yaw_deg": 0,
      "pitch_deg": 0,
      "roll_deg": 0,
      "fov_deg": 45,
      "framing_bbox": [
        204,
        272,
        754,
        1000
      ],
      "source_camera_estimate": {
        "projection": "perspective",
        "yaw_deg": 15,
        "pitch_deg": -10,
        "roll_deg": 0,
        "fov_deg": 45
      }
    },
    "geometry_plan": {
      "strategy": "codex_agent_parametric_closed_loop",
      "rationale": "Kimi VLM supplies visible components and image evidence; Codex builds product-specific millimetre geometry, assembly relations and review views without using cropped photo surfaces as the engineering model.",
      "bindings": [
        {
          "target_id": "controller-housing",
          "part_ids": [
            "photo-controller-housing"
          ],
          "primitive": "rounded_box",
          "orientation": "vertical",
          "depth_order": 0
        },
        {
          "target_id": "water-tank",
          "part_ids": [
            "photo-water-tank"
          ],
          "primitive": "extruded_polygon",
          "orientation": "vertical",
          "depth_order": 0
        },
        {
          "target_id": "pot-rim-clip",
          "part_ids": [
            "photo-pot-rim-clip"
          ],
          "primitive": "rounded_box",
          "orientation": "horizontal",
          "depth_order": 0
        },
        {
          "target_id": "irrigation-tube-left",
          "part_ids": [
            "photo-irrigation-tube-left"
          ],
          "primitive": "tube_path",
          "orientation": "horizontal",
          "depth_order": 1
        },
        {
          "target_id": "irrigation-tube-right",
          "part_ids": [
            "photo-irrigation-tube-right"
          ],
          "primitive": "tube_path",
          "orientation": "horizontal",
          "depth_order": 1
        },
        {
          "target_id": "soil-probe",
          "part_ids": [
            "photo-soil-probe"
          ],
          "primitive": "rounded_box",
          "orientation": "vertical",
          "depth_order": 2
        },
        {
          "target_id": "tank-lid",
          "part_ids": [
            "photo-tank-lid"
          ],
          "primitive": "rounded_box",
          "orientation": "horizontal",
          "depth_order": 2
        },
        {
          "target_id": "status-button",
          "part_ids": [
            "photo-status-button"
          ],
          "primitive": "cylinder",
          "orientation": "vertical",
          "depth_order": 2
        },
        {
          "target_id": "host-pot",
          "part_ids": [
            "photo-host-pot"
          ],
          "primitive": "tapered_cylinder",
          "orientation": "vertical",
          "depth_order": -3
        }
      ]
    },
    "uncertainties": [
      "水箱实际深度和背面轮廓被遮挡，假设为圆柱形",
      "土壤探头内部金属探针长度不可见，仅见白色外壳部分",
      "右侧软管远端路径被叶片部分遮挡，中心线为估计",
      "控制器内部泵体、电路板不可见，仅重建外壳",
      "盆沿夹背面与花盆接触面的精确曲率不可见",
      "状态按钮是否为机械按键或触摸式不可确定"
    ],
    "provenance": {
      "mode": "kimi_vlm",
      "provider": "kimi",
      "model": "kimi-k2.6",
      "operation": "photo-derived-structure.rebuild",
      "prompt_template_version": "photo-derived-structure-v1",
      "calls": [
        {
          "provider": "kimi",
          "model_version": "kimi-k2.6",
          "operation": "photo-derived-structure.rebuild",
          "prompt_template_version": "photo-derived-structure-v1",
          "request_hash": "9ec9552b47e1c20ad070ce3ecacaa10ba15dd39fecf14ef2e3dea600859c6310",
          "latency_ms": 54970,
          "status": "completed",
          "prompt_tokens": 1560,
          "completion_tokens": 2027,
          "total_tokens": 3587,
          "cached_tokens": 1213,
          "error_code": "",
          "error_message": "",
          "fallback_used": false
        }
      ]
    },
    "truth_boundary": {
      "zh": "当前主结构、照片标注和审查代理均来自同一张概念图；深度、背面和隐藏装配仍需多视图或工程资料确认。",
      "en": "The primary structure, photo annotations and review geometry come from the same concept image; depth, rear surfaces and hidden assembly still require additional views or engineering evidence."
    },
    "geometry_proxy_parts": [
      {
        "id": "photo-controller-housing",
        "label": "控制器外壳",
        "label_en": "Controller Housing",
        "group": "shell",
        "type": "rounded_box",
        "dimensions": {
          "width": 81.964,
          "depth": 38.5,
          "height": 65.852,
          "corner_radius": 7.902
        },
        "position": [
          -78.845,
          77.473,
          0.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "explode_vector": [
          -1,
          1,
          1
        ],
        "material": "哑光白色ABS塑料",
        "quantity": 1,
        "source_status": "design_proposed",
        "source_reference": "creative-001 photo-v1 concept-image reconstruction; dimensions and hidden depth are AI design proposals, pending supplier drawings or physical verification",
        "recognition_role": true,
        "evidence_ids": [
          "workbook-source-001"
        ],
        "photo_component_id": "controller-housing",
        "photo_bbox": [
          210,
          294,
          394,
          498
        ],
        "photo_polygon": [
          [
            210,
            294
          ],
          [
            394,
            294
          ],
          [
            394,
            498
          ],
          [
            210,
            498
          ]
        ],
        "photo_z_order": 0,
        "photo_depth_ratio": 0.35,
        "confidence": 0.95,
        "appearance": {
          "color": "#f5f5f0",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        },
        "color": "#f5f5f0",
        "photo_derived": true,
        "source_target_id": "controller-housing",
        "source_part_ids": [
          "photo-controller-housing"
        ]
      },
      {
        "id": "photo-water-tank",
        "label": "透明水箱",
        "label_en": "Water Tank",
        "group": "shell",
        "type": "extruded_polygon",
        "dimensions": {
          "width": 60.582,
          "depth": 44.0,
          "height": 101.36
        },
        "position": [
          -87.755,
          -6.133,
          0.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "explode_vector": [
          -1,
          -1,
          1
        ],
        "material": "透明PET或PC塑料",
        "quantity": 1,
        "source_status": "design_proposed",
        "source_reference": "creative-001 photo-v1 concept-image reconstruction; dimensions and hidden depth are AI design proposals, pending supplier drawings or physical verification",
        "recognition_role": true,
        "evidence_ids": [
          "workbook-source-001"
        ],
        "photo_component_id": "water-tank",
        "photo_bbox": [
          214,
          498,
          350,
          812
        ],
        "photo_polygon": [
          [
            214,
            498
          ],
          [
            350,
            498
          ],
          [
            350,
            812
          ],
          [
            214,
            812
          ]
        ],
        "photo_z_order": 0,
        "photo_depth_ratio": 0.4,
        "confidence": 0.92,
        "appearance": {
          "color": "#e8f4f8",
          "opacity": 0.72,
          "roughness": 0.68,
          "metalness": 0.04
        },
        "color": "#e8f4f8",
        "photo_derived": true,
        "profile_points": [
          [
            -30.29,
            50.68
          ],
          [
            30.291,
            50.68
          ],
          [
            30.291,
            -50.68
          ],
          [
            -30.29,
            -50.68
          ]
        ],
        "source_target_id": "water-tank",
        "source_part_ids": [
          "photo-water-tank"
        ]
      },
      {
        "id": "photo-pot-rim-clip",
        "label": "盆沿夹",
        "label_en": "Pot Rim Clip",
        "group": "bracket",
        "type": "rounded_box",
        "dimensions": {
          "width": 21.382,
          "depth": 66.0,
          "height": 37.445,
          "corner_radius": 2.566
        },
        "position": [
          -48.555,
          63.269,
          0.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "explode_vector": [
          -1,
          1,
          1
        ],
        "material": "白色塑料",
        "quantity": 1,
        "source_status": "design_proposed",
        "source_reference": "creative-001 photo-v1 concept-image reconstruction; dimensions and hidden depth are AI design proposals, pending supplier drawings or physical verification",
        "recognition_role": true,
        "evidence_ids": [
          "workbook-source-001"
        ],
        "photo_component_id": "pot-rim-clip",
        "photo_bbox": [
          346,
          382,
          394,
          498
        ],
        "photo_polygon": [
          [
            346,
            382
          ],
          [
            394,
            382
          ],
          [
            394,
            498
          ],
          [
            346,
            498
          ]
        ],
        "photo_z_order": 0,
        "photo_depth_ratio": 0.6,
        "confidence": 0.88,
        "appearance": {
          "color": "#f0f0eb",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        },
        "color": "#f0f0eb",
        "photo_derived": true,
        "source_target_id": "pot-rim-clip",
        "source_part_ids": [
          "photo-pot-rim-clip"
        ]
      },
      {
        "id": "photo-irrigation-tube-left",
        "label": "左侧灌溉软管",
        "label_en": "Left Irrigation Tube",
        "group": "cable",
        "type": "curved_tube",
        "dimensions": {
          "outer_diameter": 8.225,
          "inner_diameter": 4.771,
          "length": 118.964
        },
        "position": [
          0.0,
          0.0,
          0.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "explode_vector": [
          1,
          1,
          1
        ],
        "material": "透明硅胶软管",
        "quantity": 1,
        "source_status": "design_proposed",
        "source_reference": "creative-001 photo-v1 concept-image reconstruction; dimensions and hidden depth are AI design proposals, pending supplier drawings or physical verification",
        "recognition_role": true,
        "evidence_ids": [
          "workbook-source-001"
        ],
        "photo_component_id": "irrigation-tube-left",
        "photo_bbox": [
          394,
          272,
          606,
          498
        ],
        "photo_polygon": [
          [
            394,
            272
          ],
          [
            606,
            272
          ],
          [
            606,
            498
          ],
          [
            394,
            498
          ]
        ],
        "photo_z_order": 1,
        "photo_depth_ratio": 0.15,
        "confidence": 0.85,
        "appearance": {
          "color": "#d0e8f0",
          "opacity": 0.72,
          "roughness": 0.68,
          "metalness": 0.04
        },
        "color": "#d0e8f0",
        "photo_derived": true,
        "path": [
          [
            -37.864,
            95.549,
            6.05
          ],
          [
            -12.918,
            108.462,
            6.05
          ],
          [
            18.264,
            111.69,
            6.05
          ],
          [
            44.991,
            95.549,
            6.05
          ],
          [
            56.573,
            69.725,
            6.05
          ]
        ],
        "source_target_id": "irrigation-tube-left",
        "source_part_ids": [
          "photo-irrigation-tube-left"
        ]
      },
      {
        "id": "photo-irrigation-tube-right",
        "label": "右侧灌溉软管",
        "label_en": "Right Irrigation Tube",
        "group": "cable",
        "type": "curved_tube",
        "dimensions": {
          "outer_diameter": 8.225,
          "inner_diameter": 4.771,
          "length": 121.944
        },
        "position": [
          0.0,
          0.0,
          0.0
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "explode_vector": [
          1,
          1,
          1
        ],
        "material": "透明硅胶软管",
        "quantity": 1,
        "source_status": "design_proposed",
        "source_reference": "creative-001 photo-v1 concept-image reconstruction; dimensions and hidden depth are AI design proposals, pending supplier drawings or physical verification",
        "recognition_role": true,
        "evidence_ids": [
          "workbook-source-001"
        ],
        "photo_component_id": "irrigation-tube-right",
        "photo_bbox": [
          520,
          272,
          754,
          498
        ],
        "photo_polygon": [
          [
            520,
            272
          ],
          [
            754,
            272
          ],
          [
            754,
            498
          ],
          [
            520,
            498
          ]
        ],
        "photo_z_order": 1,
        "photo_depth_ratio": 0.15,
        "confidence": 0.82,
        "appearance": {
          "color": "#d0e8f0",
          "opacity": 0.72,
          "roughness": 0.68,
          "metalness": 0.04
        },
        "color": "#d0e8f0",
        "photo_derived": true,
        "path": [
          [
            18.264,
            111.69,
            6.05
          ],
          [
            44.991,
            114.918,
            6.05
          ],
          [
            76.173,
            108.462,
            6.05
          ],
          [
            98.445,
            82.637,
            6.05
          ],
          [
            111.809,
            56.813,
            6.05
          ]
        ],
        "source_target_id": "irrigation-tube-right",
        "source_part_ids": [
          "photo-irrigation-tube-right"
        ]
      },
      {
        "id": "photo-soil-probe",
        "label": "土壤湿度探头",
        "label_en": "Soil Moisture Probe",
        "group": "sensor",
        "type": "rounded_box",
        "dimensions": {
          "width": 34.745,
          "depth": 22.0,
          "height": 80.701,
          "corner_radius": 4.169
        },
        "position": [
          105.127,
          84.897,
          12.1
        ],
        "rotation_deg": [
          0.0,
          0.0,
          15.0
        ],
        "explode_vector": [
          1,
          1,
          1
        ],
        "material": "白色塑料外壳，金属探针",
        "quantity": 1,
        "source_status": "design_proposed",
        "source_reference": "creative-001 photo-v1 concept-image reconstruction; dimensions and hidden depth are AI design proposals, pending supplier drawings or physical verification",
        "recognition_role": true,
        "evidence_ids": [
          "workbook-source-001"
        ],
        "photo_component_id": "soil-probe",
        "photo_bbox": [
          676,
          248,
          754,
          498
        ],
        "photo_polygon": [
          [
            676,
            248
          ],
          [
            754,
            248
          ],
          [
            754,
            498
          ],
          [
            676,
            498
          ]
        ],
        "photo_z_order": 2,
        "photo_depth_ratio": 0.2,
        "confidence": 0.78,
        "appearance": {
          "color": "#f0f0f0",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        },
        "color": "#f0f0f0",
        "photo_derived": true,
        "source_target_id": "soil-probe",
        "source_part_ids": [
          "photo-soil-probe"
        ]
      },
      {
        "id": "photo-tank-lid",
        "label": "水箱盖",
        "label_en": "Tank Lid",
        "group": "sensor",
        "type": "rounded_box",
        "dimensions": {
          "width": 81.964,
          "depth": 33.0,
          "height": 18.077,
          "corner_radius": 2.169
        },
        "position": [
          -78.845,
          101.36,
          12.1
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "explode_vector": [
          -1,
          1,
          1
        ],
        "material": "白色塑料",
        "quantity": 1,
        "source_status": "design_proposed",
        "source_reference": "creative-001 photo-v1 concept-image reconstruction; dimensions and hidden depth are AI design proposals, pending supplier drawings or physical verification",
        "recognition_role": true,
        "evidence_ids": [
          "workbook-source-001"
        ],
        "photo_component_id": "tank-lid",
        "photo_bbox": [
          210,
          294,
          394,
          350
        ],
        "photo_polygon": [
          [
            210,
            294
          ],
          [
            394,
            294
          ],
          [
            394,
            350
          ],
          [
            210,
            350
          ]
        ],
        "photo_z_order": 2,
        "photo_depth_ratio": 0.3,
        "confidence": 0.9,
        "appearance": {
          "color": "#fafaf5",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        },
        "color": "#fafaf5",
        "photo_derived": true,
        "source_target_id": "tank-lid",
        "source_part_ids": [
          "photo-tank-lid"
        ]
      },
      {
        "id": "photo-status-button",
        "label": "状态按钮/指示灯",
        "label_en": "Status Button/Indicator",
        "group": "sensor",
        "type": "cylinder",
        "dimensions": {
          "diameter": 10.691,
          "length": 7.747
        },
        "position": [
          -43.209,
          101.36,
          12.1
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "explode_vector": [
          -1,
          1,
          1
        ],
        "material": "白色塑料，可能带LED",
        "quantity": 1,
        "source_status": "design_proposed",
        "source_reference": "creative-001 photo-v1 concept-image reconstruction; dimensions and hidden depth are AI design proposals, pending supplier drawings or physical verification",
        "recognition_role": true,
        "evidence_ids": [
          "workbook-source-001"
        ],
        "photo_component_id": "status-button",
        "photo_bbox": [
          370,
          310,
          394,
          334
        ],
        "photo_polygon": [
          [
            382,
            310
          ],
          [
            391,
            312
          ],
          [
            394,
            322
          ],
          [
            391,
            332
          ],
          [
            382,
            334
          ],
          [
            373,
            332
          ],
          [
            370,
            322
          ],
          [
            373,
            312
          ]
        ],
        "photo_z_order": 2,
        "photo_depth_ratio": 0.5,
        "confidence": 0.65,
        "appearance": {
          "color": "#f5f5f0",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        },
        "color": "#f5f5f0",
        "photo_derived": true,
        "source_target_id": "status-button",
        "source_part_ids": [
          "photo-status-button"
        ]
      },
      {
        "id": "photo-host-pot",
        "label": "花盆（宿主）",
        "label_en": "Plant Pot (Host)",
        "group": "host",
        "type": "tapered_cylinder",
        "dimensions": {
          "top_diameter": 215.6,
          "bottom_diameter": 168.168,
          "length": 214.986
        },
        "position": [
          50.336,
          -10.007,
          -18.15
        ],
        "rotation_deg": [
          0.0,
          0.0,
          0.0
        ],
        "explode_vector": [
          1,
          -1,
          -1
        ],
        "material": "釉面陶瓷，底部粗陶",
        "quantity": 1,
        "source_status": "pending_verification",
        "source_reference": "creative-001 photo-v1 concept-image reconstruction; dimensions and hidden depth are AI design proposals, pending supplier drawings or physical verification",
        "recognition_role": false,
        "evidence_ids": [
          "workbook-source-001"
        ],
        "photo_component_id": "host-pot",
        "photo_bbox": [
          350,
          334,
          834,
          1000
        ],
        "photo_polygon": [
          [
            379,
            334
          ],
          [
            805,
            334
          ],
          [
            834,
            381
          ],
          [
            781,
            947
          ],
          [
            747,
            1000
          ],
          [
            437,
            1000
          ],
          [
            403,
            947
          ],
          [
            350,
            381
          ]
        ],
        "photo_z_order": -3,
        "photo_depth_ratio": 0.85,
        "confidence": 0.95,
        "appearance": {
          "color": "#e8ddd0",
          "opacity": 0.9,
          "roughness": 0.68,
          "metalness": 0.04
        },
        "color": "#e8ddd0",
        "photo_derived": true,
        "source_target_id": "host-pot",
        "source_part_ids": [
          "photo-host-pot"
        ]
      }
    ],
    "engineering_geometry_revision": "codex-geometry-c1",
    "geometry_fingerprint": "sha256:3118b1459692485f13d5462cdae3682574a450af6475e7f613584897bf73ba8a",
    "visual_review": {
      "status": "pending_review",
      "score": null,
      "geometry_fingerprint": "sha256:3118b1459692485f13d5462cdae3682574a450af6475e7f613584897bf73ba8a",
      "updated_at": "2026-09-19",
      "reason": "Geometry changed during deterministic structure-quality remediation and requires fresh visual review."
    }
  },
  "photo_derived_structure": {
    "schema_version": "creative-photo-derived-structure/v1",
    "product_id": "creative-001",
    "case_id": 1,
    "photo_revision": "photo-v1",
    "generated_at": "2026-09-03",
    "photo": {
      "url": "/hardware-structure/photos/creative-001-photo-v1.jpg",
      "width_px": 960,
      "height_px": 600,
      "sha256": "dba39b19d94597ba3414c9cf1970a22f903ee156276bba18d2cd43e9a82370a2"
    },
    "product": {
      "bbox": [
        204,
        272,
        754,
        1000
      ],
      "polygon": [
        [
          204,
          272
        ],
        [
          754,
          272
        ],
        [
          754,
          1000
        ],
        [
          204,
          1000
        ]
      ],
      "estimated_dimensions_mm": {
        "width": 245,
        "depth": 110,
        "height": 235
      },
      "dimension_basis": "Ceramic pot ~200mm diameter visible; controller assembly adds ~45mm width; total envelope 245×110×235mm based on standard 6-8 inch plant pot proportions and visible scale against window frame",
      "form_summary": "自动灌溉控制器夹持在花盆边缘，透明水箱悬挂外侧，双路软管伸入盆土，土壤探头插入土中"
    },
    "components": [
      {
        "id": "controller-housing",
        "label_zh": "控制器外壳",
        "label_en": "Controller Housing",
        "role": "shell",
        "bbox": [
          210,
          294,
          394,
          498
        ],
        "polygon": [
          [
            210,
            294
          ],
          [
            394,
            294
          ],
          [
            394,
            498
          ],
          [
            210,
            498
          ]
        ],
        "confidence": 0.95,
        "material_guess": "哑光白色ABS塑料",
        "geometry": {
          "type": "rounded_box",
          "axis": "vertical",
          "depth_ratio": 0.35,
          "corner_ratio": 0.12,
          "top_scale": 1.0,
          "bottom_scale": 1.0,
          "inner_ratio": 0.68,
          "thickness_ratio": 0.035,
          "z_order": 0,
          "rotation_deg": 0.0,
          "centerline": []
        },
        "appearance": {
          "color": "#f5f5f0",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        }
      },
      {
        "id": "water-tank",
        "label_zh": "透明水箱",
        "label_en": "Water Tank",
        "role": "shell",
        "bbox": [
          214,
          498,
          350,
          812
        ],
        "polygon": [
          [
            214,
            498
          ],
          [
            350,
            498
          ],
          [
            350,
            812
          ],
          [
            214,
            812
          ]
        ],
        "confidence": 0.92,
        "material_guess": "透明PET或PC塑料",
        "geometry": {
          "type": "extruded_polygon",
          "axis": "vertical",
          "depth_ratio": 0.4,
          "corner_ratio": 0.04,
          "top_scale": 1.0,
          "bottom_scale": 1.0,
          "inner_ratio": 0.68,
          "thickness_ratio": 0.035,
          "z_order": 0,
          "rotation_deg": 0.0,
          "centerline": []
        },
        "appearance": {
          "color": "#e8f4f8",
          "opacity": 0.72,
          "roughness": 0.68,
          "metalness": 0.04
        }
      },
      {
        "id": "pot-rim-clip",
        "label_zh": "盆沿夹",
        "label_en": "Pot Rim Clip",
        "role": "mount",
        "bbox": [
          346,
          382,
          394,
          498
        ],
        "polygon": [
          [
            346,
            382
          ],
          [
            394,
            382
          ],
          [
            394,
            498
          ],
          [
            346,
            498
          ]
        ],
        "confidence": 0.88,
        "material_guess": "白色塑料",
        "geometry": {
          "type": "rounded_box",
          "axis": "horizontal",
          "depth_ratio": 0.6,
          "corner_ratio": 0.12,
          "top_scale": 1.0,
          "bottom_scale": 1.0,
          "inner_ratio": 0.68,
          "thickness_ratio": 0.035,
          "z_order": 0,
          "rotation_deg": 0.0,
          "centerline": []
        },
        "appearance": {
          "color": "#f0f0eb",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        }
      },
      {
        "id": "irrigation-tube-left",
        "label_zh": "左侧灌溉软管",
        "label_en": "Left Irrigation Tube",
        "role": "cable",
        "bbox": [
          394,
          272,
          606,
          498
        ],
        "polygon": [
          [
            394,
            272
          ],
          [
            606,
            272
          ],
          [
            606,
            498
          ],
          [
            394,
            498
          ]
        ],
        "confidence": 0.85,
        "material_guess": "透明硅胶软管",
        "geometry": {
          "type": "tube_path",
          "axis": "horizontal",
          "depth_ratio": 0.15,
          "corner_ratio": 0.04,
          "top_scale": 1.0,
          "bottom_scale": 1.0,
          "inner_ratio": 0.68,
          "thickness_ratio": 0.035,
          "z_order": 1,
          "rotation_deg": 0.0,
          "centerline": [
            [
              394,
              340
            ],
            [
              450,
              300
            ],
            [
              520,
              290
            ],
            [
              580,
              340
            ],
            [
              606,
              420
            ]
          ]
        },
        "appearance": {
          "color": "#d0e8f0",
          "opacity": 0.72,
          "roughness": 0.68,
          "metalness": 0.04
        }
      },
      {
        "id": "irrigation-tube-right",
        "label_zh": "右侧灌溉软管",
        "label_en": "Right Irrigation Tube",
        "role": "cable",
        "bbox": [
          520,
          272,
          754,
          498
        ],
        "polygon": [
          [
            520,
            272
          ],
          [
            754,
            272
          ],
          [
            754,
            498
          ],
          [
            520,
            498
          ]
        ],
        "confidence": 0.82,
        "material_guess": "透明硅胶软管",
        "geometry": {
          "type": "tube_path",
          "axis": "horizontal",
          "depth_ratio": 0.15,
          "corner_ratio": 0.04,
          "top_scale": 1.0,
          "bottom_scale": 1.0,
          "inner_ratio": 0.68,
          "thickness_ratio": 0.035,
          "z_order": 1,
          "rotation_deg": 0.0,
          "centerline": [
            [
              520,
              290
            ],
            [
              580,
              280
            ],
            [
              650,
              300
            ],
            [
              700,
              380
            ],
            [
              730,
              460
            ]
          ]
        },
        "appearance": {
          "color": "#d0e8f0",
          "opacity": 0.72,
          "roughness": 0.68,
          "metalness": 0.04
        }
      },
      {
        "id": "soil-probe",
        "label_zh": "土壤湿度探头",
        "label_en": "Soil Moisture Probe",
        "role": "sensor",
        "bbox": [
          676,
          248,
          754,
          498
        ],
        "polygon": [
          [
            676,
            248
          ],
          [
            754,
            248
          ],
          [
            754,
            498
          ],
          [
            676,
            498
          ]
        ],
        "confidence": 0.78,
        "material_guess": "白色塑料外壳，金属探针",
        "geometry": {
          "type": "rounded_box",
          "axis": "vertical",
          "depth_ratio": 0.2,
          "corner_ratio": 0.12,
          "top_scale": 1.0,
          "bottom_scale": 1.0,
          "inner_ratio": 0.68,
          "thickness_ratio": 0.035,
          "z_order": 2,
          "rotation_deg": 15.0,
          "centerline": []
        },
        "appearance": {
          "color": "#f0f0f0",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        }
      },
      {
        "id": "tank-lid",
        "label_zh": "水箱盖",
        "label_en": "Tank Lid",
        "role": "sensor",
        "bbox": [
          210,
          294,
          394,
          350
        ],
        "polygon": [
          [
            210,
            294
          ],
          [
            394,
            294
          ],
          [
            394,
            350
          ],
          [
            210,
            350
          ]
        ],
        "confidence": 0.9,
        "material_guess": "白色塑料",
        "geometry": {
          "type": "rounded_box",
          "axis": "horizontal",
          "depth_ratio": 0.3,
          "corner_ratio": 0.12,
          "top_scale": 1.0,
          "bottom_scale": 1.0,
          "inner_ratio": 0.68,
          "thickness_ratio": 0.035,
          "z_order": 2,
          "rotation_deg": 0.0,
          "centerline": []
        },
        "appearance": {
          "color": "#fafaf5",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        }
      },
      {
        "id": "status-button",
        "label_zh": "状态按钮/指示灯",
        "label_en": "Status Button/Indicator",
        "role": "sensor",
        "bbox": [
          370,
          310,
          394,
          334
        ],
        "polygon": [
          [
            370,
            310
          ],
          [
            394,
            310
          ],
          [
            394,
            334
          ],
          [
            370,
            334
          ]
        ],
        "confidence": 0.65,
        "material_guess": "白色塑料，可能带LED",
        "geometry": {
          "type": "cylinder",
          "axis": "vertical",
          "depth_ratio": 0.5,
          "corner_ratio": 0.04,
          "top_scale": 1.0,
          "bottom_scale": 1.0,
          "inner_ratio": 0.68,
          "thickness_ratio": 0.035,
          "z_order": 2,
          "rotation_deg": 0.0,
          "centerline": []
        },
        "appearance": {
          "color": "#f5f5f0",
          "opacity": 0.96,
          "roughness": 0.68,
          "metalness": 0.04
        }
      },
      {
        "id": "host-pot",
        "label_zh": "花盆（宿主）",
        "label_en": "Plant Pot (Host)",
        "role": "host",
        "bbox": [
          350,
          334,
          834,
          1000
        ],
        "polygon": [
          [
            350,
            334
          ],
          [
            834,
            334
          ],
          [
            834,
            1000
          ],
          [
            350,
            1000
          ]
        ],
        "confidence": 0.95,
        "material_guess": "釉面陶瓷，底部粗陶",
        "geometry": {
          "type": "tapered_cylinder",
          "axis": "vertical",
          "depth_ratio": 0.85,
          "corner_ratio": 0.04,
          "top_scale": 0.9,
          "bottom_scale": 1.0,
          "inner_ratio": 0.68,
          "thickness_ratio": 0.035,
          "z_order": -3,
          "rotation_deg": 0.0,
          "centerline": []
        },
        "appearance": {
          "color": "#e8ddd0",
          "opacity": 0.28,
          "roughness": 0.68,
          "metalness": 0.04
        }
      }
    ],
    "relations": [
      {
        "from_component_id": "controller-housing",
        "to_component_id": "pot-rim-clip",
        "type": "connected_to",
        "description": "控制器外壳与盆沿夹一体成型，夹持固定在花盆边缘"
      },
      {
        "from_component_id": "pot-rim-clip",
        "to_component_id": "host-pot",
        "type": "attached_to",
        "description": "盆沿夹夹持在花盆边缘外侧"
      },
      {
        "from_component_id": "water-tank",
        "to_component_id": "controller-housing",
        "type": "connected_to",
        "description": "透明水箱悬挂于控制器外壳下方，一体连接"
      },
      {
        "from_component_id": "tank-lid",
        "to_component_id": "water-tank",
        "type": "connected_to",
        "description": "水箱盖覆盖于透明水箱顶部"
      },
      {
        "from_component_id": "irrigation-tube-left",
        "to_component_id": "controller-housing",
        "type": "connected_to",
        "description": "左侧软管从控制器底部引出"
      },
      {
        "from_component_id": "irrigation-tube-right",
        "to_component_id": "controller-housing",
        "type": "connected_to",
        "description": "右侧软管从控制器底部引出"
      },
      {
        "from_component_id": "irrigation-tube-left",
        "to_component_id": "host-pot",
        "type": "inserted_into",
        "description": "左侧软管末端插入盆土中"
      },
      {
        "from_component_id": "irrigation-tube-right",
        "to_component_id": "host-pot",
        "type": "inserted_into",
        "description": "右侧软管末端插入盆土中"
      },
      {
        "from_component_id": "soil-probe",
        "to_component_id": "host-pot",
        "type": "inserted_into",
        "description": "土壤探头插入盆土中，靠近植物茎基部"
      },
      {
        "from_component_id": "status-button",
        "to_component_id": "controller-housing",
        "type": "connected_to",
        "description": "状态按钮嵌于控制器外壳顶部"
      }
    ],
    "camera": {
      "projection": "perspective",
      "yaw_deg": 15,
      "pitch_deg": -10,
      "roll_deg": 0,
      "fov_deg": 45
    },
    "uncertainties": [
      "水箱实际深度和背面轮廓被遮挡，假设为圆柱形",
      "土壤探头内部金属探针长度不可见，仅见白色外壳部分",
      "右侧软管远端路径被叶片部分遮挡，中心线为估计",
      "控制器内部泵体、电路板不可见，仅重建外壳",
      "盆沿夹背面与花盆接触面的精确曲率不可见",
      "状态按钮是否为机械按键或触摸式不可确定"
    ],
    "provenance": {
      "mode": "kimi_vlm",
      "provider": "kimi",
      "model": "kimi-k2.6",
      "operation": "photo-derived-structure.rebuild",
      "prompt_template_version": "photo-derived-structure-v1",
      "calls": [
        {
          "provider": "kimi",
          "model_version": "kimi-k2.6",
          "operation": "photo-derived-structure.rebuild",
          "prompt_template_version": "photo-derived-structure-v1",
          "request_hash": "9ec9552b47e1c20ad070ce3ecacaa10ba15dd39fecf14ef2e3dea600859c6310",
          "latency_ms": 54970,
          "status": "completed",
          "prompt_tokens": 1560,
          "completion_tokens": 2027,
          "total_tokens": 3587,
          "cached_tokens": 1213,
          "error_code": "",
          "error_message": "",
          "fallback_used": false
        }
      ]
    }
  },
  "presentation": {
    "default_view": "iso",
    "iso_view_deg": [
      -42,
      26
    ],
    "dimensions_visible_by_default": false,
    "hidden_groups_by_default": [
      "fov"
    ],
    "shell_opacity": 0.94,
    "photo_mode_available": true
  },
  "codex_geometry_refinement": {
    "schema_version": "codex-geometry-refinement/v1",
    "mode": "codex_agent_closed_loop",
    "source_photo_revision": "photo-v1",
    "iteration": 2,
    "status": "render_pending_visual_review",
    "scope": [
      "product-specific-form",
      "host-and-installation",
      "internal-assembly",
      "work-path"
    ],
    "truth_boundary": {
      "zh": "结构由单张 AI 概念图重建；可见比例受照片约束，隐藏结构与工程尺寸仍需实物或图纸确认。",
      "en": "Geometry is reconstructed 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"
  }
}
