Skip to content
Elytics by The Speed Doctor

How the numbers work.

Every value in Elytics comes from one of a few simple models, the timing you mark, or a pose read off the frame. Here is each one, with the formula and its limits.

The three labels

MEASURED Read directly: joint angles from pose detection, and official tracking numbers you enter (an NFL Next Gen Stats top speed, for example).

MODELED Calculated from a model plus a known input, like a speed curve from a 40 time or force per step from bodyweight.

ESTIMATED Calculated from the frames and distances you marked. Good timing gives good estimates; a wrong yard line gives a wrong speed.

Timing from the clip

Time comes from the video’s frames. At 30 frames per second each frame is 0.033 s, so a mark that’s one frame early on a 1.6 s ten-yard split moves the split by about 2%. Higher frame rates help: at 60 fps the same error is halved.

Replays are often slowed. Set the clip speed so Elytics converts clip time to real time. The easy test is the game clock: if it ticks one second for every second of video, the clip is real time. iPhone slow-motion clips usually play at ⅛ or ¼ speed.

The sprint curve

Straight-line sprints follow a rising curve that flattens toward top speed. Elytics uses the standard mono-exponential form:

v(t) = vmax − (vmax − v0) · e−t/τ
d(t) = vmax·t − (vmax − v0)·τ·(1 − e−t/τ)

t is time since first movement, v0 is 0 from a standstill, and τ (tau) sets how fast the athlete gets up to speed. With two or more timed splits Elytics fits vmax and τ to your marks by least squares and shows how far, in seconds, the marks sit from the fitted curve. With one split it holds τ at 0.96 s and solves only vmax.

From a 40 time

A known 40 time fixes the curve without any marks. The model’s time from first movement to 40 yards is set to the 40 time plus 0.15 s, with τ = 0.96 s.

vmax = 36.576 m ÷ [ T − τ·(1 − e−T/τ) ],   T = 40 time + 0.15 s

A 4.35 gives vmax ≈ 10.3 m/s, about 23.0 mph, and 0 to 15 mph in a little over a second. It assumes a straight-line effort, so on a run play with cuts it shows what that 40 speed would look like, not what happened.

Plays that cut and stop

Runs, scrambles and pass rushes don’t follow one curve. Here Elytics uses the timing only: you mark moments along the play and enter how far the athlete has traveled along the path at each one. Speed between two marks is distance over time. From a standstill the first stretch rises like a sprint start (τ = 0.96 s) and covers exactly that stretch’s distance; after that, the segment averages are joined by a smooth curve that never overshoots them.

These are averages across each stretch, so the true peak can sit a little above the number shown. Everything here is labeled ESTIMATED.

Official tracking

When a real tracking number exists, it wins. Enter an official top speed and the curve rises to land exactly on it; if the marks give the path distance, τ is solved so the distance matches. College and high school games almost never have tracking data, which is why most numbers you’ll see are estimated.

Force per step

Force is the average vertical ground-reaction force per contact, given in multiples of bodyweight (BW) and shown in pounds as BW × weight. The multiple depends on what the athlete is doing:

What the athlete is doingBodyweights per contact
Standing, set1.0
Accelerating1.8 rising to 2.3 with speed
Top speed2.3
Braking steps2.2 to 2.5
Cut or plantabout 3.0
One-leg leap or dive push-off3.5 to 4.0
Airborne0

At contact with another player the panel switches to momentum instead of showing a ground force. All force values are MODELED.

Acceleration and momentum

a = dv/dt, shown in g (1 g = 9.81 m/s²).   Net push = m·a.   Momentum p = m·v (kg·m/s)

Net push is the horizontal force it takes to change speed that fast. Momentum is what a tackler has to stop: a 220-lb back at 20 mph carries about 890 kg·m/s.

Jumps

Mark the last frame on the ground and the first frame back down. If takeoff and landing happen at the same height, flight time gives the jump height and takeoff speed directly:

h = g·tf² ÷ 8    vtakeoff = g·tf ÷ 2

Mark the lowest point of the dip too, and Elytics finds the average push force from impulse and momentum, since vertical speed is zero at the bottom:

Fpush = m·(g + vtakeoff ÷ tpush)

Peak power uses the Sayers equation, a regression from lab testing: P (W) = 60.7·h(cm) + 45.3·m(kg) − 2055. Landing with bent knees or tucking the feet makes flight time, and the height, read high.

Size physics

For athletes who are much smaller or bigger than the players around them, Elytics compares them with a reference athlete (6-2, 235 lbs by default). These are scaling estimates, not measurements:

  • Center of mass sits at about 0.55 × standing height, so a shorter athlete carries it lower and has more leverage.
  • Rotational inertia scales with mass × height². A 5-7, 190-lb back has about 34% less than the reference, so the back turns tighter.
  • Square-cube law: strength scales with height², mass with height³, so force per pound scales with 1 ÷ height (about 10% more for the 5-7 back).
  • A leg swings like a pendulum, so natural stride frequency scales with √(1 ÷ leg length) (about 5% faster).

Joint angles

Members get Roboflow pose reads with the YOLOv8x model, the same one behind the Speed Doctor videos: one cropped still frame goes to Roboflow and 17 body points come back. For live tracking while the clip plays, and once a clip’s Roboflow reads are used, Google’s MediaPipe Pose runs on your device and finds 33 points. Either way Elytics picks the athlete (box the athlete first in wide shots) and measures:

  • Trunk lean: the line from the hip midpoint to the shoulder midpoint, measured from vertical.
  • Knee angle: hip–knee–ankle. 180° is a straight leg.
  • Shin angle: the knee-to-ankle line, measured from the ground.
  • Thigh split: knee–hip–knee, the angle between the thighs.
  • Elbow angle: shoulder–elbow–wrist.
  • Hip angle: shoulder–hip–knee. 180° is standing tall.
  • Knee line (front or back view): how far the knee sits inside or outside the straight line from hip to ankle.

When the face is visible, Elytics also tells forward lean from leaning back, which matters at a long jump takeoff.

These are 2D angles in the plane of the image. A side-on camera reads them best. A camera behind the athlete hides forward lean almost completely, and high broadcast angles distort everything. When the model can’t read the athlete (low, tangled in contact, blurred), use the hand tools: rings, path arrows and three-click angles are labeled as hand markups, never as pose.

What coaches often look for: a forward lean around 30° or more while accelerating that rises to nearly upright at top speed; a push-off knee close to full extension (150° to 178°); a big thigh split at top speed; and a loaded knee with the feet under the hips when slowing down.

What to work on

Recommendations come from fixed rules, not guesses. Each rule compares a number from the clip with a target range for that part of the movement and, when it’s off, suggests drills. Strengths show up too, like a tall posture at top speed. They’re starting points for training, not a diagnosis.

The camera angle decides which rules run. Side-on clips get the posture and joint checks (lean, push-off, thigh split, knee bend on cuts, stops and landings). Front-on or from behind clips get the knee checks: whether a knee caves inside the line from hip to ankle on landings, stops and cuts. High or wide broadcast angles get the timing rules only, because 2D angles from those views can be badly off.

The full rule list loads here.

Athlete profiles and progress

Save a clip to an athlete’s profile and the next analysis of that athlete gets three more kinds of feedback:

  • Progress. The main numbers are compared with the last saved clip of the same movement: the final split, top speed and first split for sprints, height, push time and push force for jumps, plus the key angles when both clips were filmed from the same angle. Changes smaller than about one video frame (0.04 s), 0.3 mph, 1 inch or 4 to 5° count as “about the same” and aren’t called out.
  • Flags that keep coming back. A flag that also showed up in the athlete’s last few sessions is marked and moved to the top. After the third time, its drill list starts with a different drill so the athlete isn’t stuck on one that isn’t working.
  • Fixed and goals. A check that was flagged before and passes now is marked as fixed. Set goals on the athlete’s page (a 40 split, a top speed, a vertical) and every saved clip shows how far there is to go.

The profile saves numbers, angles, flags and your notes, never the video. Each clip and movement is saved once; saving the same clip again replaces it.

Drill library

The drills behind every recommendation, grouped by what they train.

The drill library loads here.

What Elytics won’t do

  • It won’t name an athlete, a game or a stat for you. What you type is what goes on the card.
  • It doesn’t produce official times. Hand-marked video timing is for coaching and content, not for a recruiting profile’s verified 40.
  • It doesn’t upload your clip. The physics, on-device pose and the video render run on your device; a Roboflow read sends only the one cropped frame you measure.

Analyze a clip