{
  "runId": "seed-reference-bakeoff",
  "createdAt": "2026-09-01T12:00:00.000Z",
  "appVersion": "0.1.0",
  "models": [
    {
      "id": "rf-detr",
      "name": "RF-DETR Small/Medium (+SAHI)",
      "access": "simulated",
      "licence": "Apache-2.0"
    },
    {
      "id": "sam3",
      "name": "SAM 3.1 (exemplar + concept)",
      "access": "simulated",
      "licence": "SAM License (commercial use permitted, carve-outs + patent clause)"
    },
    {
      "id": "yolo26-p2",
      "name": "YOLO26-s/m + P2 head (1280–1536, SAHI)",
      "access": "simulated",
      "licence": "AGPL-3.0 (or paid Enterprise)"
    },
    {
      "id": "geco2",
      "name": "GeCo2",
      "access": "simulated",
      "licence": "Unverified — check repo LICENSE before shipping"
    },
    {
      "id": "countgd",
      "name": "CountGD",
      "access": "simulated",
      "licence": "MIT"
    },
    {
      "id": "t-rex2",
      "name": "T-Rex2 (interactive visual prompt)",
      "access": "simulated",
      "licence": "IDEA License 1.0 (API-gated)"
    },
    {
      "id": "gemini-flash",
      "name": "Gemini Flash (tiled)",
      "access": "simulated",
      "licence": "Closed commercial API"
    },
    {
      "id": "owlv2",
      "name": "OWLv2 (image-conditioned one-shot)",
      "access": "simulated",
      "licence": "Apache-2.0"
    }
  ],
  "tiling": {
    "tileSize": 512,
    "overlap": 0.2,
    "mergeIouThreshold": 0.3
  },
  "prefilter": false,
  "imageProvenance": [
    {
      "id": "synth-ladder-0p5-scattered",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 0.5
    },
    {
      "id": "synth-ladder-0p5-dense",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 0.5
    },
    {
      "id": "synth-ladder-1-scattered",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 1
    },
    {
      "id": "synth-ladder-1-dense",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 1
    },
    {
      "id": "synth-ladder-2-scattered",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 2
    },
    {
      "id": "synth-ladder-2-dense",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 2
    },
    {
      "id": "synth-ladder-4-scattered",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 4
    },
    {
      "id": "synth-ladder-4-dense",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 4
    },
    {
      "id": "synth-ladder-8-scattered",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 8
    },
    {
      "id": "synth-ladder-8-dense",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 8
    }
  ],
  "matchingRule": "greedy nearest-centroid within max(3px, 1.5 × median ground-truth box edge); highest-confidence first, one detection per plant; point annotations counted as 8px across; planted hard negatives are unmatchable, so a detection on one scores as a false positive (centre distance, never IoU: at 5–15 px per plant a one-pixel shift moves IoU more than the gap between two models)",
  "notes": [
    "SIMULATED ARMS IN THIS RUN (8 of 8): RF-DETR Small/Medium (+SAHI) (rf-detr), SAM 3.1 (exemplar + concept) (sam3), YOLO26-s/m + P2 head (1280–1536, SAHI) (yolo26-p2), GeCo2 (geco2), CountGD (countgd), T-Rex2 (interactive visual prompt) (t-rex2), Gemini Flash (tiled) (gemini-flash), OWLv2 (image-conditioned one-shot) (owlv2). Their numbers come from a simulated profile, not from live inference.",
    "SIMULATED means no inference ran on this imagery. A simulated arm draws detections from a deterministic, seeded error model whose recall/false-positive/jitter parameters are read off published benchmarks for that model (see docs/RESEARCH.md), applied to the known ground truth. It is a PRIOR describing what that model would plausibly do, not a measurement of what it did, and it must never be quoted as this model's accuracy on Central Otago imagery. Every simulated figure is replaced by a real one the moment that arm runs live.",
    "IMAGE LICENCES IN THIS RUN: CC0 (generated) (10 images).",
    "Attribution travels with the pixels: every CSV row and GeoJSON feature carries the licence and attribution of its source image, so a count lifted out of this app into a spreadsheet keeps its credit. CC BY requires that credit wherever the derived count is published; CC BY-SA additionally share-alikes anything derived from it.",
    "Georeference quality: pixel-space (demo) — approximate; real flights get EXIF/RTK georeferencing. Export coordinates are image pixels (x = column, y = row, top-left origin) in original full-resolution space. Nothing here is a map projection."
  ]
}
