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.

The realtime measurement chainA video stream you own is pushed by your client into one session; the analysis server cuts it into frames, finds the face, reads the pulse, and three streams come back — the pulse waveform, the breathing baseline and the vitals.YOURSVideo streamcamera, media server, fileYOUR CLIENTOne session, one streamopens a WebTransport sessiondeclares content and formatpushes the container as it comesreads what comes backSAPHEREAnalysis servercuts the frames, 30 a second at mostfinds the face, reads the pulsecomputes the vitalshr — pulse waveformone point per measured framebr — breathing waveformin bursts, once the window allowsvariables — vitalsonce a second, when the window allowsThree return streams on one session —each says its kind once, at its start.
One session carries the whole measurement: a client pushes the container, the server cuts it into frames, finds the face and reads the pulse, and three streams come back — each saying its kind once, at its start. This is the session seen from the wire; in a browser, the library is that middle box and you never write it.

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 ScanRealtime Measure
What you geta widget with its own screensa measurement service you stream to
The videothe widget asks for the camerayou already hold it
The capturethirty seconds, then a resultcontinuous, for as long as you keep the session
The resultonce, at the enda waveform point per measured frame, the vitals every second
Consent and guidanceincluded, and customisableyours to write
The integrationone script taga 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.