Pre-alpha · building in the open

Watch the public fleet.
Watch the record.

PlateWatch is open accountability infrastructure. On-device recognition documents publicly funded vehicles — police, fire, transit, public works, federal fleets — from your phone today (Hub folder drops and reviewed snapshot feeds extend the source pipeline); the plan is for cited public records (rosters, FOIA releases, Brady lists, court dockets) to connect those vehicles to the officials who run them — the Hub can draft fleet FOIA requests today; automated person-record discovery remains planned. Public officials are not shielded from public scrutiny. Private citizens are out of scope by design.

Where the project stands

Updated October 14, 2026. The iOS review and visual handoff separates shipped UI from pilot blockers. Historical recognition results come from the October 13 photo corpus; this UI pass does not remeasure accuracy.

AreaStateNotes
Recognition (real photos)100% precisionOn 62 licensed US photos: 0 civilian false positives, 57% automatic recall on Mac and 59% on iPhone in the initial baseline; later configurations are documented in the evaluation report. Recall is the main thing still improving. Method & limits
Core packagestestedPackage and server checks run in CI. CaptureKit: 16 tests passed in the October 14 local pass. The badge below links the current remote result.
iOS apppre-alphaInherited photo-import recognition; new observation detail, coarse-summary sharing, paused-retry recovery, fleet watchlist validation and alert controls, local cleanup, and painted icon. Simulator CloudKit startup trap fixed. Live camera still needs handheld field testing.
Reference servertested in CIIngest, moderation, exports, k-anonymous heatmap, agency report. Not yet deployed publicly.
CloudKit backendschema readyModerated two-tier design and schema written; waiting on the one-time import and production deploy.
CoreML modelsoptional detectorsSHA-pinned model registry and archive installation are implemented; availability and evaluation depend on the installed model. Built-in Vision remains the fallback. Model registry
macOS Hubdesktop consoleSnapshot-feed background analysis, Open in Live overlays, favorites and reversible blocks, retained feed-browser state, state-sorted feed list, evidence-image thumbnails on recorded vehicles (redacted crops, click to enlarge), Records & FOIA (fleet FOIA builder + cited public-records directory), moderator audit refresh and offline help. HLS feeds run continuous background analysis; RTSP awaits the VLCKit fallback. Verification & next steps
watchOS · CarPlaypartialTargets build in CI; physical watch alerts and CarPlay remain separate verification gates.
macOS · PlateWatch Hub

One console for reviewed camera feeds.

Browse, search and sort cameras. Pin favorites, block unavailable views, and open a selected snapshot in Live to inspect its analysis overlays. Search, filters, sort, selection and scroll remain in place when you switch sections. Records & FOIA drafts fleet requests for you to review and save. Background work continues outside Live. Frames stay in memory; fleet observations pass the same privacy gates.

Illustrated Hub workflow: camera catalogue, terms and robots checks, on-device analysis, fleet gate and review outbox
Illustrated workflow, not an app screenshot. Web snapshots refresh at their source interval; HLS feeds are analyzed continuously; RTSP waits for the VLCKit fallback.
Illustrated mockup of the Review pane: evidence-image thumbnails beside queued fleet sightings, click to enlarge
Review pane mockup — every recorded fleet vehicle can carry a redacted evidence crop (≤40 KB JPEG + SHA-256); the backend stores the hash, never image bytes. Screenshot captures with synthetic data are a documented follow-up.

New imports: Oregon TripCheck, Utah UDOT GIS and New Mexico NMRoads. Existing imports: Austin, Caltrans, Washington and Iowa. Imports add metadata; new hosts remain inactive until terms review. The feed list sorts by US state (then name) with state badges. Arizona is the next expansion target: AZ511 robots verified, municipal camera discovery in progress.

A clearer review workflow

Actual simulator screenshots of the October 14 build. The amber banner identifies synthetic, local preview data: these screens demonstrate the UI, not recognition accuracy, camera behavior or backend publication.

PlateWatch Sightings outbox with two synthetic fleet observations, including paused delivery retries
Review the queue
Queued observation detail with coarse area, evidence score and summary sharing
Inspect the observation
Local fleet watchlist with validation, public-fleet attestation and notification controls
Watch known fleet plates
About PlateWatch with on-device analysis information and local queue and watchlist cleanup
Understand and control your data

Current GitHub CI status · Verification, limitations and next steps

How it works

Everything sensitive happens on the device. Only structured, human-reviewable detections that clear a fleet-confidence gate ever sync.

Camera→Vehicle & plate detect→OCR + multi-frame fusion→Fleet-confidence gate→Outbox→CloudKit / REST mirror→Public dataset
ON-DEVICE

Apple Neural Engine

Vision text recognition with optional installed CoreML detectors. Analysis stays on the device.

GATED

Fleet-only ingestion

A RedactionGate drops private-plate reads before upload; exact location is withheld until a vehicle is fleet-confirmed.

SOURCED

Provenance on everything

Enrichment — agency, unit, cost — carries a citation to a public record. No citation, no enrichment.

OPEN

Portable by design

CloudKit for Apple devices, a Vapor REST reference server for everyone else, AGPL-3.0 throughout.

Non-negotiable principles

Encoded in the data layer, not just the docs.

Watches the powerful, never the privatePublic officials in their public capacity are fair subject matter — recording them on duty is protected in many US jurisdictions, though the rule varies by circuit and state. Private individuals, their plates and their homes are out of scope absolutely.
Public records onlyFleet registries, FOIA releases, rosters and auction listings. Never DMV or data-broker data.
On-device firstNo telemetry, analytics SDKs, frame uploads or third-party trackers.
Evidence qualityEvery sighting is content-hashed and timestamped, with its sources.

Roadmap

Current focus is M-Alpha: make the core loop work end to end. Full list in the roadmap.

NOW · M-ALPHA

Make it work

  • Deploy CloudKit schema
  • Moderator publish tool
  • Live-camera field test
  • Fleet-specific classifier (recall)
  • Finish field and accessibility audits
NEXT · M2

Identification depth

  • Plate detector + OCR models
  • Make/model/colour
  • Plate-design classifier
  • Vehicle re-ID
THEN · M4

Network & UX

  • Real heatmap & timeline
  • Agency report card in-app
  • Watchlist push to watchOS
  • CarPlay passive mode
NEXT · M6/M7

Sources & records

  • iPhone-as-webcam + webcams (Hub)
  • Validated continuous public-video feeds
  • Official rosters, photos, Brady lists
  • Cited cross-references
  • On-device identification of officials with cited accountability records — counsel-gated per jurisdiction, never auto-publishing (amended Rule 6)
LATER · M5

Beyond Apple

  • Public REST mirror
  • Raspberry Pi edge agent
  • Android client
  • Web explorer

Build it

Swift 6 · Xcode 27 · macOS 27 SDK. Contributions welcome — start with the QA report.

git clone https://github.com/noktirnal42/PlateWatch.git && cd PlateWatch
swift test --package-path packages/PlateKit
swift test --package-path server
(cd apps/ios && xcodegen) && open apps/ios/PlateWatch.xcodeproj