v2 Saphere Scan — une balise de script, dix langues
Les signes vitaux, par une caméra.
Trente secondes de vidéo. Ni brassard, ni ceinture, ni bracelet. Saphere lit le pouls dans un visage et le convertit en données physiologiques exploitables — sur le matériel que vos utilisateurs ont déjà en main.
Web, iOS, Android et applications hybrides. Intégrable dans une WebView.

Ce qui est rendu
Dix variables pour une seule vidéo
Une capture unique de trente secondes livre des indicateurs cardiaques, respiratoires et morphologiques, chacun accompagné du signal dont il est tiré.
bpm
cpm
ms
échelle
mmHg
échelle
années
kg/m²
kg/m²
0–100
Les variables qu’un client reçoit sont fixées sur son compte. Certaines demandent la taille, le poids, l’âge et le sexe de l’utilisateur.
Le principe
La photopléthysmographie à distance, en quatre temps
Le sang absorbe la lumière. À chaque battement, le volume sous la peau change, et la couleur réfléchie avec lui — d’une quantité bien trop faible pour l’œil, mais non pour un capteur.
Une caméra ordinaire filme le visage
La caméra frontale d’un téléphone, la webcam d’un ordinateur portable. Rien à brancher, rien à porter, rien à calibrer.
La lumière réfléchie par la peau est isolée
Un modèle de repères faciaux suit les régions où la peau est fine et peu mobile, et le widget les échantillonne image par image — jamais l’image entière.
Le signal du pouls est reconstruit
Ces variations minuscules, accumulées sur trente secondes, forment une onde dont le rythme est le cycle cardiaque.
Les variables se déduisent du signal
Fréquence, variabilité, respiration et indicateurs morphologiques sont calculés à partir de l’onde. Chacun revient soit avec sa valeur, soit avec la raison qui a empêché de la produire.
Pourquoi Saphere
Conçu pour être intégré, pas contemplé
Un script, un appel
SaphereScan.create(root, options) puis bootstrap(). Le widget possède son conteneur, sa caméra et son shadow DOM — il ne peut pas répandre ses styles dans votre page, et votre page ne peut pas casser sa mise en page.
Le vôtre, jusqu'à la formulation
Chaque écran, chaque texte, chaque couleur est une option. Changez un libellé, remplacez une palette, retirez un écran du parcours — sans rien dupliquer.
Dix langues, deux sens de lecture
Arabe, allemand, anglais, espagnol, français, italien, polonais, portugais, portugais du Brésil et turc. La mise en page se retourne pour l’arabe, de la barre d’outils aux chevrons.
Vos secrets restent chez vous
Le widget ne détient jamais votre clé d’API. Il demande à votre point d’accès un jeton court et à usage unique au début de chaque mesure.
Franc sur la caméra
Cinq écrans de refus distincts — refusée, absente, occupée, non prise en charge, interrompue — chacun rapporté à votre code avec un code stable, non une panne générique.
Quarante événements de cycle de vie
Chaque écran atteint, chaque état de la caméra, chaque à-coup du transport et chaque phase de la mesure sont rapportés à votre gestionnaire. Des hooks vous laissent refuser une transition.
Intégration
De rien à une mesure qui tourne
Le widget est un module ES unique servi par le CDN. Il se monte dans un div qui vous appartient et prend la suite.
<div id="scan" style="height: 100dvh"></div>
<script type="module">
// L'hôte décide de l'environnement : cdn.test.saphere.ai atteint le Test,
// et le widget le suit jusqu'à l'api de mesure.
import SaphereScan from "https://cdn.saphere.ai/saphere-scan/v2/main.js"
const instance = SaphereScan.create("#scan", {
lang: "fr",
// Le widget ne détient jamais votre clé d'API : il demande à votre
// serveur un jeton court au début de chaque mesure.
proxy: {
retrieveAccessToken: {
strategy: "delegate",
url: "/api/saphere-token"
}
},
onEvent: event => {
if (event.type === "measure:result")
console.log(event.result.variables)
}
})
await instance.bootstrap()
</script>
Tourne là où sont vos utilisateurs
Un navigateur, une WebView React Native, une coquille Ionic/Capacitor. Le widget ne demande qu’une caméra et un conteneur.
Rien à héberger
Le paquet, le modèle de détection du visage et les ressources sont tous servis par le CDN. Vous livrez une balise de script.
Échoue à découvert
Une caméra refusée, un jeton que votre point d’accès n’a pas voulu émettre, un réseau qui tombe : chacun ressort en événement nommé, pour que votre support puisse lire ce qui s’est passé.
À qui cela s'adresse
Partout où il faut mesurer un corps sans le toucher
Assurance
Souscription et programmes de prévention, sans passage en cabinet.
Télémédecine
Des constantes recueillies avant la consultation, depuis l'appareil du patient.
Santé au travail
Des points volontaires qui ne demandent aucun matériel à distribuer.
Sport et bien-être
Récupération et stress dans une application que l'on ouvre déjà.
Recherche clinique
Un recueil longitudinal à une échelle que le matériel n'atteint pas.
Santé connectée
Une couche de constantes pour les produits qui ont une caméra et pas de capteur.
Bornes en libre-service
Pharmacies et sites d'entreprise, sans contact par construction.
Automobile et industrie
Vigilance du conducteur ou de l'opérateur, depuis une caméra déjà posée.
Lire la documentation, ou nous parler
La prise en main mène une mesure complète de bout en bout en une dizaine de minutes, sur l’environnement de Test.