Film yourself pedaling for about 20–30 seconds. The analyzer reads your body position in every frame, measures the angles used in bike fitting, and shows you which parts are already right and which ones still need adjusting. Everything runs in your browser. Your video is never uploaded to a server.
How it works
The analyzer uses Google's MediaPipe Pose, which runs directly in your browser. All the processing happens on your own device, so your video is never sent to a server.
Put the camera square to your side, roughly at hip height. Pedal at a steady rhythm for about 20–30 seconds. If you have a turbo trainer, the result is usually more consistent.
The AI detects your shoulder, elbow, hip, knee, ankle and other body points in every frame. It automatically picks the side of your body that's most visible and ignores frames that aren't clear enough.
The analyzer then measures the key angles, compares them against the ranges used in bike fitting, and gives you advice in plain language.
Any bike
What gets analyzed is your body position, not the bike. You pick the bike you ride (road, MTB, gravel, TT, hybrid, or e-bike) and the target angles adjust to how that bike is normally ridden. The saddle-height measurement uses the same reference on any bike.
What good looks like
A good bike fit isn't only about power. The right position also keeps you comfortable and in control.
At the bottom of the stroke your knee should still be slightly bent. Too much bend usually means the saddle is too low. Almost fully straight means it's probably too high, which is when the hips start rocking and the Achilles takes more load.
Low enough to be efficient and aero, but high enough to breathe and stay comfortable for the length of your ride.
Your elbows shouldn't be locked straight. A slight bend absorbs vibration, makes the bars easier to control, and takes pressure off your hands.
A reach that fits keeps your shoulders relaxed, without feeling stretched out or cramped.
A pelvis that stays level and doesn't rock side to side. Rocking usually means the saddle is a touch too high.
Knees driving straight up and down over the pedals, not diving in or bowing out — a cleat and stability cue.
The measurements
Measurements are taken at the bottom of every pedal revolution, then summarised across all the strokes using the median, so one blurry frame can't affect the final result. Each angle is graded green / amber / red against ranges from the Holmes method and dynamic-fit research.
The side view is the most accurate, especially for setting saddle height. The reach-related angles are still useful, but they need more careful interpretation because they come from 2D video.
| What it measures | Target | Reliability |
|---|---|---|
| Knee at bottom of strokeSaddle height. Too bent = saddle low; nearly straight = saddle high. You get a specific mm adjustment. | 30–40° | High |
| Torso from horizontalHow aggressive your position is — front-end height and stack. | 40–50° | Medium |
| Elbow bendLocked-out vs. softened arms — comfort and shock absorption. | 15–30° | Medium |
| Shoulder angle (reach)How stretched-out you are to the bars. Treated cautiously — don't swap a stem on one clip. | 80–95° | Soft |
| Hip at top of strokeInformational reference — depends heavily on flexibility and reach, so it's shown but not graded. | 85–110° | Info |
Treat the front and rear readings as extra hints. For adjustments that really matter, the side view is still the one to rely on.
| What it measures | Tells you | Reliability |
|---|---|---|
| Knee tracking (FPPA)Frontal-plane projection angle — whether your knee dives in or bows out through the stroke. | Cleat / stability cues | Beta |
| Pelvic rockPeak-to-peak tilt of your hip line across the stroke — often a saddle-too-high sign. | Saddle height / stability | Beta |
| Left/right symmetryWhether the two sides move evenly. | Imbalance cues | Beta |
More features
All the analysis happens directly in your browser, with no upload step.
Uses your GPU via WebGPU when available and automatically falls back to CPU/WASM on older browsers, so it works widely.
If your clip isn't square-on — which stretches or squashes the angles, especially reach — it warns you to re-film instead of trusting a skewed reading.
Technology
This is what actually runs when you drop in a clip, and the reasoning behind a few of the design choices.
Google's on-device pose model finds 33 body landmarks per frame. It's browser-native and Apache-2.0 licensed — no server, no install.
Runs on your GPU where supported for speed, and automatically drops to CPU/WASM elsewhere so it still works.
Instead of playing the video, it seeks frame-by-frame so every frame is sampled — no undersampling on slow hardware, no stalls in a background tab.
Angles are measured at the bottom of every pedal stroke, then the median is taken. One blurry frame or a bad stroke can't move the result.
It locks onto the leg closest to the camera using confidence over the whole clip, and ignores joints the model isn't sure it can see — so an occluded far leg never poisons the numbers.
Green/amber/red thresholds come from the Holmes method and dynamic-fit research, not arbitrary guesses.
The knee angle is the most consistent measurement, because it's the easiest to read from a side-on video. Torso and elbow are fairly stable too, while the reach-related angles are less precise, because 2D video can't capture depth properly. This is still a proof of concept and it can't replace a 3D bike fitting system. But for finding the clearly visible problems, like a saddle that's too high or too low, it's genuinely useful. If you do adjust something, change one thing at a time and re-film.
FAQ
No. All the pose detection and calculation happen directly in your browser, on your own device. Your video is never uploaded to a server, no account is needed, and no data is sent while the analysis runs.
Almost any bike — road, mountain (MTB), gravel, TT/triathlon, hybrid, commuter, or e-bike. What gets analyzed is your body position, not the bike. The target angles follow the bike type you select, though very aggressive or very upright positions still have limits when they're only seen through 2D video.
Accurate enough to find the obvious problems, like a saddle that's too high or too low. The knee angle is the most consistent measurement, while reach is the least precise. This is still 2D analysis and it can't replace a professional 3D bike fitting.
Film about 20–30 seconds with the camera square to your side and at hip height. Pedal as you normally would, at a steady rhythm. With a turbo trainer and enough light, the result is usually more consistent.
Yes. The analyzer runs in modern browsers on both phones and computers. Devices that support WebGPU will process the video faster, while older ones fall back to the CPU. That can be a little slower, but it still works.
Yes, it is completely free to use. The full source is published so you can see exactly how it works and check the privacy claims for yourself — read the code on GitHub. It is source-available rather than open source: you are welcome to read it, learn from it and use the tool, but not to build a competing product from it.
Not yet. This tool is built to help you run a basic check and find the clearly visible problems, before you adjust anything yourself or go to a bike fitter. For a genuinely precise result — especially if you have pain or specific fitting needs — a professional session is still the better option.
This tool exists to help more people run a basic bike fit check for free. The result is a starting point — something to work from before you adjust things yourself, or before you book a session with a professional fitter. Because it only uses 2D video analysis, it has real limits and it can't replace an in-person bike fitting. If you're a bike fitter, or you have feedback from actually fitting people, I'd be very glad to hear it on GitHub.
Made by
I ride, and I was curious whether basic bike fitting could be made easier to get to. This project came out of that curiosity and turned into something anyone can use for free.
Follow on StravaAlso by the creator
Deeper cycling data and performance analytics to turn your rides into insight. If this fit tool is useful, you'll want to check out Ascent.
Explore Ascent AnalyticsDrop a clip and get a graded read in under a minute — free, in your browser.
Launch the analyzer