How two phone cameras become a defensible number.
Two calibrated phones record the same movement from two angles. Pose estimation places the joints, event detection finds the moments that matter, and the metrics defined for that assessment are computed from them — then graded only as far as the reference data allows.
One camera measures a picture. Two measure a body.
A single camera records positions in its own image plane, so movement toward or away from the lens barely registers: a knee that travels forward hardly moves in the frame. Two calibrated views see the same joint from different directions, which lets its position be resolved in three dimensions.
That is what makes an angle or a displacement comparable between one session and the next, rather than a number that changes when the phone moves.
Capture defaults to two phones and supports up to four. A separate single-phone Body Scan estimates measurements from front and side photos; it does not reconstruct movement.
What has to be true before a frame is worth analysing
Most of what makes a measurement trustworthy is decided before any analysis runs.
Calibration, once per setup
Calibration solves two things: each phone’s own optics — focal length, principal point, lens distortion, which rarely change — and where the second camera sits relative to the first, which changes every time you move a tripod. A printed checkerboard held visible to both cameras is what solves them. It is a real step, done once per setup rather than once per trial, and it is why QOOM can claim no markers and no lab but not no setup.
Placement and protocol
Both phones go on tripods framing the volume the movement will happen in. Each assessment also carries its own requirements in its specification — the environment it needs (a treadmill, open ground, or anywhere), its repetition structure, and a minimum trial duration ranging from two seconds for a single jump to ten for continuous gait.
Quality checks, before scoring
Every trial is checked before it is scored, and a failure has one of two consequences.
- Blocked
- Mean pose-estimation confidence below 0.60 across the trial. For a countermovement jump, also a flight phase of 100 ms or less, or a countermovement with no standing start detected before it. A blocked trial is not scored.
- Partial
- Continuous occlusion longer than half a second on a key landmark — hip, knee or ankle — or an assessment’s events not all detected at sufficient confidence. The trial is reported with the gap named rather than quietly averaged over.
Pose, then events, then metrics
Nothing is measured directly from pixels. Each stage is derived from the one before it, which is why a failure at the first stage stops the rest.
- 01
Pose
Markerless pose estimation places body landmarks in each frame of both views; the calibrated pair resolves them into 3D positions over time.
- 02
Events
The moments an assessment is defined around are detected from those positions — the instant of take-off, the bottom of a rep, initial contact.
- 03
Metrics
Each metric in the assessment’s specification is computed from the positions between named events. No event, no metric.
Worked example — the countermovement jump
The CMJ specification defines five events. Everything the assessment reports is derived from them.
Five detected events
- 1Standing start — quiet standing, centre of mass velocity near zero
- 2Countermovement start — the first frame of downward motion
- 3Bottom — the lowest point of the countermovement
- 4Toe-off — the feet leave the ground
- 5Landing — first ground contact after the flight phase
Metrics derived from them
Jump height from the displacement between take-off and apex. Contraction time from countermovement start to toe-off; eccentric and concentric time from the bottom, and the ratio between them. Modified RSI from jump height over contraction time. Knee flexion and valgus at landing, and trunk position with them.
What the report contains
Key metrics, a zone overview, a phases-and-events chart of centre-of-mass position and velocity with the five events marked, a four-panel joint-kinematics grid, a description of every metric, and the quality-assurance verdict for the trial.
21 metrics are reported for a countermovement jump. 8 of them carry a reference distribution; the evidence gate can currently grade 0.
When a number gets a colour — and when it does not
A green, yellow or red zone is a comparison against a reference distribution. QOOM keeps those distributions in a versioned registry, and each one carries how far it can be trusted.
Evidence levels, and how many metrics sit at each
published0 metricsValues traceable to a peer-reviewed population study. Nothing currently qualifies; the level is reserved.
consensus4 metricsAnchored to a recognised clinical guideline or expert-consensus cutoff.
approximate44 metricsInformal literature ranges or general-adult estimates, not validated against a specific cohort. The honest default.
unvalidated5 metricsA two-point estimate or an inferred value. The evidence gate refuses to grade on these.
The gate runs twice
A zone is checked once when the trial is analysed, and again at the moment it is displayed, against the registry as it stands today rather than the one deployed on the day of the capture. A verdict that no longer holds is withheld rather than shown.
Validated or provisional
A verdict that survives both checks is carried as validated. One that depends on subject context the read path cannot reconstruct is carried as provisional — never silently promoted. An ungraded metric is still measured and shown; it simply has no zone.
A program reaches an athlete only after a coach says so
Analysis produces findings; a coach decides what to do with them. A generated program moves through explicit states, and the athlete-facing read path is filtered by them.
- 01
Draft — generated, not yet submitted for review.
- 02
Pending review — waiting on a coach.
- 03
Approved — visible to the athlete.
- 04
Rejected — sent back with the reason recorded.
Editing an approved program returns it to review. Trainers, clinicians and admins see every state; an athlete does not see what has not been approved.
The same protocol twice is what makes a change readable
A single session is a position. A difference between two sessions is only meaningful if everything except the athlete stayed the same — the same assessment specification, the same events, the same thresholds. That is the reason the protocol is fixed rather than freeform.
Each assessment ends with a reassessment signal
- Reassess soon — metrics declining, or caution flags present.
- Reassess on schedule — stable, or the standard interval is due.
- Continue monitoring — improving, with no caution flags.
What accumulates, and what it is careful about
The Body Profile does not analyse anything. It reads results that were already persisted, which is why it can build a picture across sessions rather than re-deriving one.
That design has a consequence QOOM handles explicitly: a colour persisted months ago was gated by whatever rules existed that day. So the profile re-asks the question at the moment of display, against today’s registry, and drops what no longer holds.
Anything without enough behind it yet says so, rather than showing a number.
What this is not
QOOM is designed for movement analysis, coaching support, and performance insights. It is not a medical diagnosis tool and does not replace a licensed healthcare professional.
Zones are reference comparisons, not validated clinical cutoffs, and most rest on approximate reference data. Read a grade as a prompt for professional review, and prefer comparing an athlete to their own earlier sessions over comparing them to a population.
Run one and see the whole chain.
Capture, metrics, zones and the evidence behind them — on one athlete, in one session.
