⬇ Download the raw file (for your AI)
# Cape31 Boom-Cam Program — Plan for Alex's Review

**From:** Skippy (Nate's AI) · 2026-09-04
**Decision needed from:** Alex
**What this covers:** how we use your ~500 boom-mounted Cape31 photos to make
SailScan find and draw stripes better on the boat class many of our users sail.
Nothing in this plan runs until you approve it. Feed this to your AI, mark it
up, push back on anything.

---

## 1. Why your photos matter more than ordinary uploads

- **Fixed camera, one boat class, hundreds of frames** = the most consistent
  dataset we have ever had. Perfect for measuring real improvement.
- **The boom-cam viewpoint** (looking up the mainsail from the boom) is where
  the top stripe and faint upper stripes are most visible — exactly the
  stripes our models miss most today.
- **A good portion of users sail Cape31s** — improvement here lands on real
  customers immediately.

## 2. What we learned this week (context your AI should know)

1. **Line drawing is close to solved.** The measured best pipeline is:
   Deep20 finds each stripe, SAM3 redraws it zoomed-in. On our frozen
   332-photo test set it beats both models alone on accuracy (3.44 → 2.91 px
   median distance to the human line) and cleanliness (3.45 → 1.89 px stray).
   Your blind test (blind-v26-sam3.pages.dev) compares lines on that basis.
2. **Stripe FINDING is the real gap — and it traces back to the labels.**
   Your "missing the fourth stripe" screenshots exposed it: on multiple test
   photos the human label itself has fewer stripes than are visible. Models
   trained on those labels learned to skip faint stripes, and our label-based
   scores called that correct. Both V26 and Deep20 miss the same stripes;
   switching finders alone does not fix it.
3. **SAM3 sees the faint stripes** (it segments paint, it never learned our
   labels' omissions) but has no discipline — it also proposes battens,
   shrouds, and junk. Its output works as *candidates for a human*, not as
   product output. Real draft stripes sag (camber); battens and rigging are
   straight — a curvature filter separates them.
4. **The boom matters and is unmeasured.** Twist-vs-boom is a headline
   number; the boom detector misses often; our test set has boom labels on
   only 44 of 332 photos. Your photos literally look along the boom — they
   can carry boom labels too.

## 3. Proposed workflow (5 steps, in this order)

**Step 1 — Ingest, cloud to cloud.** Our GPU box pulls your Drive folder
directly into our photo store, tagged `cape31-boomcam`. Nothing enters the
labeling queue or training. Near-duplicate frames taken seconds apart are
KEPT (they are distinct moments of sail shape — you told us this, we agree).

**Step 2 — Freeze the test slice FIRST.** Before any model runs or any human
looks at results, a random ~60 photos are locked as the Cape31 test set.
Locked means: humans label them later as truth, but they NEVER enter
training. This is our honest before/after ruler.
**Design point on the 5-seconds-apart twins:** frames from the same burst
must land on the same side of the train/test line (whole bursts assigned
together). Otherwise the model "sees" a near-copy of a test photo in
training and the test lies to us.

**Step 3 — Baseline sweep (read-only).** Run V26, Deep20, and the
Deep20+SAM3 pipeline over all ~500 photos. Produces: stripe counts, a
side-by-side gallery for your eyes, and a worst-first ranking (photos where
SAM3 and the finder disagree most — our validated bad-result signal). No
labels needed for any of this. This is the "before" picture every later
improvement is judged against.

**Step 4 — Your correction pass, worst-first, with better seeds.** You
correct in the labeler as usual (drag dots, Save), with two changes:
- Photos come **worst-first** from the Step-3 ranking, so your first hour
  fixes the most wrong photos, not random ones.
- Seeds show the finder's lines **plus SAM3's candidates** (curvature-
  filtered). Reason: humans accept nearly-right pre-drawn lines — that
  anchoring is exactly how the faint-stripe omissions got into our labels.
  With SAM3 candidates on screen you see every plausible stripe, including
  faint ones, and delete junk instead of never being shown the truth.
- If you can also drag one boom line per mainsail photo, we finally get a
  boom-detection test set at scale.
- Batch size your call — we propose ~50 at a time so your queue never floods.

**Step 5 — Retrain and prove it.** Retrain the finder with the corrected
Cape31 labels mixed in. Report, before any promotion talk:
- accuracy on the locked Cape31 slice (the point of the exercise),
- accuracy on the frozen 332 (proving nothing regressed),
- the specific faint-stripe/top-stripe find-rate before vs after.
Promotion of any new model stays a human decision. Always.

## 4. Guardrails (non-negotiable, already our standing rules)

- The frozen Cape31 slice and the frozen 332 never train. Ever.
- Nothing enters your QC queue until you approve Step 4.
- Photos move cloud-to-cloud only.
- Every eval number names its test set and freeze date.
- No auto-promotion of models to production.

## 5. Questions for you (and your AI)

1. **Keepers:** are all ~500 usable, or should we drop classes of frames
   (spray on lens, night, flogging sail, no stripes visible)?
2. **Bursts:** confirm the 5-seconds-apart twins should be kept as training
   variety (we assign whole bursts to one side of the train/test line).
3. **Framing:** does the mount keep all stripes in frame across the set, or
   do some frames cut off the top?
4. **Boom labels:** willing to drag one boom line per mainsail photo during
   corrections? (Adds ~5 seconds/photo, unlocks the boom-detection work.)
5. **Volume:** how many photos are you realistically up for correcting?
   Worst-first means even ~100 corrected photos carry most of the value.
6. **More days coming?** You said "first day's images" — if more days are
   coming, we can hold Step 5 (training) until the set is bigger, while
   Steps 1–4 run now.

## 6. Cost and time

- Steps 1–3: a few hours of GPU time on the box we already run (~$1–2).
- Step 4: your time, worst-first to make it count.
- Step 5: one training run (~$10–30 GPU) + evaluation, repeatable as more
  days of photos arrive.

**If you approve Steps 1–3 as written, we start immediately and your gallery
link lands the same day.**