{
  "runId": "lujssp9m",
  "createdAt": "2026-09-03T23:47:43.589Z",
  "appVersion": "0.1.0",
  "models": [
    {
      "id": "sam3",
      "name": "SAM 3.1 (exemplar + concept)",
      "access": "simulated",
      "licence": "SAM License (commercial use permitted, carve-outs + patent clause)"
    }
  ],
  "tiling": {
    "tileSize": 512,
    "overlap": 0.2,
    "mergeIouThreshold": 0.3
  },
  "prefilter": true,
  "imageProvenance": [
    {
      "id": "synth-hero-1mm-scattered",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 1
    },
    {
      "id": "synth-ladder-1-scattered",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 1
    },
    {
      "id": "synth-ladder-4-scattered",
      "source": "synthetic",
      "licence": "CC0 (generated)",
      "gsdMmPerPx": 4
    }
  ],
  "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 (1 of 1): SAM 3.1 (exemplar + concept) (sam3). 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) (3 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.",
    "Excess Green prefilter skipped 16 of 33 tiles. A skipped tile is scored as containing no detections, so any plant inside one counts as a miss — recall is reported against the whole image, never against the tiles that were sent."
  ],
  "prompt": "tiny flower . small plant"
}
