Inspiration
Burnout among software engineers is an invisible epidemic. We noticed colleagues shipping code at midnight, hunched
over screens, never realising their body was already in crisis mode. Cortisol builds quietly. By the time you feel it,
it's too late. We wanted a tool that reads the signal before you do — passively, locally, without surveillance.
What it does
Corisol is a macOS menu bar app that monitors your stress in real time using only your webcam. It measures HRV (via
rPPG from facial blood flow), blink rate, posture, and eye fatigue — all on-device. When stress trends upward, a local
LLM (Ollama / llama3.2) generates a personalised nudge. A community panel shows your team's anonymous stress heatmap
so you can coordinate breaks together.
How we built it
Three-layer monorepo:
- Backend — Python 3.12 + FastAPI + MediaPipe face mesh. Extracts HRV/rPPG, EAR, PERCLOS, head pose, and facial action
units at 30 fps. Stress is a weighted composite of z-scored biometric deviations from a personal baseline.
- Frontend — React 19 + Framer Motion. Compact popup with an animated breathing blob that changes colour and speed
with your mental state.
- Desktop wrapper — Tauri 2.0 (Rust). Lives in the menu bar, pops up on click, hides smoothly on focus loss. Zero
network calls — the webview talks only to localhost.
Challenges we ran into
rPPG (extracting heart rate from skin colour changes in video) is notoriously noisy — we needed a 10-second buffer
before reliable HRV readings emerge. Coordinating the Rust close animation with a React fade-out required a custom
event (popover-will-close) so the frontend could animate before the window hid. Getting a truly transparent, rounded
Tauri window on macOS required macOSPrivateApi and fighting with activation policies.
Accomplishments that we're proud of
HRV from a laptop webcam with no wearable. A local LLM coach that never phones home. An app that feels native — no
Dock icon, no window chrome, just a calm presence in the corner of your screen.
What we learned
Physiological signals are deeply personal — a "good" HRV for one person is elevated for another, so personal baselines matter more than absolute thresholds. Rust + Python + React in one repo is genuinely powerful for hardware-adjacent apps. And: the best wellness tool is one you forget is running.
What's next for Corisol
- Real multi-user team stress sync (WebSocket, still local-network)
- Guided breathing overlay triggered at "critical" stress
- Apple Watch HRV as a ground-truth calibration source
- Windows support (Tauri makes this close to free)
Log in or sign up for Devpost to join the conversation.