Atomoss — The Sweet Science Effect

A boxing platform for web and mobile, powered by Jab AI — a custom camera-only movement model my co-founder and I built from scratch.

Jab AI camera-only boxing intelligence

Atomoss started with a conversation between my boxing coach and me: boxing training should leave a trace. The rounds you finish, the work you repeat and the progress you earn should become something you can see and build on. He became my co-founder, and we started building that idea together.

He brings the perspective of a coach who understands how boxers actually move and train; I bring the product and engineering side. Together, we turned that experience into a connected product: a mobile training app, community and pixel-fighter Arena, plus a website with accounts, boxing news, a leaderboard and store.

The hardest part was not counting movement. It was teaching a model when not to count.

Jab AI

We wanted a boxer to put down their phone, step into frame and train without a watch, glove sensor or uploaded video. There was no model that matched that product, so we built our own from scratch: the dataset, feature pipeline, temporal architecture, calibration tools and native mobile runtimes.

A real combination replay. The pose tracker follows the boxer while the model classifies each hand through time and refuses non-jabs.

From footage to a 139 KB model

We recorded and curated boxing footage, then annotated punch intervals, physical hand, punch type and hard negative movement. Recording cohorts stay together in one split so the model cannot look better by seeing the same session in training and validation.

88
recorded pose streams
37,192
training windows
25,480
model parameters
139 KB
on-device model
01

See the body

The camera turns each frame into a pose stream. Eight upper-body joints — shoulders, elbows, wrists and hips — carry the signal the model reads.

02

Remove the camera

We centre every pose on the shoulder midpoint and scale it by shoulder width, so distance from the phone and body size do not become shortcuts.

03

Read movement

A one-second causal window is resampled to 24 steps. The model sees guard, extension and return — not a single frozen pose.

04

Refuse the wrong punch

Two prediction heads ask separate questions: is a punch peaking, and is it a jab? A hook can clear the first and still be rejected by the second.

The result is a two-component causal temporal model with 25,480 parameters. At 139 KB it runs on the phone beside the camera and the rest of the app. No training video has to leave the device.

Conservative by design

A generous counter feels good for one round and destroys trust by the third. Jab AI is tuned in the opposite direction: uncertain movement is ignored instead of becoming a flattering fake count.

95.9%
precision
71.9%
recall
67 ms
median latency

Those are validation results for the current jab-only beta, not a claim that the problem is finished. Profile views remain the hardest case, and we keep a held-back test cohort sealed until the validation gates are strong enough. The model page on the Atomoss website exposes the architecture, corpus and limitations instead of hiding them behind a single accuracy number.

The product around the model

Jab AI turns camera input into verified work. The mobile app gives that work somewhere to go: a training catalogue, session history, a boxing community and an Arena where real training grows a pixel fighter's strength, stamina and style.

Atomoss mobile community feedAtomoss mobile training catalogueAtomoss mobile Pixel Arena fight

On the web, the same identity carries into the leaderboard, news, profile and store. We built Atomoss as one product across React Native, Next.js, native camera inference and a shared backend — not as a disconnected model demo.

Other side projects

Back to home