PostureCoach

Real-time posture monitoring in your browser. Your webcam feed never leaves this page — all detection runs locally.

Camera off
⚠ Face too close — move back from the screen
Camera is off
Start the camera to begin tracking your posture. Sit ~50–70cm from the screen with your upper body in frame.
Sensitivity

How it works

PostureCoach loads Google's MediaPipe Pose Landmarker (33 body points) and Face Detector directly in your browser using WebAssembly — no video frame is ever uploaded anywhere.

  1. Skeleton tracking — the pose model finds 33 landmarks (shoulders, ears, hips, etc.) on every frame and draws the skeleton overlay.
  2. Angle math — from those points we compute a neck angle (ear‑to‑shoulder line vs. horizontal), a torso lean (shoulder‑to‑hip line vs. vertical), and a shoulder tilt (left vs. right shoulder height).
  3. Classification — if the neck angle drops too low or the torso leans too far forward, the frame is flagged as slouching.
  4. Face distance — a separate face detector checks how much of the frame your face fills. If it's too large, you're too close to the screen.

Testing steps

  1. Open this page over https:// or localhost (webcams require a secure context) and click Start Camera.
  2. Allow camera permission. Sit upright, centered, with shoulders and ears visible → status should read Good Posture.
  3. Slowly hunch forward / drop your head → status should flip to Bad Posture within ~1 second, and the Bad frame counter should climb.
  4. Lean close to the screen until your face fills most of the frame → the amber Face Too Close banner should appear.
  5. Check the dashboard: session timer counts up, angles update live, alerts log new events with timestamps, and the posture percentage ring reflects the good/bad ratio.
  6. Click Reset Session to clear counters and alerts without restarting the camera.

SESSION

Elapsed time00:00
Good posture frames0
Bad posture frames0
Face-too-close events0

LIVE ANGLES

Neck angle
Torso lean
Shoulder tilt
Face size

POSTURE SCORE

Good
Bad

ALERTS

No alerts yet — start the camera to begin monitoring.