Skip to main content

Web SDKs

PoseTracker ships browser packages alongside the React Native offline/light SDKs. Web packages always use the light delivery model: TensorFlow.js + a remote modelUrl (no MoveNet weights in npm). Product line: pose-estimation-web.
Status: published on npm as v0.2.0. Source: pose-estimation-web · pose-estimation-web-react. Parity target: RN package @pose-tracker/react-native-pose-estimation-light.

Install (npm)

Script tag (CDN)

Load TensorFlow.js first, then the PoseTracker IIFE. Global: window.PoseTracker.
Default MoveNet URL: https://app.posetracker.com/scripts/tmp_model_to_remove.json

Input sources (v0.2)

Default is camera. Full tables, RN parity, CORS, and copy-paste samples: Media sources. React: <PoseCamera source="video" sourceFile={file} /> (or sourceUrl).

What works (V1 / V0.2)

  • MoveNet Lightning keypoints (getUserMedia + canvas overlay)
  • Uploaded video / still image pose estimation
  • BlazePose via optional peer or CDN (window.poseDetection / dynamic jsDelivr inject for IIFE)
  • Custom modelUrl (TF.js graph)
  • Free keypoints without API key; plan-gated watermark
  • preload / warmup with coldStart: 'basic' | 'full'
  • configure(apiToken) handshake + remote engine download + sealed cache
  • startExercise / stopExercise + counter / posture / angles / jumps events
  • Features gating (angles, recommendations, progression, keypoints, minGrade)
  • Skeleton overlay via skeletonDef / skeletonUuid
  • Placement box during posture guidance

Try the examples

Browser deltas vs RN light

  • No WebView / Vision backends — native DOM video + canvas
  • AdaptiveChoice quality ladder is simplified (host idealWidth / idealHeight)
  • Engine cache uses localStorage (size limits) instead of native FS
  • Remote video/image URLs need CORS; prefer local File / blob URLs