{
  "site_id": "shengmuglass",
  "camera_id": "tempering_load_cam_01",
  "description": "Phase A1 load-side zones v2, traced on real frame f_01951 (empty table) + f_00031 (loaded). Glass lands on the RED rollers (near/bottom) and advances UP toward the BEIGE rollers then the furnace. v1 ROI was shifted up-left and enclosed the furnace hood + white machine, which supplied ~97% of the static edge energy. Polygons normalized [x,y] on 1920x1080.",
  "image_size_hint": [1920, 1080],
  "zones": [
    {
      "zone_id": "roller_table_work",
      "description": "Roller table plus the right/bottom perimeter strip where loaders stand.",
      "polygon_norm": [
        [0.140, 0.338],
        [0.318, 0.342],
        [0.470, 0.500],
        [0.470, 0.720],
        [0.170, 0.762],
        [0.128, 0.420]
      ],
      "event_types": ["activity_started", "activity_ended"]
    },
    {
      "zone_id": "glass_source",
      "description": "A-frame carts holding raw glass; the pick-up end of a load cycle.",
      "polygon_norm": [
        [0.450, 0.420],
        [0.655, 0.398],
        [0.685, 0.680],
        [0.455, 0.725]
      ],
      "event_types": ["activity_started", "activity_ended"]
    },
    {
      "zone_id": "control_desk",
      "polygon_norm": [
        [0.00, 0.55],
        [0.12, 0.55],
        [0.14, 0.88],
        [0.00, 0.92]
      ],
      "event_types": ["activity_started", "activity_ended"]
    }
  ],
  "load_station": {
    "description": "Scoring boundary. People outside this are not part of the load station (the unload operator and passers-by are visible in this camera but belong to another station).",
    "polygon_norm": [
      [0.095, 0.320],
      [0.700, 0.380],
      [0.720, 0.800],
      [0.100, 0.850]
    ]
  },
  "roller_glass_roi": {
    "description": "Roller surface only, traced on the empty-table frame. Hexagon follows the fisheye-curved right rail.",
    "polygon_norm": [
      [0.156, 0.350],
      [0.302, 0.354],
      [0.385, 0.491],
      [0.372, 0.611],
      [0.180, 0.630],
      [0.152, 0.426]
    ],
    "near_edge_norm": [[0.180, 0.630], [0.372, 0.611]],
    "far_edge_norm": [[0.156, 0.350], [0.302, 0.354]],
    "advance_direction": "near_to_far (bottom -> top in image, toward furnace)"
  },
  "event_rules": {
    "present_confirm_frames": 1,
    "dwell_frames": 3,
    "leave_miss_frames": 2,
    "cycle_enter_frac": 0.60,
    "cycle_exit_frac": 0.30,
    "cycle_min_occupy_sec": 6,
    "cycle_min_gap_sec": 25,
    "cycle_min_advance_bands": 1.0,
    "idle_speed_thr_px_per_s": 12.0,
    "idle_window_sec": 5,
    "carry_min_dwell_sec": 6,
    "work_zones": ["roller_table_work", "control_desk", "glass_source"],
    "wait_min_sustain_sec": 20
  },
  "tracker_rules": {
    "stitch_max_gap_sec": 12,
    "stitch_max_speed_px_per_s": 260.0,
    "stitch_min_appearance_corr": 0.45,
    "n_bands": 8
  }
}
