Skip to content

Motion, measured with a camera

Detect the body, measure range of motion in degrees, count reps and correct form live. No sensors, no extra hardware. iOSAndroid · soonWeb · soon
import KinesiaMotion
import KinesiaMotionVision
let session = MotionSession(exercise: ExerciseLibrary.elbowFlexion, side: .right)
session.start(with: VisionPoseProvider(camera: .front))
for await event in session.events() {
if case .repCompleted(let rep) = event {
print("Clean rep: \(Int(rep.peak))°")
}
}

Measurements in degrees

Flexion, angle from vertical and tilt, computed on the 19 body points that Vision detects.

Reps and holds

Counts reps with hysteresis (no false positives from jitter) and times held positions with a clock that restarts if the patient moves.

Live form checks

Each exercise comes with form rules (“keep your upper arm still”, “keep your trunk upright”). Reps done with poor form are rejected, not counted.

Exercises as data

An exercise is plain JSON: add a new one, or download it from your server, without touching the engine.