← Projects

Hardware, Mobile App/2026/In development

Eveil

The alarm you can't ignore. Literally.

RoleFounder, Builder
TeamHaadi, Kush, Navjot, Zain
TimelineOngoing
StackSwift · SwiftUI · AlarmKit · Foundation Models · ESP32 · Arduino · BLE · FSR Sensors

Overview

Everyalarmeverbuiltsolveswakingup.Noneofthemsolvegettingup.

Éveil pairs a pressure sensor that lives under your mattress with an iOS app. The alarm only stops once you’re physically out of bed, and it starts again if you climb back in.

0

snooze buttons, by design

0

pressure zones under the mattress

0 s

to get up before the device rings

0 s

re-entry watch after you’re up

01

The problem

I’ve been late to things my whole life. Not because I don’t care, but because the gap between knowing I need to get up and actually getting up has always felt impossible to close. It has a name, dysania, and it’s especially common in neurodivergent people.

Louder sounds, puzzles and shake-to-dismiss all assume the problem is waking up. The real problem is leaving the bed and staying out of it.

0%

of Americans snooze at least once most mornings

0%

of alarm users don’t remember dismissing it at least once a week

“I walked into the hardware hackathon where I built this late. I was there to solve my own problem.”
— Kush Mirchandani
02

Inside the device

Scroll to take it apart. Layers follow the prototype: force plate, four FSRs, ESP32 + Arduino, piezo.
Éveil enclosure render
Enclosure concept
Wiring diagram
Wiring: four FSRs, ESP32, Arduino, piezo
Prototype components on a desk
Prototype parts
03

How the alarm escalates

Tapping I’m up isn’t enough. If the bed still reads occupied, a 10-second countdown starts. Then the device itself rings, and nothing on the phone can stop it. Only an empty bed can.

A live model of the app’s AlarmOrchestrator. Move yourself, ring the alarm, try to cheat by sitting on the edge.
04

Picking the wake time

You never set an alarm. The app reads tomorrow’s first calendar event and asks Apple’s on-device model how much lead time you need. The model is useful but not trusted: its answer is snapped to 15 minutes and clamped to 15–120 before it touches the alarm, with a 60-minute fallback.

The guardrails around WakeBufferEstimator. Structured output via @Generable, then deterministic clean-up.
05

System

06

Brand

Colour

Type

AaSF ProSystem UIYour day tomorrow starts with Class at 8:00 AM.

Mark

Éveil app icon

Éveil is French for awakening. The palette is a night sky turning to dawn, with one warm accent reserved for success.

07

Outcome

Built in 24 hours

First version built at the UF Hardware Hackathon 2025.

Strong judge response

Judges singled out the UX of the escalation flow.

Used every morning

It’s been my alarm every day since the hackathon.

More work