Conditions for a good measurement

What the camera has to see for a pulse to be readable, how the widget guides a person into position, and what a recorded file must satisfy.

Saphere reads a change of colour far too small for the eye. The conditions that make it readable are not preferences. Below them there is no signal to read, and no amount of computing brings one back.

This page lists the four conditions, and says what to do when they are not met.

The four conditions

Light must fall on the face. Daylight or room light, reasonably even, coming from the front. The usual mistake is the opposite arrangement: someone sitting with a bright window behind them appears as a dark shape, and a dark shape carries no signal. Harsh direct light and near-darkness fail for the same reason, at the two other ends of the range.

The person must stay still. Movement changes how much light reaches the skin, far more than a heartbeat does, and hides it. Breathing and small adjustments are fine. Turning, talking and walking are not.

The face must be uncovered. The measurement reads skin. Scarves, high collars, hats pulled down and masks remove exactly the areas it reads.

The face must be in the frame, at the right distance, with the upper chest visible. Roughly 40 to 60 cm from the camera, the camera at about face height, the person upright and facing it. The upper chest matters for the breathing rate, which is read from its movement.

Design for these conditions, do not merely state them

The widget’s first screens exist to explain these four points before the camera opens, in ten languages. If you replace those screens with your own wording, keep what they say. Once the camera is open, it also guides the person into position: see guiding the person into position.

When you send a recorded file

The API accepts a file you recorded yourself. Everything above still applies, with one difference that matters: nobody is guiding the person. Whatever framing was used is the framing you get, and a file that misses the conditions produces a measurement that fails at the end rather than a correction at the beginning.

RequirementValue
DurationAt least 25 seconds; only the first 30 are used
SizeUp to 100 MB
FramingUpright, facing the camera, camera at face height, upper chest visible
Distance40 to 60 cm
LightEven, neither harsh nor dim
MovementAs little as possible for the whole recording

The accepted file formats are listed on the measurements page.

When a measurement disappoints

A finished measurement carries its own explanation: a variable that could not be computed comes back with an error code naming the reason, rather than with a silent absence. That is the first place to look.