Aube
An alarm clock that listens to sleep to choose when to ring. The kind of project you write for one precise need and never talk about.
An alarm rings at the set time, and the set time lands one time in two at the bottom of a deep cycle, hence the feeling of having been torn out rather than woken up. This one takes the problem differently: it is given a window of an hour and a half rather than an instant, and it picks the moment when sleep is lightest.
To know that, it uses nothing but the phone lying next to the bed: the microphone and the accelerometer, that is, noise and movement. The wake-up that follows is gradual, nature sounds and rising light if connected bulbs are there to go along. The same cycle arithmetic works in the other direction, to say what time you should go to bed.
The application is written in React Native, and the data stays on the device. A program entrusted with the sound of a bedroom at night has no reason to send it anywhere; synchronisation, if it ever comes, will be a choice and not a default.
Version 1.1.0, in October 2026, holds to one rule: it rings at the chosen time at the latest. A system alarm is set as a fallback from the start, and set again if the phone restarts; detection can only bring the wake-up forward. Through the night the accelerometer is read twenty times a second and summed up minute by minute; within the window, the alarm rings at the first minute that ranks among the 10% most restless of the night. In the morning, a summary gives the length of the night and an estimate of calm, light and awake phases, drawn from movement. The part that runs at night is a native module in Kotlin.
Private project, no public link
