Research preview · iOS first

Know the lot.Keep the context.

FreshFish is building an on-device registry for fish markets. One visually coherent tray or plate gets one local ID—even when the camera sees it again and again.

Local session Frame 038
One coherent tray tracked as one lot Three fish outlines sit within a single dashed lot rectangle labelled lot A17. COHERENT TRAY / LOT A17

One lot, one IDRepresentative crop stays local until the lot is stable and cloud identification is eligible.

Repeated frames: filtered Cloud stream: none
On-device firstDetection, OCR, lot identity and deduplication happen locally.
One crop per lotNo live camera stream is sent to the backend.
Human reviewSpecies candidates do not unlock nutrition until confirmed.
Safety boundaryThe app does not determine whether a fish is safe or fresh.

Actual system flow

Frames become lots before images become requests.

The phone does the repeated-frame work. The backend receives an isolated representative only when the product rules allow it.

01 / Observe locally

Find coherent market lots

The camera groups nearby, visually similar fish while keeping separate trays apart. A tray can contain many fish and still have one session ID.

02 / Reuse locally

Recognise the same lot again

Screen geometry, appearance and session history prevent thousands of repeated frames from becoming thousands of records.

03 / Identify carefully

Send one representative crop

A qualified local detector may make one stable representative eligible for cloud screening. The result remains a candidate until a person confirms it.

What the app must not imply

A camera can screen. It cannot inspect the fish for you.

Freshness

An image may support future research, but freshness depends on handling, temperature, smell, texture and other evidence the camera cannot establish.

Mercury

Published mercury observations describe sampled populations and places. They are not a reading of the fish in front of the camera.

Species

Cloud output is an uncalibrated screening candidate. Scientific identity and enrichment stay locked until a reviewed catalogue match is confirmed.

Nutrition

Calories and omega-3 values come from source-versioned reference datasets for a confirmed species and preparation—not from visual estimation.

Privacy architecture

The scene stays on the phone.

Live frames, recorded-market videos and audio are not uploaded. Training evidence has a separate, explicit contribution control. Local cache erasure and cloud-account deletion are separate actions because they remove different data.

  • Live video streamNever sent
  • Recorded replayLocal only
  • Representative cropAt most one per lot
  • Training contributionOff by default
  • Advertising trackersNone