Skip to Content
ConceptsQuality scoring

On-device quality scoring

Quality runs before the network call so a bad capture never costs a round-trip.

Fingerprint

Each cropped fingertip is scored on-device. Scores run from 0–100; higher is better. The default threshold is 40.

Per-step policy controls how many fingers in a multi-finger capture must pass:

  • 'all' — every finger must pass. This is the default and the right choice for enrollment, where each position is recorded separately.
  • 'any' — at least one finger must pass. Use for 1:1 verification, where one clean print is enough.

Face

Two layers:

  • Landmark signals — pose, eye openness, face area — gate the hold-steady countdown. If the user is off-angle, blinking, or too far, the session keeps detecting and does not start the countdown.
  • Pixel signals — sharpness, brightness, contrast — re-score the captured frame after the countdown completes.

The faceQualityGate config controls how strictly these are enforced:

  • 'strict' (default) — both layers gate capture. Failed pixel scoring triggers a retry up to maxFaceQualityRetries.
  • 'guidance' — scores are emitted via 'face_quality' but do not block capture. Useful for instrumenting before tuning.
  • 'off' — disables pixel scoring entirely. Landmark gating still runs.

Tuning

Override thresholds via SladeIDConfig.fingerprintQualityThreshold and FaceCaptureConfig.faceQuality. See Tune capture quality for worked examples.

Used in