OnForm for tennis? Here's why we built tennis-specific AI instead

OnForm is a great generic video coaching app, but tennis isn't on its supported-sport list. Here's the honest breakdown of what's missing — and why.

OnForm is a genuinely good app. The drawing tools are precise, side-by-side comparison is smooth, and the pricing is fair. If you coach golf or swim, it's probably the right pick. The reason we didn't build AceSense on top of OnForm — and the reason a tennis coach won't be fully served by it — is that tennis isn't on OnForm's supported-sport list, and the generic-annotation workflow doesn't scale to a tennis match. A 90-minute hard-court match contains 150–250 shots. Hand-labeling each one in OnForm takes longer than playing the match. This post walks through what OnForm does well, where the tennis-shaped hole is, and why a tennis-specific pipeline (TrackNet → court keypoints → pose → CatBoost classification) does for tennis what OnForm's generic toolset can't.

TL;DR

  • OnForm is a strong generic video-coaching tool — its supported sports include golf, swim, gymnastics, baseball, dance. Tennis is not listed.
  • For tennis, the bottleneck isn't drawing tools — it's finding the shots.
  • A tennis-specific pipeline auto-labels every forehand, backhand, serve, volley.
  • AceSense is tennis-only by design. Different job from OnForm.
  • If you coach across sports → OnForm. Tennis-only → AceSense.

What OnForm does well

OnForm has a clear lineage. The team came out of the Coach's Eye world (TechSmith retired Coach's Eye in September 2022; OnForm's own comparison post makes the connection explicit). They kept what worked:

  • Frame-stepping playback — every frame matters when you're showing a swing flaw.
  • Telestration — lines, angles, freehand, shapes.
  • Side-by-side compare — student's swing next to a model's.
  • Voice-over recording — record commentary on top of the video clip.
  • Roster + sharing — coach assigns drills, student responds with video.
  • Free tier — a real one, not a trial.

For sports where the coaching loop is "watch one swing, annotate one swing, repeat," OnForm is excellent.

Where tennis breaks the model

Tennis is a high-volume-event sport. A single competitive match has 150–250 shots, each one a potential coaching moment. If your workflow is "review the whole match," you need three things OnForm doesn't provide:

1. Shot localization. You need to know when each shot happened — scrubbing through 90 minutes of video to find a backhand is not a workflow.

2. Shot classification. You need to know what each shot was — forehand, backhand, slice, volley, serve. Otherwise filtering "show me only my second-serves" is impossible.

3. Court geometry. You need a stable map of the court — where each shot landed, which baseline corner the player was at. Without that, heatmaps and zone analysis don't exist.

OnForm gives you the tools to display this once you've labeled it. It doesn't generate the labels. For tennis, that's the whole job.

A worked example: 90-minute match review

I ran the same 90-minute hard-court video through both workflows.

OnForm workflow:

  1. Import 4.2 GB MOV file (5 minutes upload).
  2. Watch through, manually marking shots. Average shot every 22 seconds → ~245 shots.
  3. Stop on each interesting shot, draw, save clip. Realistic — pick the 20 most important.
  4. Total time: ~75 minutes for 20 annotated clips.

AceSense workflow:

  1. Upload video (5 minutes).
  2. Wait for the analysis pipeline (returns in a few minutes per match-length video — RunPod GPU; see how it works).
  3. Open the report. All 245 shots pre-labeled, timestamped, classified by stroke type.
  4. Filter to "second serves landing in the deuce-side service box" — 23 shots, all clipped.
  5. Total time: ~10 minutes to the same insight.

This isn't a knock on OnForm. The features OnForm has are right for the sports they target. It's a knock on using a generic tool for a workflow that needs domain-specific automation.

Why we didn't build AceSense as an OnForm plugin

We considered it. The argument: leverage someone else's drawing tools, focus on the AI. The argument against (and the one that won):

  • Tennis-specific UX. A tennis report needs court overlays, bounce maps, rally length distributions. Bolting that onto a generic player is harder than building it correctly.
  • Pipeline coupling. Our analysis runs on Firebase Cloud Functions + RunPod GPU; the results land at a predetermined Firestore path. Surfacing that in a third-party app means re-implementing auth, sync, and access control in someone else's container.
  • Sport-specific evolution. Doubles support, clay vs hard surface tuning, indoor lighting handling — each of these is a tennis-only problem. They'd be deprioritized inside a multi-sport tool.

So AceSense is its own app. The trade-off is honest: AceSense doesn't help if you also coach golf. OnForm doesn't help if your tennis review needs to scale.

The honest source check

OnForm's pricing page lists sport categories. Tennis isn't there. The marketing homepage cycles through sport visuals — golf swings, gymnastic vault landings, swim turns. No tennis stroke. This isn't a hidden feature; it's a positioning decision. Tennis isn't where OnForm is investing.

That positioning is fine. It's a multi-sport tool with a coherent identity. It just means: if you came here looking for "OnForm for tennis," the answer is that tennis is the gap they left for someone else to fill.

When OnForm is still the right call

I'm not pretending AceSense is the right answer for everyone:

  • You coach across sports — OnForm wins on breadth.
  • You only review 5–10 highlight shots per session — the labeling overhead doesn't matter.
  • Your students need the assignment/roster workflow OnForm bakes in — AceSense is more of a personal-analysis tool today.
  • You want a free tier and don't need AI — OnForm's free tier is generous.

What "tennis-specific AI" actually means

The phrase is overused. For us, it's three concrete pipeline pieces:

  • A ball detector trained on tennis broadcast and amateur phone footage — TrackNet, fine-tuned. Generic object detection misses the ball at 70+ mph in a 30 fps video.
  • A court detector that registers the camera in the first second and then tracks keypoint drift — your phone on a tripod isn't perfectly stable.
  • A stroke classifier that uses the player's pose plus ball trajectory plus court position to label every shot. We use MediaPipe for pose and CatBoost for classification because the inference is fast enough to feel real-time.

Read the deep dive in how AceSense's pipeline works, or skip to the accuracy methodology if you want the F1 scores.

Bottom line

OnForm replaced Coach's Eye for the sports OnForm covers. For tennis, the replacement isn't OnForm — it's a sport-specific tool that does the labeling step OnForm leaves to you. We built AceSense for that, and we keep recommending OnForm for everything else.

Related reading