What problem does this solve?
Ultrahuman's timing windows — caffeine cut-off, light exposure, wind-down — are one of the most-cited reasons people pick it over Oura. PulseLoop has the sleep timing to compute all of them and doesn't.
Proposed solution
Four times hung off the user's own schedule: get light by (wake + 2 h), last coffee by (bedtime − 8 h), finish eating by (bedtime − 3 h), wind down from (bedtime − 1 h).
Anchored on sleep timing rather than sunrise. Ultrahuman derives its windows from solar times, which needs location. Two reasons not to:
- The project's principles keep location optional — requiring coordinates to show four times is a poor trade.
- The advice these encode is already phrased relative to your own sleep in the literature — "get bright light within an hour or two of waking", not "at sunrise". Someone who wakes at 13:00 still benefits from light at 13:00, and a night-shift schedule produces coherent windows this way where a sunrise-based one produces nonsense.
The cost should be stated plainly rather than glossed: this cannot tell you whether it is actually light outside. It says when the body clock is most responsive, not when the sun is up.
The schedule wants a median bedtime and wake over recent nights, needing about a week, with naps excluded — a 20-minute afternoon sleep's start and end are not a schedule.
Watch the midnight arithmetic: a 00:30 bedtime must produce a 16:30 caffeine cutoff today, not yesterday.
Belongs on the Sleep tab beside the nights it was learned from, with each window's reason disclosed on tap — four bare times with no explanation are instructions, not guidance.
Depends on
Sleep score v2 (#115) — reuses the wrapped-midnight bedtime placement.
Area
UI / DesignSystem
What problem does this solve?
Ultrahuman's timing windows — caffeine cut-off, light exposure, wind-down — are one of the most-cited reasons people pick it over Oura. PulseLoop has the sleep timing to compute all of them and doesn't.
Proposed solution
Four times hung off the user's own schedule: get light by (wake + 2 h), last coffee by (bedtime − 8 h), finish eating by (bedtime − 3 h), wind down from (bedtime − 1 h).
Anchored on sleep timing rather than sunrise. Ultrahuman derives its windows from solar times, which needs location. Two reasons not to:
The cost should be stated plainly rather than glossed: this cannot tell you whether it is actually light outside. It says when the body clock is most responsive, not when the sun is up.
The schedule wants a median bedtime and wake over recent nights, needing about a week, with naps excluded — a 20-minute afternoon sleep's start and end are not a schedule.
Watch the midnight arithmetic: a 00:30 bedtime must produce a 16:30 caffeine cutoff today, not yesterday.
Belongs on the Sleep tab beside the nights it was learned from, with each window's reason disclosed on tap — four bare times with no explanation are instructions, not guidance.
Depends on
Sleep score v2 (#115) — reuses the wrapped-midnight bedtime placement.
Area
UI / DesignSystem