Form Check

Form analysis that runs on the phone

Form Check puts a pose model in the browser. It watches the athlete through the camera, counts honest reps, calls corrections when form breaks, and saves a report. No app store, no upload, no credits.

Sign in to the portal first so your sessions are saved to your name.

How it works

Point. Start. Train.

  1. Prop the phone up

    Side view for push-ups, squats, bench, rows, leg press, deadlifts and planks. Front view for shoulder press, lat pulldown and curls. The preset tells you which.

  2. Pick the exercise and press Start

    An optional get-set countdown (5, 10 or 20 seconds, with beeps) gives the athlete time to get into position before tracking begins.

  3. Stop, and the report is ready

    Reps, depth, cues and muscle strain are saved as the set runs, so the report page already shows the work by the time you press Stop.

The rep rules

Honest counting, written down

The counter follows one joint angle per exercise. The rules are the same for every athlete and every coach.

  • An attempt starts once the joint moves 20° past the top position.
  • Reach depth and it is a full rep.
  • Turn around early and it still counts, flagged as shallow. Nothing is silently dropped, and nothing is silently credited.
  • Holds are timed. The plank preset tracks the body line and counts time under tension instead of reps.
  • Tune per exercise. A depth-target slider and strict / normal / lenient modes are stored on the device, so a coach can match the standard to the athlete in front of them.
Rep by repPush-up · Elbow
01
Full · 84°
02
Full · 87°
03
Shallow · 112°
04
Full · 82°
05
Shallow · 108°
06
Full · 85°

Illustration of the report's rep ledger: bar length is depth reached, the angle is the turnaround.

Presets

Ten exercises, one tuned on the floor

Push-up thresholds were tuned with D6 athletes. The other nine presets work today and are labelled beta until they have had the same treatment.

  • Push-upSide view · elbow angle · Tuned
  • Bodyweight squatSide view · knee angle · Beta
  • Bench pressSide view · elbow angle · Beta
  • Shoulder pressFront view · elbow angle · Beta
  • Lat pulldownFront view · elbow angle · Beta
  • Seated rowSide view · elbow angle · Beta
  • Leg pressSide view · knee angle · Beta
  • Deadlift / RDLSide view · hip angle · Beta
  • Bicep curlFront view · elbow angle · Beta
  • Plank (hold)Side view · body line · timed hold · Beta
Cues it can callExamples
Go deeper. Chest toward the floor
Keep head, hips and heels in one line
Knees caving. Push them out over your toes
Flat back. Chest proud, don't round
Finish the press. Full lockout overhead
Elbows pinned. No swinging the upper arm

Coaching cues

Corrections, not commentary

Each preset carries a short list of faults it can see, and a cue for each one. A cue fires when the fault appears and goes quiet when it is fixed.

  • Voice is off by default. Turn it on and the phone speaks the corrections. It never reads rep counts aloud.
  • Cue counts land in the report. A coach can see which correction fired most across a set, not just that the set happened.
  • The muscle map shows strain. Working muscles light up blue; strain builds to amber and red through the set, front and back.

Coach mode

Four athletes, four reports

Coaches, trainers and admins open Form Check straight into coach mode. It is built for a gym floor, not a bedroom mirror.

Finds people first

A person detector runs on the whole frame, then the pose model runs on each athlete's crop. That is what keeps athletes at gym distance from dropping out of the count.

One track per body

Each body keeps a persistent track with its own rep counter and cue history. Two athletes are never merged into one, and a second athlete stepping in never inherits someone else's reps.

Tap to tag

Tap an athlete on the video and pick them from the roster. The name pill sits under their chin. A coach's tag always wins over automatic recognition.

Face ID, opt-in

A coach can enrol an athlete's face from the tag dialog, with a consent name on record (parent or guardian for minors). Recognition needs repeated matches and a clear margin before it tags anyone.

Live per-athlete cards

Each athlete's live angle shows on their card, or “not fully in frame” when the detector cannot see enough of them to judge the rep.

Set reports

Stop shows a session summary with a report link per athlete. The report page also groups a coach-mode set so every athlete from that set is on one page, with history grouped as “set of N.”

Reports

Live while it runs, kept when it's done

A session row is created at Start and updated on every rep. The report page shows a Live badge while the set is still going, then becomes the record.

  • Rep by rep: depth reached, turnaround angle, full or shallow.
  • Coaching cues fired, with counts.
  • Muscles worked and the strain at the end of the set.
  • Notes from the coach, and a history of recent workouts for the athlete.
  • Assign the workout to an athlete or a session from inside Form Check, so the report lands where the coach expects it.
This set · 3 athletesLive
Athlete A
10 reps · 1 shallow
Cues: Go deeper ×1
Athlete B
8 reps · 3 shallow
Cues: Go deeper ×3 · Hips sagging ×1
Athlete C
12 reps · full
Cues: none

Illustration of the set view. Real reports show the athlete's name and the exact angles.

What you need

A phone, a camera, and light

Any current browser

Safari on iPhone and iPad, Chrome on Android and desktop. The pose model downloads once and runs on the device. A bad connection delays the first load, not the tracking.

The whole athlete in frame

Full body for squats, leg press, deadlifts and planks. Upper body is enough for push-ups, presses, pulls and curls. The preset says which view to use.

A portal sign-in

Form Check saves sessions and reports to the signed-in account, so athletes see their own history and coaches see their roster's.

Ready when you are

Open Form Check from the portal top bar, or go straight to it.