Core signals
Vitals, presence and movement. Every insight Cymo offers is built on these three.
Every signal is a measurement
Signals live in each person's signals, keyed by name with the unit in it. Each one is a measurement with its own value, timestamp and confidence between 0 and 1, plus the model that produced it. A value Cymo can't measure right now is null, with a reason such as motion when it is known.
Vitals
Breathing rate, heart rate and heart rate variability, read from the movement of the chest: respiration_rate_per_min, heart_rate_bpm and rmssd_ms. HRV is only reported when Cymo can measure beat-to-beat intervals; it is never estimated from heart rate.
Vitals are consumer-grade and measured at rest: sitting, lying or sleeping. They are a wellness measurement, not a medical one.
Presence
Whether a room is occupied, how many people and pets are in it, and where each person is: occupied, person_count and pet_count on the room, and position (metres in the room's frame), zone_ids and posture on each person. Presence works when someone is perfectly still, which is where motion sensors fail.
Movement
How each person moves: speed_mps, activity such as walking or sitting up, and fall_state after a fall. Falls also arrive as fall.detected events.
Reading only what you need
/v1/vitals, /v1/presence and /v1/movement each return one signal group, selected by room_id, person_id or track_id, for example /v1/vitals?room_id=room_bedroom. To get several at once, read the room snapshot and pass include, for example include=vitals,presence.