Set
Choose 5 to 30 minutes of sleep, with an overall limit of up to 60 minutes.
PowerNap Adaptive / Wear OS
Personal project · beta in development
PowerNap Adaptive runs entirely on a Wear OS watch. It uses movement and heart-rate readings to estimate when you fall asleep, then wakes you with a vibration after your chosen rest period. A separate alarm sets an overall time limit for the nap.

01 / Experience
Set a sleep target and an overall time limit right on the watch. The Tile gives you a quick way in and shows when a session is running.
Choose 5 to 30 minutes of sleep, with an overall limit of up to 60 minutes.
The watch checks movement and heart rate in 30-second windows to estimate when sleep begins.
It vibrates when the target or time limit is reached. You can also end the session yourself.

02 / Engineering
Before it starts reading sensors, the app saves the session and schedules the maximum-time alarm. The adaptive wake-up alarm is separate, so it never replaces that cutoff.
If heart-rate data is unavailable, the app uses movement alone. Without accelerometer data, it switches to a fixed timer. If the process stops, its alarms remain in place and the app shows safe mode. Without exact-alarm permission, Android may delay the cutoff.
03 / Decisions
Looks at stillness, heart-rate drop and stability, and time elapsed. It confirms a tentative sleep-onset estimate before using it.
Room stores sessions, diagnostic events and summary windows on the watch. It does not store raw sensor signals or PPG.
No backend, accounts, ads or third-party analytics.
Kotlin · Compose for Wear OS · Tiles / ProtoLayout · Coroutines / StateFlow · Room · AlarmManager
An experimental app, not a medical device. Its sleep-onset estimate cannot identify REM sleep or replace a clinical measurement. The algorithm is still being calibrated.