Most of the bad-report support tickets we get at AceSense aren't algorithm problems — they're camera-placement problems. Players film from the wrong height, wrong distance, or wrong angle, and every downstream metric in the pipeline degrades. This post is the exact placement spec that produces a good report, and the exact failure modes if you violate it.
If you've already read our $30 phone setup post, this is the deeper-dive on the placement variables. They're the part that actually matters.
TL;DR — the spec
- Position: behind the baseline, centred on the court's centreline.
- Distance: 8 to 12 feet (2.5–3.7 m) behind the baseline.
- Height: net-tape level to a foot above — about 3 to 4 feet (1m to 1.2m).
- Tilt: roughly 5–10 degrees down, so the back baseline of the opposite court is in frame.
- Frame rate: 30 fps minimum, 60 fps strongly preferred.
- Resolution: 1080p minimum.
- Stability: fixed mount (fence clip or tripod) — no panning, no auto-tracking.
That's the whole spec. The rest of this post explains why each item matters and what breaks if you get it wrong.
The four variables that matter
Camera placement reduces to four variables: position (left/right), distance (front/back), height (up/down), and tilt. Frame rate and resolution are camera-settings, not placement variables; we cover them in the $30 setup post.
1. Position — centred is the only correct answer
The court keypoint detector needs to see all four corners of the court (and ideally the service-line corners and centre service mark). With the camera centred behind the baseline, the four corners form a rough trapezoid in pixel space — wider at the bottom of the frame (near baseline), narrower at the top (far baseline). The homography that maps pixels to court coordinates is well-conditioned in this configuration.
Move the camera off centre, and the trapezoid skews. If you're 6 feet to the left of the centreline, the right-near corner moves left in the frame, the right-far corner moves further still, and the homography becomes harder to solve. The system can still solve it, but residual error grows.
Move the camera all the way to the singles sideline (filming side-on), and the four court corners collapse to a near-line in pixel space. The homography is degenerate — there's no unique solution. You'll get a report, but every coordinate-dependent metric (heatmap, line calls, speed) is unreliable.
Practical rule: the camera should be within ±3 feet of the centreline. Closer to centre is always better. Side-on is unusable.
2. Distance — 8 to 12 feet behind
Two competing pressures here:
Too close (camera right at the baseline or just behind it): the near baseline takes up most of the frame, and the far baseline is squeezed into the top 10% of the image. Court keypoints at the far end become inaccurate because they have very few pixels to work with.
Too far (camera 25+ feet behind the baseline, e.g. clipped to the wrong fence at a club with a deep run-back area): the court fits in the frame fine, but everything is small. The ball, especially at fast pace, becomes tiny in pixels. TrackNet's accuracy on small balls degrades.
The 8-to-12-feet zone is the sweet spot for a typical phone wide-angle lens. It puts the full court in frame with both baselines getting roughly equal pixel real-estate, and the ball stays large enough to track.
If your only fence is too far back: phone position higher up on the further fence is OK, but consider whether a tripod 8–12 feet back would be possible instead.
3. Height — net-tape to a foot above
This is the variable players get wrong most often. The temptation is to mount higher — "more of the court visible from above." Don't.
Too low (ground-level, knee-height): the back baseline is barely visible in the frame because the court geometry compresses near the horizon. Court keypoint detection at the far end becomes unreliable. Ball trajectories near the back of the court are very flat in pixel space, hurting the depth-inference for speed estimates.
Net-tape height (about 3.5 feet) is the magic number because the camera is at the same height as the highest part of the playing area. The homography is well-conditioned. Court keypoints at both ends have similar pixel real-estate. Ball depth inference works.
Too high (above 5 feet): the perspective starts compressing in the other direction. The court starts looking flatter (more top-down), which is great for visualising the court but makes depth inference harder, not easier — counter-intuitively, top-down footage gives less depth information from a single camera than slightly-elevated footage does. Also, very high phone mounting (e.g. clipped to the top of a 12-foot fence) puts the phone in the wind, which adds shake.
Practical rule: if your fence has multiple usable heights, pick the one closest to 3.5 feet. If it only has one usable height, anywhere from 3 to 5 feet is fine; 5 to 8 feet is workable; over 8 feet is bad.
4. Tilt — slight downward
Once you've nailed position, distance, and height, the tilt is straightforward: angle the phone slightly down so the back of the opposite court is in frame with a few feet of margin above it. About 5–10 degrees of downward tilt for the standard distance/height combo.
What you don't want:
- Phone level or pointing up. You'll see too much sky and miss the back baseline.
- Phone pointing straight down at the near baseline. The far half of the court won't be in frame.
The tilt adjustment on a typical fence-mount clip is a knob you can turn. Set it once at the start of the season, leave it.
What each placement error actually breaks
Symptom-cause mapping for the most common bad-placement issues:
| Placement error | What breaks |
|---|---|
| Off-centre by more than 3 feet | Court homography skew → heatmap distortion, ball-speed bias |
| Side-on (singles sideline) | Court detection degenerate → no usable report |
| Too low (under 3 feet) | Far baseline compressed → far-court keypoint errors → bad far-end heatmap |
| Too high (over 6 feet) | Top-down perspective → worse depth inference → noisier speed estimates |
| Too close (under 5 feet behind baseline) | Far baseline takes 5% of frame → court keypoint errors at far end |
| Too far (over 18 feet) | Ball is small in pixels → TrackNet detection drops, fast shots get missed |
| Auto-tracking enabled | Panning camera → court keypoints re-estimated every frame → drift |
| Hand-held | Drift introduced manually → same problem |
| Through privacy mesh / weave | Ball detector loses contrast → intermittent ball trajectory |
Edge cases
Doubles courts being used for singles
If the singles sticks are in place, the court detector can find them and use them. If the singles sticks are missing, the detector defaults to the doubles court, and your singles match's heatmap will use the doubles boundaries (sub-optimal but workable).
Indoor courts with low ceilings
Indoor courts with low ceilings sometimes don't have the run-back area for the standard 8-to-12-feet-behind-the-baseline setup. In that case, the camera right at the baseline is acceptable as long as it's centred and at the right height. The far-court keypoint accuracy will be slightly degraded; everything else works.
Public-park courts with no fence at the back
Tripod, behind the baseline, at the right height. The setup-time penalty is 60 seconds vs the fence clip's 30. The result is identical.
Bubble / dome courts
Same spec works — the bubble's interior chain-link or net structure usually accepts a fence clip, and if not, a tripod. The lighting in bubble courts can be a separate problem (see /blog/how-accurate-is-acesense#failure-modes), but the placement is identical.
How to verify your setup is correct
Easy on-court check before you record the match:
- Mount the phone, hit record briefly (10 seconds).
- Walk into the court, stand at the centre service line, look back at the camera.
- The phone should be centred from your view; you should see roughly equal court behind you (singles to deuce side) and in front of you (singles to ad side) when looking at the recording.
- Stop recording, play back the 10 seconds. Both baselines should be visible. The court should look roughly trapezoidal, not heavily skewed left or right.
That's it. If both baselines are in frame and the court isn't skewed, your placement is good.
What good placement looks like in the report
When the placement is right, the AceSense report opens with a small confidence indicator on each metric — green for "high confidence based on filming setup," yellow for "moderate," red for "low confidence, consider re-filming." A correctly-set-up filming session will show all-green or near-all-green. A placement-violated session will show yellow or red flags on the affected metrics, with a "consider re-shooting" note.
We chose to show this rather than hide it because a number with a confidence indicator is more useful than a number presented as gospel. If your last few reports have been yellow on every metric, the answer isn't that the algorithm is broken — it's that the camera placement needs work.
Related: A $30 phone setup for filming your tennis matches is the gear-list companion to this placement guide. How to record your serve for analysis adapts the same placement logic for solo serve work. And the full visual guide is at /how-to/film-your-tennis-match.