Making AI Pose Estimation Run Offline on an Athlete’s Phone with MediaPipe
BeONE Sports, a US sports-tech company, had a working AI pose estimation model that ran on desktop machines. They needed it working on athletes’ phones to give usable technique feedback right where they trained. In 2022, the company partnered with MobiDev to build an iOS application that processes data from custom AI Pose Estimation models, performs video rendering, and provides in-app purchases. Using MediaPipe, we got the analysis running locally and offline, returning results with minimal latency.
After the successful launch of the app in 2023, we provided on-demand support, including a Kubernetes upgrade that cut their AWS costs by 20%.
The Story Behind Building an App for AI Pose Estimation
A custom AI Pose Estimation model built by BeONE Sports’ internal team worked perfectly on desktop. Now, the key challenge was to provide coaches and athletes with AI-driven training analysis directly on their smartphones.
A desktop-class model assumes memory, compute, and thermal headroom that mobile hardware cannot provide. Video workloads compound all three constraints, since each frame requires a separate inference pass. And the app had to keep working with no connection, on the mid-range and older devices most young athletes actually carry.
Scott engaged MobiDev to cover the development of an iOS application that processes data from custom AI Pose Estimation models, performs video rendering, and provides in-app purchases.
Business Value of the AI Pose Estimation Platform
MobiDev deployed and launched the BeONE Sports app in 2023. The analysis running directly on the smartphone provided BeONE Sports with an opportunity to grow their customer base and gain industry recognition. Our continued cooperation also helped the app improve its performance. In particular:
- The BeONE Sports team engaged with pro athletes like Stacy Sykora, Mike Hollis, Michelle Focam, Cash Peterman, Cheyenne Parker, and Zack Granite, so young athletes could compare their own form against professionals.
- BeONE Sports partnered with several organizations to increase their potential user base, young athletes, like the Lone Star Classic tournament in Dallas (an event that brings together 20,000 athletes, coaches, and parents across three weekends) and Rice University (bringing 400+ student-athletes plus 100 coaches and trainers).
- BeONE Sports was named one of the TOP 10 AI Sports-Tech Startups of 2024.
- After the investigation of a sudden spike in AWS billing, MobiDev’s analysis revealed that an outdated Kubernetes version was being charged under AWS Extended Support, and updating it led to a 20% reduction in infrastructure expenses.
Project Scope of the AI Pose Estimation App Development
MobiDev’s and BeONE’s cooperation had several stages. We assigned a dedicated team that consisted of 5-8 experts depending on the project needs. They worked alongside BeONE Sports’ in-house ML team.
Stage 1. Consulting. Business and technical analysis before any code. Our experts finalized project requirements, updated the client’s design assets, and evaluated the options for architecture and core technologies.
Stage 2. MVP build (iOS). The pose estimation processing pipeline on MediaPipe, video rendering, and in-app purchases, on a Kubernetes-backed AWS backend chosen for autoscaling.
Stage 3. Launch and iteration. App Store release in 2023, followed by several version updates as the professional athlete library and the sport-specific AI Actions grew.
Stage 4. On-demand support and cost optimization. The cooperation moved to an on-demand model, with our experts available on request. The AWS Extended Support investigation and the 20% infrastructure cost reduction happened in this phase.
Deliverables
Across four years, MobiDev delivered:
- Native iOS application (iOS 15.0+, SwiftUI + UIKit) published on the App Store.
- Pose estimation processing pipeline built on MediaPipe, with offline video processing.
- Video rendering that splits a clip into segments, scores each attempt, and overlays a “skeleton” of the athlete’s key body points.
- “Ghost” comparison overlay, drawn either from the professional athlete library or from the user’s own performance history.
- Personalized recommendations generated from the analysis.
- In-app purchases and subscription handling via the Apple Developer Program.
- Kubernetes-based AWS backend with horizontal autoscaling for spike loads.
- QA coverage across the supported device matrix.
- Ongoing on-demand support, including cloud cost optimization.
Tech Stack
Build Your Fitness Product
Fill out the form and share your vision for your product. Our experts will get back to you within 1 business day.
FAQ
BeONE Sports came to us in 2022 with pose estimation models that ran on a desktop. The app shipped to the App Store in 2023. That window covered a full consulting stage before any code, the iOS build, the processing pipeline, video rendering, in-app purchases, the backend, and QA across the supported device range.
The model is rarely what sets the timeline. What sets it is how much of the product around the model doesn’t exist yet: subscriptions, media handling, accounts, release management. We scope that before development starts, so the date you commit to is based on a plan rather than an estimate made before anyone looked at the code.
The whole product. For BeONE Sports our team built the iOS app, the MediaPipe processing pipeline, video rendering with segment scoring and the skeleton overlay, the ghost comparison against the professional athlete library, personalized recommendations, in-app purchases through the Apple Developer Program, and the Kubernetes-backed AWS infrastructure.
BeONE’s in-house team kept doing what only they could do: the models and the training methodology.
No. BeONE Sports’ pose estimation models were built by their internal ML team and stayed theirs. We built the application, the processing pipeline, the rendering, the backend and the infrastructure around them.
Since the analysis runs on the device, the model executes inside the app, so we integrate the artifact you give us and work against its inputs and outputs. We don’t retrain it, we don’t need your datasets, and we don’t need the research behind it.
You have the veto, we do the evaluation. MediaPipe was confirmed for BeONE Sports during the consulting stage, against three requirements the client set: offline video processing, one codebase across operating systems, and processing fast enough that an athlete doesn’t walk away before the result appears.
If your team has already committed to a runtime, we build against it. If the choice is still open, we bring the options with the trade-offs attached.
That was a requirement from the start, not something we discovered late. Young athletes carry mid-range and older devices, and an app that only performs on current flagship hardware cuts off most of the market.
MediaPipe was chosen partly because it handles high-dimensional video efficiently enough to stay usable on constrained hardware. In addition to this, it works fast on CPU and doesn’t require GPU. Analysis returns in about half the length of the clip, so a 20-second attempt comes back in roughly 10 seconds. QA covered the supported device range rather than two or three recent phones.
BeONE Sports partnered with the Lone Star Classic in Dallas, which brings together 20,000 athletes, coaches and parents across three weekends, and later with Rice University and its 400+ student-athletes and 100+ coaches and trainers. Load like that arrives in spikes tied to a calendar, not as a smooth curve.
We built on Kubernetes for that reason. It adds containers as demand climbs and releases them when it drops, so you aren’t paying year-round for peak-weekend capacity.
That’s decided at the start or paid for later. MediaPipe was selected for BeONE Sports partly because a single processing codebase deploys across operating systems, with iOS first and Android and web planned after. The processing layer carries over. You rebuild the interface, not the pipeline.
If more than one platform is on your roadmap, say so during consulting. It changes the framework choice.
The BeONE Sports team ran at 5-8 specialists and flexed with the phase. After launch and several version updates, the engagement moved to on-demand support, with our experts available when the client asks.
One of those requests was to investigate a jump in their AWS bill. Their Kubernetes version had entered AWS Extended Support, which carries a significant price premium. Updating the cluster and connected services took 16 hours of work and cut infrastructure spend by 20%.
The cooperation has run from 2022 to now on that basis. Across our client base, average retention is 5+ years, and more than half of our clients have stayed 8+ years.
More than a score. In the BeONE Sports app MobiDev built, the analysis of each frame, scores each attempt, and draws a “skeleton” of the athlete’s key body points over the footage. You can then add a “ghost” overlay (either a professional athlete from the app’s library or your own earlier attempt) and compare the two directly. Each analysis ends with personalized recommendations rather than a raw number.
In most cases, yes, and the BeONE project is the same problem approached from the other side. The client owned the pose estimation models; MobiDev built the production layer around them: processing pipeline, video rendering, device support, autoscaling backend. If your app already has users and revenue, the risk usually isn’t whether the model works. It’s whether your video pipeline, storage and infrastructure can absorb what the model does to them.
We used MediaPipe on BeONE Sports because it matched three requirements at once: operating on multiple platforms, offline video processing, and high data processing speed. The iOS app came first, with Android and web planned later. MediaPipe allows the deployment of a single codebase across different operating systems, which cuts the development timeline and keeps functionality consistent across platforms instead of drifting apart in two separate implementations.
That’s how the BeONE cooperation has run since 2022. The client’s team owned the pose estimation models. MobiDev’s dedicated team of 5-8 owned the iOS app, backend, cloud infrastructure, and QA. The split works when the interface between model and product is agreed before anyone writes product code, which is what our consulting stage was for: requirements, design assets, architecture and technology choices, settled first.
Consistency matters more than precision. Athletes improve on repeatable, comparable feedback (the same joint angles measured the same way on every attempt), not on a decimal place. The accuracy work that actually pays off is defining what to measure per sport action; BeONE Sports ships five distinct Volleyball AI Actions rather than one generic “form score”. Set a target per action, validate it against how a coach would judge the same attempt, and don’t chase a headline accuracy percentage that means nothing to the user.
Three things, in this order: compute for processing, storage and egress for the video itself, and the version of everything you’re running. The third one is the one nobody watches, and it’s what caught BeONE: a supported version quietly becoming an extended-support version. Push processing onto the device where the model allows it, set retention rules on stored footage, and put a calendar reminder on your managed-service version support dates.
Fast enough that the athlete hasn’t moved on. On BeONE Sports, a short clip returns results within a few seconds. That threshold isn’t cosmetic: if the analysis is slower than the attempt itself, athletes stop using it between reps and the product turns into a review tool nobody opens.
The build cost is driven by how much of the AI you already own, how many sports or actions you need on day one, and how wide your device support has to be. The run cost is more predictable than most founders expect, and it’s manageable — the BeONE infrastructure got 20% cheaper in 16 hours of work once someone looked at it properly.
It changes shape. BeONE Sports has been a MobiDev client since 2022: a dedicated team of 5–8 experts through consulting and the build, several version updates after the 2023 launch, then an on-demand model where our experts are available on the client’s request — which is how the AWS cost investigation happened three years in.
QA sat inside the dedicated team on this project, not at the end of it. For a computer-vision product, that means several things regular app testing doesn’t cover: testing across the actual device matrix you promised to support, including older phones, different cameras, different distance from cameras, different type of lighting, various actions, and checking that model output stays stable when you change the app around it. 91% of MobiDev engineers are middle or senior level, which matters more on this kind of work than on a CRUD app — there’s no cheap way to debug a rendering pipeline that only misbehaves on one generation of hardware.
It depends mostly on one thing: whether you already own a working model. BeONE Sports did, and the project still ran a full consulting stage before development, launching on the App Store in 2023 after starting in 2022. If you don’t have a model yet, add model selection, data ,collection and validation before any product timeline is meaningful. Anyone quoting you a duration before they’ve seen your accuracy requirements and device matrix is guessing.