Offline AI field-documentation copilot: photograph, dictate, and auto-generate structured inspection reports, receipts, and job records at zero signal, syncing when coverage returns.
Offline AI field-documentation copilot: photograph, dictate, and auto-generate structured inspection reports, receipts, and job records at zero signal, syncing when coverage returns.
- AFM 3 image input + OCRTool + BarcodeReaderTool read equipment tags, serial plates, meter values, and receipts from photos
- @Generable fills the user's report schema (defect, location, severity, recommended action) deterministically
- whisper.cpp transcribes walk-through voice notes offline
- Spotlight local RAG answers 'what did I flag at this property last visit?' across past reports and scanned documents.
- Android parity via Gemma 4 E2B structured output in the AICore Developer Preview. Essential: 30% of frontline workers explicitly expect offline-capable apps — every cloud copilot returns a spinner exactly when the work happens, and unlimited daily extraction is free on-device where cloud-vision rivals bleed margin.
Mobile document scanning + local LLM structured extraction has 'no polished commercial player' (only OSS hobby apps), and field ops/OCR is cited as the strongest near-term on-device use case; @Generable, OCRTool, and local RAG all shipped as free system primitives at WWDC26 — assembly cost just collapsed for whoever moves first.
- iOS (Swift/SwiftUI, iOS 26 floor with iOS 27 fast-follow): VisionKit DataScannerViewController + Vision RecognizeDocumentsRequest as the universal OCR/barcode path (works on all recent iPhones)
- FoundationModels @Generable guided generation against the user's report schema, using AFM 3 Core (text) everywhere and AFM 3 Core Advanced + OCRTool/BarcodeReaderTool only on capable devices
- SpeechAnalyzer/SpeechTranscriber for offline dictation with whisper.cpp (large-v3-turbo, Metal) as fallback on older devices; NLContextualEmbedding + GRDB/SQLite with sqlite-vec for local RAG over past reports
- BGTaskScheduler sync queue with an optional cloud polish pass (Claude Haiku-class or Gemini Flash via Foundation Models' new third-party adapter) on reconnect
- PDFKit for report output. Android (Kotlin/Jetpack Compose): ML Kit Document Scanner + Text Recognition v2 for OCR (runs on ALL devices, no AICore dependency — this is the load-bearing choice)
- ML Kit GenAI Prompt API with structured output on Gemini Nano-capable flagships; MediaPipe LLM Inference API (LiteRT) with bundled Gemma 3n E2B + constrained decoding as the mid-tier fallback, accepting the ~2-3GB model footprint, and cloud-deferred extraction on low-end devices;
- whisper.cpp (or ONNX Runtime Mobile Whisper) for ASR
- Room + sqlite-vec for local RAG; WorkManager sync queue. Shared: schema-first report templates (JSON Schema source of truth compiled to @Generable structs and Kotlin data classes), offline-first store with CRDT-ish merge on sync, and CSV/PDF/Spectora-importable export formats.