On-Device Processing
What the Circadify SDK handles locally before secure cloud processing.
The SDK performs camera capture and measurement payload preparation locally before sending a secure payload to Circadify. This page describes the privacy boundary and supported integration behavior without exposing low-level implementation details.
What Runs Locally
| Stage | Where it runs |
|---|---|
| Camera permission and capture | User device |
| Scan readiness and quality checks | User device |
| Measurement payload preparation | User device |
| Vital signs computation | Circadify cloud |
Raw camera video and raw frames are not uploaded by the SDK.
onDeviceOnly refers to this local capture and payload preparation path. It does not mean every vital sign result is computed fully on-device.
The SDK is the supported way to run local capture and payload preparation. Public docs do not describe the low-level payload format.
Quality Checks
The SDK evaluates scan conditions before and during measurement. Use callbacks such as onQualityState and onQualityWarning to guide users toward a better scan.
Common guidance includes:
- Improve lighting
- Hold still
- Center the face in the frame
- Keep the camera view unobstructed
Android Example
val sdk = CircadifySDK(
context = context,
config = CircadifyConfig(
apiKey = "ck_live_your_key_here",
callbacks = CircadifyCallbacks(
onProgress = { event -> updateProgress(event.percent, event.phase) },
onQualityWarning = { warning -> showHint(warning.message) },
onQualityState = { state -> updateQualityUi(state.messages) },
),
),
)kotlinFailure Behavior
The current Android SDK does not generate placeholder vital signs. If capture, upload, or cloud processing fails, measureVitals() throws CircadifyError. Your app should handle the error and prompt the user to retry when appropriate.
try {
val result = sdk.measureVitals(options)
showResult(result)
} catch (error: CircadifyError) {
if (error.isRetryable) {
showRetry(error.message)
} else {
showError(error.message)
}
}kotlinThe Python SDK runs this same on-device pipeline when capturing from a webcam, a video file, or your own frames — face detection, ROI extraction, and tensor preparation happen locally, and raw video never leaves the device. See Python SDK Methods.
Next Steps
- Android SDK Configuration - Configure callbacks and options
- Python SDK Methods - Capture and measure from Python
- Android SDK Error Handling - Handle SDK failures
- Data Flow - High-level measurement lifecycle
- Data Minimization - Privacy and retention details