Inspiration
There is a specific time before sunrise called Amrit Vela. It’s supposed to be the most peaceful time of day, but for many of us, it’s when the mind is loudest. You wake up, and the anxiety of the day hits you before you even get out of bed.
We wanted to build something that protects that morning silence.
But we had a massive problem with existing "smart" devices: they all listen. Sending your most vulnerable, early-morning thoughts to a cloud server felt wrong. We realized that true peace of mind requires true privacy. So, we asked ourselves: Can we build a system that senses stress and talks back, without a single byte of data ever leaving the room?
What it does
Nivritti is a physical system for your room that "wakes up" with you. It doesn't just wait for commands; it reads your body.
It Listens to Your Body, Not Just Your Voice: using a wearable device, it tracks your Galvanic Skin Response (GSR) and AD8232. If it sees your stress levels spiking while you're sitting still, it knows you're anxious.
It Adjusts the Room: The moment stress is detected, the system automatically softens the lighting (using a WS2812 LED ring) to calmer, warmer tones.
It Talks (Privately): A local AI agent (running entirely offline) gently intervenes, offering a grounding conversation to pull you out of a spiral.
The Dashboard: We built a cross-platform desktop command center where you can see the raw data and stress spikes plotted in real-time alongside the AI’s decision log.
How we built it
This was a heavy engineering challenge because we refused to use cloud APIs. Everything had to happen on the metal.
The Hardware Mesh: We used three ESP32-C6 controllers. One sits on the wrist handling the noisy analog signals from the AD8232 (ECG) and MPU6050 sensors. Another watches the room environment (Temp/Humidity) and the Skin resistance through GSR sensor, and the third controls the lights. Syncing them was a headache, but we got them to talk to each other in near real-time.
The "Brain" (Local AI): We deployed gpt-oss:20b using Ollama on a local server. We had to spend a lot of time prompt-engineering the model to be concise and calming, rather than robotic.
The Interface: We built the dashboard using Flet (Python). It’s not just a pretty UI; it’s a multi-threaded monitor that visualizes the sensor streams and handles the logic for the voice interactions.
Challenges we ran into
The "Sweat" Problem: GSR sensors are incredibly sensitive. At first, just moving a hand triggered a "High Stress" alert. We had to fine tune it to make it work finally.
Latency: Running a large language model locally is slower than the cloud. We had to optimize the text-to-speech pipeline so the voice starts playing while the rest of the sentence is still generating, cutting the perceived lag down significantly.
Accomplishments that we're proud of
The first time we tested the full loop was magical. We induced artificial stress (hyperventilating slightly), and without touching a button or saying a word, the lights in the room turned a soft green and the AI asked, "I notice your heart rate is up. Let's take a breath."
It felt like the room itself was alive. And knowing it was running 100% offline, with no data going to Big Tech, made it feel safe.
What we learned
Privacy is an engineering constraint. Building offline forces you to be creative with limited resources, but the trust you gain from the user is worth it.
Sensors don't lie. People often say "I'm fine" when they aren't. Biometrics tell the truth. Nivritti bridges that gap between what we say and what we feel.
What's next for Nivritti
We want to shrink the wearable down to a proper PCB form factor (no more breadboards!) and explore using smaller, faster vision models to detect facial tension as another data point.

Log in or sign up for Devpost to join the conversation.