Looking to standardize session KPIs — serve target adherence, rally-ball depth bands, and spin rate — across two indoor courts, but our Playsight setup only returns speed while SwingVision’s RPM swings ~±300 on identical feeds. Has anyone gotten consistent, exportable spin and ball-trajectory with timestamps from Wingfield or TrackMan that sync cleanly to coded video (Dartfish/Sportscode) for point-phase splits? I’m targeting ≤0.5 m depth error and stable RPM so we can model shot quality vs error rate over a 6‑week block.
On @Wingfield, hanging a matte blackout drape behind the far baseline was the one change that stopped RPM wobble and held depth error around 0.4 m on both indoor courts; flickery fluorescents were the culprit. > I’m targeting ≤0.5 m depth error and stable RPM (We hit that after the drape and locking exposure; the CSV timestamps then slate-sync cleanly to Dartfish with a single clap.).
Only setup that’s given me clean, exportable spin + trajectory with timestamps that line up in Dartfish on two indoor courts is @TrackMan iO — export with the ‘time’ column and do a single clap on camera to zero the sync. It’s pricey and demands flicker‑free LEDs or a shutter locked to mains, but then RPM variance stays sane (none of the ±300 you’re seeing with SwingVision): https://www.trackman.com/tennis.
To get clean sync to Dartfish, we stopped chasing RPM settings and synced clocks: with @TrackMan iO we show https://time.is on a phone in frame for two seconds before the first ball, then offset by time‑of‑day so spin/trajectory line up within a frame. Minor caveat: if NTP drifts, pop the phone flashlight in frame at a changeover as a second anchor.
Had the same “±300” swings on SwingVision; what steadied it for us was forcing 60 fps with anti‑flicker matched to mains, fixing exposure fast (about 1/1000), and using practice balls with a thin Sharpie seam band so the app can lock rotation better across two indoor courts. For Dartfish sync, we still do an NTP slate, but I also set the offset off a loud ball tap on the baseline so we don’t need a screen in frame every time.
On @TrackMan iO, we export the CSV and in Dartfish set a fixed court offset by aligning the first serve’s audio peak to the CSV’s first impact time; after that, spin and bounce depth stay synced clip to clip. Small caveat: swapping ball models nudged our RPM by about 100–150, so we standardized on one ball and recheck the offset after any camera move.
Wingfield Pro’s CSV finally stabilized spin; we sync to Dartfish using Tentacle Sync, @brett_h76. Needs bright, even lighting.