Add real-time movement
intelligence to any fitness app

Rust-powered core + native SDKs for iOS, Android, Web, React, and React Native. Detect movement, score form, count reps, generate coaching feedback, and ship camera-based training experiences without building the biomechanics layer from scratch.

Ships everywhere
iOSAndroidWebReact NativeRustWASM
174°
8reps
172°knee
93
FORM
Tempo2.4s
Symmetry98%
Depthfull
FRONT CAM - 1080p
usePoseSession.tsx
const session = usePoseSession({
exerciseJson: squatConfig,
exerciseType: "dynamic",
onFrame: (r) => {
setScore(r.formScore);
setReps(r.repCount);
setHints(r.coachingHints);
},
});
Built for teams shipping camera-based training products
Rust core
Single shared scoring engine
On-device by default
No frames leave the phone
Detection-agnostic
Any landmark source
Native SDKs
5 platforms, one API
Bring your own model
MediaPipe, MoveNet, custom
Real-time scoring
Per-frame, sub-frame latency
The architecture

One engine. Every platform. Consistent movement feedback.

A deterministic pipeline turns any landmark source into structured scoring, feedback, and analytics - identical across every SDK.

STAGE 1 - INPUT
Camera / Video / Raw Landmarks
33 landmark input
STAGE 2 - PROVIDER
Detection Provider
MediaPipeMoveNetcustom
STAGE 3 - CORE
Rust Scoring Core
Joint anglesForm evaluationEMA smoothingRep FSMSafety rulesMuscle activationTempo / asymmetry
STAGE 4 - RESULT
FrameResult
scorerepscoaching hints
STAGE 5 - OUTPUT
SDK UI / Your App
overlaysHUDanalytics
The build cost

Movement apps are hard to build from scratch

01
Detection is only the first 20%
Pose detection gives you keypoints. Product-grade scoring needs biomechanics logic on top - and that's the hard part.
02
Every platform reinvents the stack
Camera handling, inference, rendering, and native performance have to be re-solved for iOS, Android, and Web.
03
Rules & calibration take months
Exercise definitions, calibration, rep counting, hints, and safety checks are slow and easy to get wrong.
04
Parity is expensive to maintain
Keeping scoring identical across iOS, Android, Web, and React Native drifts the moment teams ship independently.
Build-it-yourself
Camera glueInferenceSmoothing?Rep logicHint rulesSafetyRendereriOS portAndroid portWeb port
One Pose SDK pipeline
01Detection provider
02Rust scoring core
03Native SDK + UI
Core capabilities

Everything between keypoints and product

01

Form scoring

0.00.921.0

Score every frame from 0.0 to 1.0 using joint-level tolerance rules and smoothed confidence.

02

Rep counting

topdescendbottomascend

Dynamic exercise tracking with phase / state-machine logic for reliable rep detection.

03

Coaching hints

Knees aligned
Go deeper
Neutral spine

Convert joint deviations into actionable feedback: alignment, posture, depth, and visibility guidance.

04

Safety checks

Knees past toes
Rounded back
Camera angle

Detect movement risks like knees past toes, rounded back, poor alignment, and bad camera position.

05

Muscle activation

quads 0.81glutes 0.64

Render target muscle engagement and build richer workout feedback experiences.

06

Session analytics

reps 24avg 0.89hold 3.1s

Track tempo, asymmetry, hold duration, score history, reps, and exportable session data.

Native SDKs

Ship native experiences without rebuilding the engine

Thin platform wrappers around one shared Rust core. Same scoring, same results - idiomatic on every platform.

Drop a PoseSessionView into SwiftUI and read frame results natively.
iOS / SwiftUI - integration
let session = PoseSession(config: PoseSessionConfig(
exerciseJson: squatJson,
exerciseType: .dynamic
))
 
PoseSessionView(session: session)
.onFrame { result in
score = result.formScore
}
93
FORM
8reps
FRONT CAM
Performance

Rust scoring in microseconds, not milliseconds

The scoring core runs in microseconds once landmarks are available, and native inference fits comfortably inside a 30fps frame on iPhone-class hardware.

1.8µs
avg Rust scoring - iPhone
2.0µs P95 - native FFI
8.4µs
avg Rust scoring - Android
10µs P95 - JNI fast path
4.8ms
iPhone landmark inference
CoreML / ANE - ≈208 fps
~30ms
full iPhone pipeline
under one 30fps frame
Native inference throughput
1000 / frame-time

Our direct native inference path across delegates - the same model running on real devices.

iPhone - CoreML / ANE
4.8ms / frame
208fps
iPhone - Metal GPU
5ms / frame
200fps
iPhone - CPU (4 threads)
13.3ms / frame
75fps
Android - TFLite GPU
31.2ms / frame
32fps
One 30fps frame budget
33ms

Where an iPhone frame goes. Compute is a sliver; the rest is headroom for capture, rendering, and your UI.

~28ms headroom
0.007%
of pipeline latency is scoring. Inference dominates - the Rust layer is effectively free.

Benchmarks use static-image inference and native FFI scoring paths. Results vary by device, model, delegate, and camera pipeline.

Detection-agnostic

Use our full pipeline or bring your own detection

The Rust core accepts normalized landmarks. Use a built-in provider, or plug in MediaPipe, MoveNet, Apple Vision, YOLO pose, custom ML, prerecorded video, or raw landmark streams.

MediaPipeMoveNetApple VisionYOLO poseCustom MLVideo replay33landmarksPose CoreRust - deterministicscorerepshintssafetymetrics
Where it fits

Built for products where movement quality matters

91
"deeper squat"

AI fitness coach

Live form scoring and spoken coaching cues that adapt to every rep.

Dance & game scoring

Match player movement to a reference track and score timing and accuracy.

ROM78%
hold5.0s
symmetry0.94

Physiotherapy & rehab

Track range-of-motion, hold time, and symmetry for guided recovery.

0.06slaunch delta

Sports technique analysis

Break down launch angle, tempo, and asymmetry for athletic technique.

1,284sessions / wk

Enterprise wellness

Remote coaching and movement programs across a distributed workforce.

Developer experience

Designed for teams that need control

Prebuilt binaries - no Rust toolchain required
Raw landmark mode for custom detection
Exercise specs defined as portable JSON
Custom skeleton themes and overlays
Session recording and replay
Native performance across every platform
Thin SDK wrappers around shared core logic
Package layout
pose-coreRust
pose-engineRust
@pose/webTS
@pose/reactTS
pose-iosSwift
pose-androidKotlin
@pose/react-nativeTS
Where it lands

More than pose detection

Capability
Basic pose model
In-house prototype
Pose SDK
Camera integration
partial
partial
Cross-platform SDKs
Form scoring
partial
Rep counting
partial
Exercise rules
partial
Coaching hints
Safety checks
Session analytics
partial
Custom providers
partial
partial
Production UI components
FAQ

Questions teams ask before integrating

The short version: Pose SDK is built to sit between whatever pose detector you trust and the product experience your users actually see.

What platforms does Pose SDK support?

Pose SDK provides a Rust core with native SDK paths for iOS, Android, Web, React, and React Native.

Can Pose SDK work with custom pose detection?

Yes. The scoring core accepts normalized landmarks, so teams can bring MediaPipe, MoveNet, Apple Vision, YOLO pose models, custom ML, video replay, or raw landmark streams.

Does Pose SDK send camera frames to a server?

The SDK is designed for on-device processing by default. Camera frames can remain on the device while structured movement results are exposed to the app.

What is included in the SDK?

The SDK includes scoring logic, rep counting, exercise rules, coaching hints, safety checks, session analytics, platform wrappers, and optional UI primitives.

Can teams use only the scoring core?

Yes. Teams can use the raw landmark scoring path when they already have camera, inference, or replay infrastructure and only need the movement intelligence layer.

How fast can we evaluate it?

After a technical walkthrough, evaluation access can be provisioned with guidance on the best integration path for your stack and target platforms.

Get started

Build your movement product on top of a real scoring engine

Tell us what you are building. We will help you choose the right SDK path: full camera pipeline, raw landmark scoring, native mobile, web, or React Native.

174°
93
FORM
8reps
FRONT CAM - 1080p
30-minute technical walkthrough with an engineer
SDK access provisioned within 48 hours
Help choosing the right path for your stack

Book a demo

~30 min - with an engineer

Prefer email? sdk@pose.dev - We reply within 48h