SitPretty

How SitPretty detects slouching with AirPods

AirPods with head tracking report the direction of gravity relative to your head. SitPretty learns where that direction points when you sit tall and when you slouch, at your own desk, and nudges you only after you have stayed slouched for a while.

In short

SitPretty compares the angle of your head against two personal reference postures you teach it in one minute. It judges a 20 to 45 second median rather than the instant, ignores moments when you move or look away, stays quiet when it is unsure, and learns from each answer you give a nudge.

1. Teaching: one minute at your desk

You sit at your usual desk with your AirPods in. A dot appears in the middle of the screen with the instruction just above it. You alternate sitting tall and slouching the way you really do, three times each, ten seconds each. The first three seconds of every hold are ignored while you settle, and moments where you move are dropped.

Keeping your eyes on the dot matters. It means the only thing that changes between the two postures is the posture itself, not where you are looking. If one hold clearly does not match the other two (for example, a first “sit tall” done while still slouched), SitPretty leaves it out and says so.

At the end, SitPretty tells you how clearly your AirPods can tell the two postures apart: clearly, just, or barely. In our own testing at a low desk, sitting tall and slouching differed by about 13 to 14 degrees of head angle while looking at the same point, which is clearly separable. If yours look almost the same, SitPretty says so instead of pretending.

2. What SitPretty measures

SitPretty uses only the gravity direction from your AirPods, projected onto a personal frame: one axis runs from your upright posture toward your slouch, the other across it. Gravity is used because it is anchored to the real world and does not drift. Head turning left and right (yaw) does drift, and it can be reset by the system when spatial audio starts, so SitPretty uses yaw only to notice that you are looking somewhere else for a moment.

3. Deciding, second by second

Every second, SitPretty asks two questions.

QuestionWindowWhat happens
Can the data be trusted right now?Last 3 secondsIf you are moving, looking more than 35° away, or your AirPods just reconnected or switched earbuds, it does not judge at all.
Upright, slouched, or unsure?Median of the last 20 to 45 secondsGlances around the screen average out. The window is shorter when your two postures are far apart, so nudges come sooner without more false alarms.

A posture far from both of the ones you taught (your head tilted sideways, for instance) counts as unsure, not as a slouch. A slouch deeper than the one you taught still counts as a slouch.

4. When it nudges, and when it stays quiet

SituationWhat SitPretty does
You slouch for a momentNothing. A slouch has to last 90 seconds by default (30 seconds to 5 minutes in Settings).
You stay slouchedA soft chime in your AirPods and a small card with “That's right” and “False alarm”.
You sit upThe card leaves by itself with “Nice. Sitting tall.” Sitting tall for 20 seconds ends any quiet period.
You answer “That's right” but keep slouchingIt asks again about a minute later.
You don't answer and keep slouchingIt stays quiet for 10 minutes, and longer if you ignore it twice in a row (up to 30 minutes).
You answer “False alarm”That position is silenced for 30 minutes right away, and the model learns from it.

The chime only ever plays through Bluetooth headphones. If none are available, SitPretty does not play it through your speakers.

5. Learning from your answers

Each answer becomes a labelled example, and your personal model is recomputed immediately. “That's right” and the missed-slouch shortcut (⌃⌥M) teach it what your slouch looks like; “False alarm” teaches it what your upright looks like. When you confirm a nudge and then sit up, SitPretty also learns that sitting-up posture, without you pressing anything. One answer can only move the model a little, so a misclick does no harm, and “Forget corrections” returns it to exactly what you taught.

Settings shows a daily accuracy line built only from your answers: nudges you called right, divided by all your answers (right, false alarm and missed). Automatic sit-up learning is not counted, because it agrees with the model by definition.

6. When your AirPods sit differently

AirPods can sit a few degrees differently each time you put them in. In our testing, taking them out and putting them back shifted the reading by about 5 degrees. “Re-aim AirPods” fixes this in eight seconds: sit tall and look at the dot, and SitPretty rotates your model to match, keeping everything you taught and corrected.

Limits

  • AirPods sense the head only. If your head angle does not change when you slouch, SitPretty cannot see the slouch.
  • It needs about a minute and a half of slouching before a nudge, by design. It is not meant to correct every moment.
  • It needs your AirPods in, with head tracking, connected to this Mac. Taking them out pauses it.
  • It is a habit tool, not a medical device, and makes no claim about pain or spinal health.

Questions

Does SitPretty use the camera?

No. SitPretty uses only the motion sensors in your AirPods. It never turns on the camera or the microphone.

Why does it ask me to look at a dot while teaching?

So that the only difference between your two postures is the posture itself. If your eyes moved, SitPretty could learn where you look instead of how you sit.

Will it nag me when I look down at a low screen?

No, if you taught it at that desk. Looking down at your screen is part of your own upright posture, so it is not treated as a slouch.

How long until it nudges me?

About a minute and a half of steady slouching by default, plus the time the median window needs to notice. You can set the delay from 30 seconds to 5 minutes.

Does it get more accurate over time?

Yes, within what AirPods can sense. Every answer you give updates your personal model immediately, and Settings shows how often it gets you right each day.