Sometimes you do not need a ten minute meditation. You need one minute where your body tells you it is okay to slow down. Stillpoint is that minute.
It is a small web app built for the Presage SmartSpectra SDK Challenge. You sit in front of your camera for 60 seconds, and it grows a garden from what your body is already doing: your breathing moves an orb, your pulse sets the glow, a smile adds sunlight, and talking or moving dims it. At the end you get a Reset Score, measured only against your own first ten seconds, not against anyone else.
Watch it
The video is recorded in labelled demo mode with simulated signals, so it shows the flow rather than live vitals. I will say why below, because honesty matters more than a perfect demo.
How it works
Stillpoint is a Node server plus a page in your browser. The server runs the SmartSpectra SDK and streams signals to the page over a WebSocket.
- The first ten seconds set your baseline: your breathing rate and pulse at rest.
- Your breathing trace drives a glowing orb that rises and falls with each breath.
- Your pulse sets the warmth of the light. A slower pulse means a calmer glow.
- A smile adds sunlight and petals. Talking or moving dims the garden, because a reset works better in stillness.
- Your score compares the end of your minute with your own start. Breathing slower than your baseline, a steadier pulse, and a calm face all count.
The whole thing runs locally. The camera feed never leaves your machine, no video is stored, and your numbers are only saved if you press Save.
Try it yourself
The code is public: https://github.com/tydavid5/stillpoint
git clone https://github.com/tydavid5/stillpoint.git
cd stillpoint
npm install
You need a SmartSpectra API key, which you get by registering at https://physiology.presagetech.com/auth/register. Put it in a .env file:
SMARTSPECTRA_API_KEY=your-key-here
Then start it:
npm start
Open http://127.0.0.1:8080, give the camera permission, and press Start.
No camera or no key? There is a labelled demo mode that runs the same flow with simulated signals:
npm run fake
You can also test it headlessly with a recorded face video:
npm start -- --file path/to/video.mp4
Note: run it with npm start, not with node server.js directly, because only npm start loads the .env file. Running it the other way silently falls back to demo mode.
An honest note about the demo
The video above is in demo mode, and here is why. I registered an account, and the key from the dashboard is rejected by Presage with a 403 authentication error, twice, with two different keys. I checked the account through Presage's own MCP server: the account is on the free tier with 100 credits left, and the active key on the account matches the key I saved exactly. So the key is not wrong and the account is not out of credits, and the cause of the rejection is still unexplained.
The app itself is built for live signals, and the demo mode exists so anyone can try the flow without a camera or a key. If the key problem gets fixed before the deadline, I will re-record with live vitals and update this post.
Consent and data handling
- The camera is only used while you press Start, and only on your own machine.
- No video is recorded, stored, or sent anywhere. The SDK processes frames in memory and the app only keeps numbers: breathing rate, pulse, a stress index, and smile averages.
- Telemetry is off.
- Your numbers are saved only if you press Save after a session. Nothing is saved automatically.
- The metrics are for general wellness and information only. Stillpoint does not diagnose, treat, or monitor any condition, and it never watches anyone without them knowing.
Why I built it
Most wellness tools ask for your attention for ten minutes and then sell you a subscription. A reset should be as short as the moment you need it, and it should be measured by your own body, not by a leaderboard. One minute, one garden, one score that only means something to you.
Built with the Presage SmartSpectra SDK for the Presage SmartSpectra SDK Challenge. Repo: https://github.com/tydavid5/stillpoint
Top comments (0)