{"repo":"wtbates99/batesposture","free":true,"listed":false,"github":"https://github.com/wtbates99/batesposture","clone":"git clone https://github.com/wtbates99/batesposture.git","description":"Local-first desktop posture monitor with real-time webcam scoring, personal calibration, and private on-device processing.","language":"Python","stars":23,"topics":["opencv","computer-vision","ergonomics","mediapipe","pose-estimation","posture","privacy","pyqt6","desktop-app","local-first"],"license":null,"category":"machine-learning","readme_excerpt":"BatesPosture A local-first desktop posture monitor. Webcam in, private posture feedback out. Install · How it works · Privacy · License BatesPosture watches a webcam locally, scores posture from 0–100, and sends a native notification when posture drops below a personal threshold. Calibration tunes the measurements to the person using the app. There are no accounts, cloud uploads, or telemetry. What it provides Capability Behavior --- --- Live score Seven weighted pose metrics become a color-coded 0–100 tray score Personal calibration A six-second baseline adjusts feedback to the user's natural posture Session dashboard History, average, minimum, maximum, best streak, and duration Smart alerts Native notifications with threshold, cooldown, and focus controls Scheduling Continuous or interval tracking plus configurable break reminders Local history Optional SQLite logging and CSV export Adaptive processing Frame-size and performance controls for slower hardware Auto-pause Away-from-desk time is excluded when no person is detected Install Requires Python 3.10 or newer, uv, and a webcam. Grant camera permission and complete the calibration when prompted. Linux system packages On Debian or Ubuntu: GNOME users may also need an AppIndicator extension for the tray icon. How it works 1. Calibrate — capture a six-second baseline of the user's natural posture. 2. Track — MediaPipe landmarks feed seven geometric measurements. 3. Score — weighted measurements produce one 0–100 posture sco","default_branch":null,"files":null,"tree":[],"storefront":"/r/wtbates99","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/wtbates99/batesposture/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}