Air time jump (air_time_jump)

Measure vertical jump height from air time only (no user height required).

Measure vertical jump height from air time only.

This mode does not require userHeightCm.

See also:

Overview

What you get

  • Live jump detection and jump height estimates.

  • No explicit calibration step.

  • Height computed from a simple physics model.

Key features

  • Uses only hip keypoints (left_hip, right_hip).

  • Dynamic baseline keeps tracking robust without calibration.

  • Works in real time (/pose_tracker/tracking) and on video (/pose_tracker/upload_tracking).

Prerequisites

Required query parameters

  • exercise=air_time_jump

  • token=...

Optional query parameters

  • devicePitchDeg=... (number, degrees)

    • Accepted for consistency.

    • Height is driven by air time.

Tracking prerequisites (pose)

  • Both hip keypoints must be detected with score > 0.5.

  • The full body should be visible.

  • The camera must stay fixed.

Comparison: jump_analysis vs air_time_jump

Use this when user height is unknown.

Aspect
jump_analysis
air_time_jump

User height

Required (userHeightCm)

Not required

Calibration

Yes (stable standing β†’ baselineY + cmPerPixel from frame height)

No (dynamic baseline from recent frames)

Scale

Pixel-to-cm via cmPerPixel

Time-to-height via physics

Formula

jumpHeightCm = (baselineY - minY) * cmPerPixel

h = (1/8)*g*tΒ², then cm

Outputs

jumpHeightCm, deltaPixels, cmPerPixel, baselineY, minY

jumpHeightCm, airTimeMs, airTimeSeconds, baselineY, minY

Use when

User height is known; you want a scale tied to frame/user

User height unknown; you want a simple, physics-based estimate

Also see: Jump analysis (jump_analysis)

Exercise detection

Always pass exercise=air_time_jump to enable air-time jump mode.

API endpoints

Live (camera)

Base URL:

Example:

Upload Tracking (video)

Base URL:

Example:

Common optional flags on video:

  • export=true (keeps the last frame visible and enables export UI)

  • skeleton=true|false

  • keypoints=true (plan-gated)

PostMessage events

These events are sent from the iframe/WebView to your host app.

If you’re new to placement messages, read: Exercise Placement.

posture

jump_started

Sent once when upward movement crosses the trigger threshold.

jump_height

Sent during measurement and at the end of a jump.

Notes:

  • airTimeMs covers the full airborne duration (takeoff β†’ landing).

  • Unlike jump_analysis, there is no cmPerPixel field.

jump_summary (video)

Sent at the end of a video analysis.

Multiple jumps can be detected in a single clip.

Heights are in centimeters.

Air times are in seconds.

error

Placement overlay behavior

  • Uses the standard placement system (posture).

  • Baseline is computed dynamically from recent hip Y values.

  • Baseline can be locked when jump starts, and released after landing.

User flow

  1. Placement: wait for posture.ready=true.

  2. Jump:

    • Receive jump_started.

    • Receive jump_height updates.

    • Consider the jump complete when jump_height.final=true.

Measurement algorithm

1) Hip signal + baseline

  • Read left_hip and right_hip keypoints.

  • Require score > 0.5.

  • Keep a rolling window of recent hip Y values.

  • Use that window to estimate a dynamic baselineY.

2) Jump detection + landing

  • Jump starts when upward movement exceeds 20 px from baseline.

  • A few consecutive frames are required to avoid false triggers.

  • Landing occurs when hip Y returns within 20 px of baseline.

3) Air time

  • Measure air time t from jump start to landing.

4) Height from physics

Use the vertical motion relationship:

  • time up = time down = t/2

  • initial vertical velocity at takeoff: v = g * (t/2)

  • max height: h = vΒ² / (2g) = g * tΒ² / 8

Formula (meters):

Where:

  • g = 9.81 m/sΒ²

  • t in seconds

Convert to centimeters:

Integration examples

Web (iframe)

Upload Tracking (video URL)

When export=true, the last analyzed frame stays visible.

Best practices and limitations

Best practices

  • Use a high FPS camera when possible.

  • Keep the camera fixed and avoid motion blur.

  • Ensure clear landing visibility (hips must be tracked).

Limitations

  • This assumes a mostly vertical ballistic jump.

  • Arm swing and knee tuck can change air time.

  • Landing detection is hip-based, not foot-contact-based.

Last updated