tennis3d — Shot Labeler

no clip loaded

New here? Labeling is a 4-step loop

  1. Load a video (the “Video” picker, top-left). Its fps is auto-detected from the video — just confirm it in the Clip metadata panel below.
  2. Scrub to the contact frame — the exact frame the racket meets the ball. Drag the time bar under the video to move fast, jump ±1s with ⇧←/⇧→, then fine-tune with / (±1) and ,/. (±5).
  3. Press Enter to mark a shot at that frame.
  4. Tag it with one key each: player 14, stroke q w e r …, spin 70, outcome u i o p … (see the cheatsheet →).
Repeat for every shot, then Export JSON and save it into labeling/labels/. Your work autosaves locally as you go. This box disappears once you load a video.
frame 0 / 0 time 0.000s speed 1.00×

Clip metadata

Active shot

Shots

0 shots
Tab / Shift+Tab to select
idcontactplayerstrokespinoutcome