How sightpad works
Sightpad pairs a Mac menu bar app with a free iPhone companion. The phone tracks where you're looking; the Mac moves (or hints) the cursor so pointing feels closer to thought than hand choreography.
Architecture
Mac: menu bar app (no Dock tile by default). It owns calibration, pointer behavior, activation, and Settings (permissions, pairing, license).
iPhone: companion app runs face / gaze estimation on-device. It does not send camera frames to sightpad or to our servers. Only compact gaze and pose samples cross the wire after you pair.
Getting gaze to the Mac
The usual path is Bluetooth Low Energy: you pair once with a six-digit code shown on the Mac. Gaze payloads stay on your local Bluetooth link.
For backup when BLE can't keep gaze writes flowing, enable Allow local Wi‑Fi Multipeer fallback under Settings → Backend on the Mac (off by default). That advertises Multipeer alongside BLE. The iPhone companion automatically starts Multipeer discovery after a short delay if BLE isn't ready yet. There is no separate Multipeer toggle in the companion UI today.
This is separate from Continuity Camera. The companion path does not use your iPhone as a Mac webcam for tracking.
Calibration
Monitors, distance, and posture all shift gaze mapping. From the menu bar use Full calibration… for the dense first-time grid (plus a head-pose phase). After that completes once, Quick recalibrate… runs a shorter grid for touch-ups. Coefficients are stored in SQLite on your Mac (per backend/display bucket); revisit anytime from Calibration in the menu or Settings.
Pointer behavior
While tracking, a gaze overlay dot shows predicted look location. In Settings → General, Move system cursor with gaze chooses whether the macOS pointer follows that dot or only the overlay moves. Snap to target (menu bar + Settings → Snap) nudges the pointer toward nearby accessibility-backed controls; the underlying snap controller is still being integrated, but the preference is wired from the menu.
Physical clicks still come from mouse, trackpad, switch, or other hardware you already use.
Permissions
- iPhone: camera / face tracking for gaze estimation.
- Mac: Bluetooth for the companion link; Accessibility control when you want the app to drive cursor behavior.
Companion pairing, optional research-oriented toggles (if exposed in your build), and cursor assistance each use explicit in-app confirmations so nothing vague runs in the background.
Privacy & telemetry
Tracking runs on-device on the phone; the Mac receives decoded gaze/pose updates, not raw video frames. Calibration artifacts stay local in app storage on the Mac.
Sightpad does not ship third-party analytics SDKs. The Mac bundle includes Apple's privacy manifest
(PrivacyInfo.xcprivacy). Expected network use today: Keyforge
license activation/validation over HTTPS (license key + device identifiers; see Settings → License),
and optional Sparkle update checks to the configured appcast URL, not user-tracking endpoints.
Website policy: privacy policy.
License
Paid tiers activate via Keyforge keys emailed after Stripe checkout; enter them under Settings → License. The iOS companion remains free.