Skip to content

Features 1-5 + Multiset VPS spatial integration (FieldMatrix.Ai demo)#53

Open
850Media wants to merge 1 commit intoIntent-Lab:mainfrom
850Media:feature/mentra-port-and-multiset-vps
Open

Features 1-5 + Multiset VPS spatial integration (FieldMatrix.Ai demo)#53
850Media wants to merge 1 commit intoIntent-Lab:mainfrom
850Media:feature/mentra-port-and-multiset-vps

Conversation

@850Media
Copy link
Copy Markdown

Summary

This branch builds VisionClaw out from the base DAT SDK sample into a full AI field-worker assistant (FieldMatrix.Ai demo), then adds scaffolded spatial positioning via Multiset VPS.

All 5 roadmap features shipped

# Feature Tools / Components
1 Contextual Memory & Job Awareness SessionContext, LocationService, Field Worker settings (worker/job/site/GPS injected into Gemini system prompt at session start)
2 Voice-Driven Field Reports ReportGenerator (PDFKit), generate_report tool, embedded photos, categorized notes (hazard/action/observation/measurement/reference/general), iOS share sheet
3 Live Knowledge Base Lookup WebSearchService (DuckDuckGo Instant Answer API), knowledge_lookup tool with OpenClaw fallback
4 Multi-Worker Collaboration Simultaneous Gemini + WebRTC mode, transcript broadcasting via signaling relay, CollaborativeBadge
5 Predictive Safety Alerts start_safety_monitor / stop_safety_monitor tools with periodic [SAFETY CHECK] prompt injection, auto-start setting, SafetyBadge

Plus supporting work: save_photo, save_note, start_inspection/stop_inspection, InspectionBadge, BrandingBanner (FieldMatrix.Ai branding), new app icon.

Multiset VPS spatial integration (scaffolded)

  • SpatialPose model + SpatialLocalizationService with provider pattern: Multiset → Google Geospatial (future) → GPS fallback
  • #if canImport(MultiSetSDK) guards — build works today with GPS-only; Multiset activates automatically when xcframework is dropped into Xcode
  • Settings section for Client ID / Client Secret / Map Code with SecureField storage
  • Pose attached to every saved note + photo
  • PDF reports show source + accuracy (±5 cm VPS / ±1 m GEO / ±5-10 m GPS) for each note
  • SpatialBadge on streaming overlay dynamically shows active provider

What's not in this PR

  • Secrets.swift (gitignored) with real credentials stays on local machines
  • MultiSetSDK.xcframework — must be downloaded from developer.multiset.ai and drag-dropped into Xcode per Multiset's install instructions (no SPM support)
  • Actual map scan — done out-of-band via Multiset's Mapper app, Map Code entered via Settings UI

Files Changed

20 files, +904 / -29

  • Created: Utilities/SessionContext.swift, Utilities/LocationService.swift, Utilities/ReportGenerator.swift, Utilities/WebSearchService.swift, Utilities/SpatialPose.swift, Utilities/SpatialLocalizationService.swift, new AppIcon.png
  • Extended: tool declarations + router, Gemini session VM, settings manager + view, stream views, WebRTC client/signaling/overlay, Info.plist (location + photo library permissions)
  • Replaced: old imagine_a_film_camera_in_the_style.jpeg icon with new FieldMatrix icon

Test plan

  • Fresh install; re-enter Gemini API key
  • Start streaming session → spatial badge shows "GPS" (blue)
  • Feature 1: Settings → Field Worker, confirm context injected into Gemini greeting
  • Feature 2: Save 2-3 notes via voice, 1-2 photos, then "generate my field report" → PDF has photos + categorized notes + GPS pose lines
  • Feature 3: "Look this up" on a visible product label → reference note saved
  • Feature 5: "Enable safety monitoring" → red SAFETY badge pulses, alerts fire when hazards visible
  • Build succeeds with no MultiSetSDK.xcframework present (verifies guards work)

🤖 Generated with Claude Code

Features 1-5 (contextual memory, voice-driven reports, knowledge lookup,
multi-worker collaboration, predictive safety alerts):
- SessionContext model: worker/job/site/GPS, notes, photos
- Gemini tool declarations: save_photo, save_note, generate_report,
  knowledge_lookup, start/stop_inspection, start/stop_safety_monitor
- ToolCallRouter with local handlers for each tool
- LocationService (CoreLocation + reverse geocoding)
- ReportGenerator (UIGraphicsPDFRenderer) with embedded photos and
  categorized notes (hazard/action/observation/measurement/reference)
- WebSearchService (DuckDuckGo Instant Answer API fallback)
- WebRTC collaboration: simultaneous Gemini+WebRTC mode, transcript
  broadcasting via signaling relay, CollaborativeBadge
- Inspection + Safety timers with badges and auto-start settings
- FieldMatrix.Ai branding on NonStream + Stream overlays, new app icon

Multiset VPS spatial integration:
- SpatialPose + SpatialLocalizationService with provider pattern
  (Multiset → Google Geospatial → GPS fallback)
- #if canImport(MultiSetSDK) guards so build works today with GPS-only;
  Multiset activates automatically once xcframework is dropped in
- Settings section for Client ID/Secret/Map Code with secure storage
- Pose attached to every saved note and photo; included in PDF reports
  with accuracy label (±5cm VPS / ±1m GEO / ±5-10m GPS)
- SpatialBadge on streaming overlay shows active source
- Secrets.swift scaffold (gitignored) holds Multiset credentials

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant