Good Posture Deviation Threshold
The most important customization setting is the GOOD_POSTURE_DEVIATION value, which determines how much you can move before the extension considers it “bad posture.”Default Deviation
By default, the extension allows 25 pixels of vertical eye movement from your baseline:- If your eye moves less than 25 pixels up or down: Good posture (no blur)
- If your eye moves more than 25 pixels up or down: Bad posture (blur applied)
The 25-pixel threshold balances sensitivity with practicality - it allows natural small movements while detecting meaningful posture changes like slouching or craning your neck.
How Deviation Detection Works
The extension calculates the absolute difference between your current eye position and the baseline:Math.abs() function means movement in either direction (up or down) counts toward the threshold:
- Leaning forward (eye moves down): Detected as bad posture
- Craning neck up (eye moves up): Also detected as bad posture
Adjusting the Deviation Threshold
Currently, the deviation threshold can be adjusted programmatically through the messaging system:Sensitivity Guidelines
When customizing the deviation threshold (once the UI is available), consider these guidelines: More Sensitive (10-20 pixels):- Detects smaller posture deviations
- Encourages stricter posture adherence
- May trigger more frequently during normal movements
- Best for users who want maximum posture discipline
- Balanced approach for most users
- Allows natural micro-movements
- Detects meaningful slouching
- Recommended starting point
- More forgiving threshold
- Only triggers on significant slouching
- Better for dynamic work environments
- May be too lenient for posture correction
Resetting Your Posture Baseline
Your posture baseline is the reference point that determines “good posture.” You can reset this baseline at any time.When to Reset Your Baseline
Reset your baseline when:- After breaks: You’ve left your desk and returned to a different sitting position
- Chair adjustment: You’ve changed your chair height or desk configuration
- Camera moved: Your webcam position or angle has changed
- Wrong initial baseline: You accidentally started tracking while slouching
- Time of day changes: Your posture needs differ between morning and afternoon
- Different workspace: You’ve moved to a different desk or location
How to Reset Your Baseline
From the Options Page
Sit with good posture
Position yourself correctly - back straight, shoulders back, head level, eyes looking straight ahead at your monitor.
Click 'Reset Posture' button
Click the “Reset Posture” button on the Options page. This button only appears when tracking is active.
null triggers the extension to capture the next detected eye position as the new baseline.
From the Browser Popup
How Baseline Reset Works Internally
When you reset the baseline, the extension:- Sets
GOOD_POSTURE_POSITION.currenttonull - On the next pose detection cycle (within 100ms), detects no baseline exists
- Captures your current right eye Y-coordinate
- Sets this as the new
GOOD_POSTURE_POSITION - All future comparisons use this new baseline
The baseline resets almost instantly - usually within 0.1 seconds of clicking the button. You’ll see the white baseline line move to your current eye position on the video preview.
Baseline Reset Best Practices
Do:- Take a moment to position yourself properly before resetting
- Reset after any significant change to your setup
- Reset if you notice the blur triggering constantly when you feel you’re sitting well
- Reset at the start of each work session
- Reset while slouching (you’ll set a poor baseline)
- Reset too frequently during normal work (let the extension do its job)
- Reset while moving or adjusting position (wait until settled)
- Reset as a way to “cheat” the system (defeats the purpose!)
Visual Customization
While not directly customizable through a UI, you can modify the extension’s visual behavior by editing the source code.Blur Intensity
The default blur is 4 pixels. To make it more or less intense, modify the CSS:- 2-3px: Subtle blur, gentle reminder
- 4px: Default, noticeable but readable
- 6-8px: Strong blur, hard to ignore
- 10px+: Very intense, difficult to read
Blur Transition Timing
The blur appears over 0.6 seconds and disappears over 0.3 seconds. Adjust these transitions:- Faster transitions (0.1-0.3s): More immediate, can feel jarring
- Slower transitions (0.8-1.2s): Gentler, may be less noticeable
Keypoint Colors
Keypoints appear green for good posture and red for bad posture. These are defined indraw_utils.ts:
rgba(0, 255, 0, 0.9): Green (good posture)rgba(255, 0, 0, 0.9): Red (bad posture)- Format:
rgba(red, green, blue, opacity)
Status Bar Styling
The “Sit Up Straight!” message can be styled by modifyingcontent.styles.css:
- Position (
bottom,rightvalues) - Font size
- Background color
- Shadow effects
Detection Rate Customization
The extension checks your posture every 100 milliseconds (10 times per second):- More responsive
- Higher CPU/GPU usage
- Smoother visual feedback
- May drain battery faster on laptops
- Lower resource usage
- Still responsive enough for posture tracking
- Better battery life
- May feel slightly less immediate
Camera Device Persistence
If you have multiple cameras, you need to select your preferred one each time you start the extension. Currently, the extension always defaults to the first detected camera. The selected camera device is stored in state:Future versions could add localStorage persistence to remember your preferred camera between sessions. This is not currently implemented but would be a useful enhancement.
Future Customization Features
The extension’s TODO list and codebase comments indicate planned features:User Adjustable Deviation Range
From the README:GOOD_POSTURE_DEVIATION value without editing code.
Configurable Visual Feedback
SeveralTODO comments in the code suggest making hardcoded values configurable: