Inspiration
- Stress is invisible until it isn't. Most of us don't notice we're tense until our shoulders are up at our ears.
- Your skin notices first. When stress hits, your sweat glands react within a second or two, before you feel anything.
- Waiting for surgery is one of the most stressful moments in a hospital, and patients usually just sit there with it.
- We wanted to make that hidden signal visible and turn calming down into a game.
What it does
- A small board on your hand reads your skin through two finger straps and turns it into a live stress level.
- It learns your own calm level in about a minute, then tracks how far you drift from it.
- Lanturn is a calming game for patients waiting before surgery. It runs in any browser.
- It has three activities:
- Roots: trace a glowing vine by pointing your finger.
- Sight: a 5-4-3-2-1 grounding game where you find hidden things.
- Glow: take a deep breath, and the lantern waits until your body responds.
- The world reacts to you. Calm brings out an aurora and brighter stars. When stress stays high, the lantern steps in and makes the activity easier.
- The lantern talks in a calm voice and asks you to say kind words back, like "I am safe right now."
- The patient never sees a number. A separate nurse view shows the stress timeline and which activity calms that patient most.
How we built it
- Hardware: a Seeed XIAO nRF52840 Sense with a Grove GSR sensor. The board's built-in motion sensor turns your finger into a pointer.
- Firmware: reads the skin sensor 500 times a second and averages that down to 10 readings a second. That averaging also cancels the hum from power lines, in both 50 Hz and 60 Hz countries.
- Stress engine (Python):
- Throws out bad readings (no contact, loose straps, sudden jumps) instead of guessing.
- Spots each quick skin response, and checks its shape to tell it apart from a strap shifting.
- Compares everything to your own baseline, because skin readings vary a lot between people and between days.
- Combines how often you react with how much your overall level has risen into one 0 to 100 score.
- Waits a few seconds before switching between calm and stressed, so the game doesn't flicker.
- Finger pointing: we track which way your finger points, not where it moves, because tracking position drifts within seconds.
- Server: streams everything live to the game and records every session, so we can replay it and tune the thresholds.
- Game: HTML and JavaScript in the browser.
- Voice: Cartesia Sonic 3.6 gives the lantern its voice, and Cartesia ink-whisper hears the player's kind words.
Challenges we ran into
- The official formula was wrong by 10x. Seeed's wiki assumes a 20 kΩ resistor, but the board uses 200 kΩ. We only found it by reading the schematic.
- New straps need time to settle. Dry pads can double their reading in the first few minutes, which looks like panic. We made the baseline wait until the signal settles.
- Moving your hand looks like stress. We filter out readings that jump too fast and responses that start while the hand is moving.
- Breathing and talking raise the reading too. The game tells the sensor when it asks for a breath or a spoken word, so those don't count as stress.
- Two sensors on one tiny board. We had to read the motion sensor without throwing off the skin sensor's timing.
- No ground truth. You can't label your own stress in the middle of a hackathon, so we built a simulator and wrote 31 tests against it.
Accomplishments that we're proud of
- A working wearable that goes all the way from raw sensor to a game that reacts live.
- Getting the physics right when the official docs were wrong.
- A game that adapts to your body without ever showing a stress number.
- One device that does two jobs: it reads your stress and it's your controller.
- A nurse view that shows which activity helps each patient most.
What we learned
- The sensor measures arousal, not stress. Excitement, talking, deep breaths and heat all raise it too.
- About 10 to 20% of people barely react on this kind of sensor, so the system has to notice that and say so.
- The body is slow. Skin responses lag 1 to 3 seconds and the overall level can lag up to a minute, so slow, calm games work better than fast ones.
- Read the schematic, not the wiki.
What's next for Lanturn
- Test with real patients and compare against how they say they feel.
- Build an enclosure so it's one comfortable wearable.
- Add heart rate to tell excitement apart from distress.
- Go wireless over Bluetooth.
Built With
- aiohttp
- arduino
- arduino-cli
- asyncio
- c++
- cartesia
- claude
- css3
- grove-gsr-sensor
- html5
- i2c
- imu
- javascript
- lsm6ds3
- matplotlib
- nrf52840
- pyserial
- pytest
- python
- rest-api
- seeed-xiao-nrf52840-sense
- voiceagent
- websockets
Log in or sign up for Devpost to join the conversation.