DEV Community

Henry Ramirez
Henry Ramirez

Posted on Edited on

Respira / Breathe with Me: a breathing guide that follows your real pulse and breathing

Presage SmartSpectra SDK Challenge Submission

This is a submission for the Presage SmartSpectra SDK Challenge

What I Built

Respira β€” Breathe with Me in English β€” is a desktop breathing
companion that does something most breathing apps don't: it doesn't
impose a rhythm on you. It listens first.

Using the Presage SmartSpectra SDK, Respira measures your real pulse
and breathing rate through your ordinary webcam β€” no wearables, no
accounts, nothing to strap on. For the first half minute it quietly
learns your natural breathing pace. Then its animated guide starts
at your pace and eases it down slowly, the way a good human guide
would. If your pulse climbs well above your own baseline, the guide
backs off instead of pushing. When the session ends, you get a short
summary on screen β€” and then it's gone. The app stores nothing.

I built it Spanish-first, with a full English interface one click
away, because the people I had in mind β€” older adults, caregivers,
anyone in my community who could use two calmer minutes in the middle
of the day β€” are mostly Spanish speakers, and wellness tools rarely
start with them. The app is also deliberately consent-first: it opens
on a plain-language consent screen, and the camera physically cannot
start until you read it and agree. Presage's SDK telemetry, which is
on by default in the SDK, is off by default in Respira and only
turns on if you explicitly opt in.

It's an Electron app using the official @smartspectra/node-sdk
(the documented desktop path), following the structure of Presage's
own electron-quickstart sample.

Respira is a wellness experience, not a medical device: it makes no
diagnosis or treatment claims of any kind, and its numbers are
estimates for relaxation and self-awareness, not clinical
measurements.

Demo

πŸŽ₯ Demo video: https://youtu.be/5hWPrvW5ayk

The video shows a full, real session: live pulse and breathing
readings changing as the person settles, the guide adapting to
their rhythm, and the final summary β€” which appears only on screen,
with its note that nothing was saved.

Note: the app also ships with a clearly labeled demo mode that uses
simulated data and spends no trial credits β€” that's what I used
while developing the interface. The video above is a real
measurement session; the app labels simulated data on screen at all
times, precisely so the two can never be confused.

Code

πŸ’» Repository: https://github.com/barahona06/respira-breathe-with-me

MIT-licensed. The README has step-by-step Windows install
instructions. In short:

npm install
copy .env.example .env   :: paste your free Presage API key, set RESPIRA_MODE=real
npm start
πŸ”₯ Jadwal & Hasil: henryramireztech/respira breathe with me a breathing guide that follows your real pulse and breathing bcg - Jadwal Siaran Langsung πŸ”₯ Jadwal & Hasil: henryramireztech/respira breathe with me a breathing guide that follows your real pulse and breathing bcg - Jadwal Siaran Langsung

Without a key (or without RESPIRA_MODE=real) the app runs in demo
mode with simulated data and spends zero credits β€” handy, because
the free trial's 100 credits (β‰ˆ50 live minutes) are a budget I
treated like money while building this: all interface development
happened in demo mode, and live mode is capped at 5 minutes per
session in code.

How It Responds to Human Signals

Respira requests two SmartSpectra metric bundles β€”
breathingMetrics (chest/abdomen waveforms + breathing rate) and
cardioMetrics (pulse rate, arterial pressure trace, HRV) β€” and
works with the live values on every metrics event:

  • Breathing rate (30-second average) drives the guide. During a ~30 s calibration window the app takes the median of confident samples to find your resting pace. The guide starts there and ramps down by 0.5 breaths/min every 20 seconds toward a floor of 5.5 breaths/min β€” a pace most people find settling β€” never faster than you can follow.
  • Pulse rate (12-second average) is the guide's conscience. The app records your pulse baseline during calibration; if your pulse later rises more than ~12 bpm above that baseline, the guide stops easing down and softens β€” the pace was too much, so it yields. A soft ring around the guide circle also breathes with your live arterial pressure waveform, so you can see your own heartbeat in the interface.
  • HRV (RMSSD), available after the SDK's 60-second window, is shown live and averaged into the end-of-session summary β€” shown as information, never interpreted, never scored as "good" or "bad."
  • Adherence: the summary quietly reports what share of the guided time your breathing stayed near the target pace.
  • The SDK's own validation hints (lighting, position, movement) are surfaced in the interface, so the person can fix the setup instead of wondering why the numbers stalled.
  • Graceful fallback: if an API key isn't provisioned for cardio metrics, start() fails in a recognizable way; the app retries once with the breathing bundle only and tells the user, on screen, that the session is breathing-only. The experience still works β€” the guide just listens to one signal instead of two.

The summary at the end (duration, average/min/max pulse, breathing
at the start vs. the end, average RMSSD, adherence) exists only on
that screen. Closing the app erases it.

Prize Categories

I'm entering Best Thoughtful Real-World Use, and the overall
Best Overall Human-Sensing Experience.

The real-world need is simple and common: people who are wound up,
anxious in an ordinary everyday way, caring for someone, or sitting
with someone who is β€” and who have no wearable, no subscription, and
no interest in another account. A two-to-five-minute guided pause
that adapts to their body instead of a fixed metronome is
something a community volunteer, a caregiver, or a family member can
actually offer another person on an ordinary laptop.

Design choices made for those people, specifically:

  • Spanish-first, fully bilingual (ES/EN selector, Spanish by default) for the U.S. Hispanic and Latin American audience that English-first wellness tools serve last.
  • Consent as the front door, in plain language, before the camera can start β€” written to be read aloud to someone else if needed.
  • No accounts, no storage, no cloud. A session leaves no trace, which matters when the laptop is shared or borrowed.
  • Telemetry off unless you opt in, and the app says exactly what the SDK's telemetry is (see below) instead of hiding it in a policy link.
  • Short, capped sessions (2/3/5 minutes) that respect both the person's time and the trial-credit budget.
  • Large type, calm colors, and one clear action per screen β€” meant to be usable by someone who is not comfortable with technology.

Consent and Data Handling

This section describes exactly what the shipped app does.

Consent before capture. The app opens on a dedicated consent
screen (Spanish by default, English available). The camera is never
accessed before the user reads it and explicitly agrees; capture
happens only during a session the user starts, never in the
background, and there is no monitoring of anyone but the person who
consented and pressed "Begin."

Video. The webcam video is processed on the user's own
computer
by the SmartSpectra native engine to estimate pulse and
breathing. The app never records, saves, screenshots, or uploads
video anywhere.

Measured values. Pulse, breathing, waveforms and HRV are shown
live and held only in memory to draw the charts and compute the
end-of-session summary. When the session ends or the app closes,
they are discarded. The app writes no health data to disk, has
no database, no accounts, and no cloud sync. Storage: none.
Sharing: none. Retention: none. Deletion: automatic and total
β€”
there is nothing to delete because nothing was kept.

What does leave the device β€” two things, both to Presage only:

  1. Authentication. The SDK validates the user's API key with Presage's servers over its authenticated, TLS-pinned channel. That traffic contains no video and no measured values.
  2. SDK telemetry β€” OFF by default in Respira. Presage's SDK can send session summaries (SDK version, device model/OS, session shape, performance and validation counts, a timestamp) and, when a device-readiness check runs, a fuller diagnostic report that can include device details and free-text diagnostics. As documented on Presage's own Telemetry & Privacy page, this telemetry never includes raw video frames or measured physiological values; it is authenticated with the API key, so Presage can associate it with the developer account (it is not anonymous); and Presage currently configures no automatic expiration for those diagnostic reports, which are kept under Presage's own policies. Respira sets enableTelemetry: false unless the user checks the opt-in box on the consent screen. In my own demo and testing, telemetry stayed off.

Optional AI services. None. The app does not use the SDK's
optional LLM Insights (requestInsight) or any other AI service,
and no session data is sent to any AI provider.

The one thing the app remembers between runs is the language
choice (ES/EN), stored locally by Electron. No health data, ever.

Safety framing. Respira is a wellness experience, not a medical
device. It does not diagnose, treat, or prevent any condition; it
supports no medical decision-making; and it performs no covert or
non-consensual monitoring β€” consent is its first screen. The
in-app text says plainly: if you feel unwell, stop the session and
seek professional help.

Agent Session

Built with an AI coding assistant, in the open.


Thanks for reading β€” and if you try it, I hope those three minutes
are good ones.

β€” TecnologΓ­a Geek (tecnologiageek.com)

Top comments (0)