AI Counts One Fewer Push-Up, and This Open-Source Demo Is Actually More Worth a Look
Jeremy Park uses ViTPose+ Large for push-up counting: shoulder displacement determines range of motion, an ankle-hip-shoulder line determines back straightness, and thresholds are adjustable. It lays the judgment process bare, so even its mistakes are inspectable.
Jeremy Park built a push-up demo. He thought he had done 25, but the computer vision counted 24. That missing one makes this demo more interesting than typical fitness AI.
What’s really useful is that the judgment process is visible, not just the counting. A panel below the video plots shoulder vertical displacement, back-line deviation, and the duration of each push-up. In the last two reps, the back line deviates from the reference straight line, and the chart shows the trace. The thresholds can also be adjusted, because everyone’s push-up looks different.
Technically, there’s no mystery: ViTPose+ Large outputs pose keypoints and is called through the VLM Run Gateway. Shoulder vertical displacement determines whether the range of motion is complete; the ankle, hip, and shoulder are connected into a line and compared with a straight-back reference to calculate deviation. General readers can think of it as a ruler, not a coach. It doesn’t diagnose form; it just lays out the quantifiable lines.
![]()
The code is in the open-source repository vision-demos. It contains more than push-ups: there are demos for pull-ups, running, rock climbing, and deadlifts too. The deadlift demo uses SAM3.1, ViTPose+ Large, and gemma to classify a straight or rounded back and give probabilities. The repository is Apache-2.0. The browser app can run most demos, but push_ups is not in the app, so you need to check the README in the push_ups directory. rock_climbing_3d is also not in the app. Running the app requires ffmpeg; anonymous access has rate limits, and entering a VLM Run key can raise the limit.
In the replies, someone asked whether a front-facing shot works. This approach uses a side-on clip, and the README says "side-on clip." A side shot makes the hip-ankle-shoulder line clearer. So far, I haven’t seen the author provide results for front-facing shots. Someone asked about squats and deadlifts; deadlifts are already in the repository, but I haven’t seen squats.
Alex Shev said in a reply that this example is useful because the measurement is inspectable: by exposing thresholds and the deviation chart, it becomes possible to adjust responsibly for different movement patterns. ziziran suggested using the peaks of the shoulder curve as bookmarks, so you can click to replay that rep. That suggestion is quite practical, especially for the 25-versus-24 dispute.
Hossein Mokhtarzadeh posted PoseIQ’s Push-Up Lab, which has a similar approach: side-on video, elbow-angle thresholds of about 150 degrees and 120 degrees, in-browser processing, and an explicit note that these are exploratory heuristics, not exercise standards.
Counting one fewer isn’t embarrassing. It’s the AI fitness demos that only give a single score that leave people unable to argue. This demo at least lets you see at which rep the back line starts to deviate. The code is open, and even its mistakes are inspectable.
发布时间: 2026-10-27 19:39