Pose analysis · in-browser · MediaPipe

Biomechanics,
measured.

Body landmarks become joint angles, and joint angles become a score you can audit check by check. Your photo never leaves your device.

Run analysis
landmarks
33
checks
14
poses
3
bytes uploaded
0
reference_figureillustration
Illustration of a person in Warrior II with a skeleton overlay and joint-angle annotations

01 · Analyze

Run it on a sample or your photo

Warrior II and Tree facing the camera, Downward Dog from the side. Full body in frame.

02 · Sample reports

Three real photos, fully measured

Skeleton overlays, angle gauges and score breakdowns from iteration 1 of Sergio's practice shots.

Warrior II
66
Tree
63
Downward Dog
72
Open reports

03 · Pipeline

How a score is computed

Deterministic and explainable: the same photo always gets the same score. If the camera view, framing or landmark coverage isn't good enough, the gate returns a prompt instead of a number.

  1. 01 · input

    photo

  2. 02 · detect

    MediaPipe · 33 landmarks

  3. 03 · project

    pixel space (aspect-correct)

  4. 04 · frame

    view + framing

  5. 05 · classify

    rule-based pose

  6. 06 · gate

    readiness ≥ 70% coverage

  7. 07 · score

    weighted checks → 0–100

04 · Check spec

Every rule, in the open

Generated from the scoring code. Full credit inside the tolerance, partial credit up to twice the tolerance, zero beyond.

Scoring checks per pose
posecheck_idmeasurestargettoleranceweight
Warrior IIfrontKneeBendFront knee bend90°± 10°30
Warrior IIkneeOverAnkleFront knee over ankle0± 0.120
Warrior IIbackLegStraightBack leg straight180°± 10°15
Warrior IIarmsLevelArms level0°± 10°20
Warrior IItorsoUprightTorso upright0°± 10°15
TreestandingLegStanding leg straight180°± 8°25
TreefootOffKneeFoot off the knee≥ 0.15—20
TreehipsLevelHips level0°± 6°20
TreetorsoUprightTorso upright0°± 8°15
Downward DogarmsStraightArms straight180°± 10°20
Downward DoglegsStraightLegs straight180°± 15°20
Downward DoghipAngleHip angle (inverted V)80°± 15°25
Downward DogflatBackLong, flat back180°± 12°25
Downward DogheadAlignedHead between arms0± 0.110

05 · Privacy & about

On-device by design

Private

  • › pose detection runs in your browser
  • › 0 bytes of image data uploaded
  • › MediaPipe usage telemetry blocked (CSP connect-src)

Built by Sergio Fruto

Product engineer and kinesiology student, combining biomechanics with applied AI.

  • Next.js 16
  • TypeScript
  • MediaPipe
  • Tailwind v4
  • Vitest