Realtime
Stream a video source you already hold, and read the pulse waveform and the vitals as they are computed.
Realtime Measure is the continuous counterpart of Saphere Scan. Where the widget owns a container, walks a person through a thirty-second capture and hands you a result at the end, this one takes a video stream you already hold and measures it as it arrives — a pulse-waveform point per measured frame, and the vitals once a second, for as long as you keep the session open.
Two ways in
A browser library, when the video is in a page you control — a <video> element, or a MediaStream you already asked for. One ES module from the CDN does the whole browser side: it reads the frames, finds the face and the upper body, crops, compresses, opens the session, and hands you the waveforms and the vitals through one callback. Start at install; events is everything it reports back.
The wire protocol, when the video lives anywhere else: a media server, a mobile capture pipeline, a recorded file replayed for validation. You open one WebTransport session, declare in your address what the session will send, push your container as it comes, and read the three streams the server opens back. The wire protocol page carries the byte layout and a complete client.
Either way the credential is the same, and it is minted by your server: access tokens says how. The library asks you for one when a measurement starts; a client of your own puts it in the handshake URL itself.
Alpha
Realtime Measure is alpha. It is stable enough to build against, and we will tell you before anything moves — but expect it to move, and talk to us before you build: a server-to-server integration is not something you switch on alone.Which one to use
| Saphere Scan | Realtime Measure | |
|---|---|---|
| What you get | a widget with its own screens | a measurement service you stream to |
| The video | the widget asks for the camera | you already hold it |
| The capture | thirty seconds, then a result | continuous, for as long as you keep the session |
| The result | once, at the end | a waveform point per measured frame, the vitals every second |
| Consent and guidance | included, and customisable | yours to write |
| The integration | one script tag | a WebTransport client, written against the wire protocol |
The deciding question is rarely the measurement: it is whether you already own the video. A teleconsultation that is already carrying a face has a stream, and a journey around it — Realtime Measure joins that. A form on a website has neither, and Saphere Scan brings both.
There is a third case, and it is easy to miss: Saphere Scan can show a real-time measurement of its own. Its realtime mode opens the widget on a screen that measures continuously from the camera it asks for, with one button to a certified measurement. That is the one to take if you want vitals as they come and do not hold the video — this section is for when you do.
One ES module from the CDN, a video source, and one call.
EventsOne channel for what happens, two reads for what moves at capture rate.
Access tokensOne session, one token, minted by your server and consumed by the handshake.
Wire protocolFor integrations that stream from a server rather than a browser: the transport, the streams, and the byte layout.