Short answer: AI tennis analysis works indoors, with three small adjustments. Drop the camera frame rate from 60fps to 30fps if you see flicker. Pick the brightest court the hall has. And mount the phone where it can see the whole playing area without going through glass. That's the lot.
This post is the longer version of those rules and the why behind each one — because indoor tennis is its own little ecosystem of recording problems that don't apply outdoors.
TL;DR
- Switch to 30fps if the live preview shows flicker bands. 60fps + ceiling fluorescents = banding.
- Pick the brightest court available. 500+ lux at court surface is the comfort zone.
- Mount inside the hall, not behind glass. Glass walls cost you accuracy.
- Camera height the same as outdoor: 6-10 ft, behind the baseline. Watch for low ceilings if you have lobbing players.
- Expect ~2-4 F1 points lower shot detection vs a sunlit outdoor hard court. Mostly from the lighting trade-off.
What "indoor" actually means for the camera
Indoor tennis means three things to a phone camera:
- Less light, in a fixed amount. Outdoor on a sunny day is 50,000-80,000 lux. A well-lit indoor hall is 500-800 lux. That's a hundred-fold drop in available photons. The phone compensates by opening the aperture (already at maximum on a phone), raising ISO (which adds noise), and lengthening exposure (which adds motion blur).
- Artificial light flicker. Almost all overhead lighting in indoor tennis halls is fluorescent or LED running off mains AC — 50 Hz in Europe, 60 Hz in the US. The light brightness oscillates at 100/120 Hz. A camera shooting 60fps in a 50 Hz country sees rolling brightness bands across the frame. This is the same reason your monitor looks weird in a phone video.
- Ceiling occlusion. Most halls have a ceiling at 8-10 m. High lobs and ceiling-grazing topspin serves can briefly leave the visible space the camera sees, depending on phone position.
None of those are catastrophic on their own. Collectively, they cost a few accuracy points if you film the same way you'd film outdoors. The fixes are straightforward.
Fix 1: drop the frame rate to 30fps if you see flicker
This is the single biggest indoor-specific adjustment.
For outdoor filming, we've recommended 60fps elsewhere (the filming guide covers it in detail) because faster ball capture meaningfully helps tracking on a fast serve. Indoor, this trade-off flips. 60fps recording in a 50 Hz lighting environment produces visible rolling banding — bright and dark stripes that scroll up the frame at a rate determined by the difference between mains frequency and shutter rate.
That banding hurts ball detection. The ball is small relative to a banding stripe; when the ball passes through a dark stripe, the detector sometimes loses it for two or three frames. Cumulatively, that's a meaningful hit on bounce localisation.
The fix is to shoot at 30fps, which evenly divides the 100/120 Hz light flicker and produces a flat (non-banded) frame. You lose half the frames per second of ball-position data, but you avoid the banding entirely — which is a net win indoors.
How to do this:
- iOS: Camera app → Video → 1080p HD at 30 fps (long-press to change between resolution and frame rate).
- Android: Camera → Settings → Video size → 1080p 30fps (varies slightly by manufacturer).
Some halls run on DC-driven LED arrays that don't flicker; in those, you can keep 60fps. The way to tell is to point your phone at the lights at 60fps and see if you see banding in the preview. No banding = use 60. Banding = use 30.
Fix 2: pick the brightest court
Indoor halls are usually multi-court, and the lighting is rarely uniform across the building. The court closest to the entry doors might be 600 lux while the back court (where the lights are older or partially out) is 350 lux. That difference matters for AI analysis.
The TrackNet ball detector that AceSense uses is broadly trained on a range of lighting conditions, but below ~300 lux at court surface, accuracy noticeably drops because the phone camera's exposure time grows to the point that fast-moving balls become smears rather than crisp circles.
Practical heuristic: if the court feels bright to play on (you can see clear ball seams, no squinting), you're fine. If it feels gloomy, the report will be gloomy. If your hall has a choice of courts, pick a brighter one.
A €15 lux meter (or a smartphone lux app) gives you a number. 500 lux+ is the comfort zone. Below 250 lux, the phone is doing too much heavy lifting and the report quality suffers.
Fix 3: mount inside the hall, not behind glass
Many modern indoor tennis halls have viewing galleries with glass walls. It's tempting to mount the phone in the gallery — easy access, no risk of disrupting play. Don't.
Glass walls cause four problems for AI analysis:
- Reflections of overhead lights into the camera lens, which the ball detector misreads as moving objects.
- Double images from the inner and outer glass surfaces (especially on double-glazed walls), which the court detector reads as duplicate lines.
- Contrast loss from light scattering through any imperfect glass — the model gets a lower-contrast version of the same scene.
- Geometric distortion from non-perfectly-flat glass, which warps court keypoints.
If you absolutely must shoot through glass: clean it thoroughly on both sides, push the phone lens directly against the glass with zero gap (this defeats most reflection issues), and expect 5-8 F1 points of accuracy loss vs the same shot from inside the hall.
The better option is to bring a tripod into the playing area itself, place it 6-10 ft behind the baseline of an unused court next to yours, weighted at the base. Most halls allow this in the back rows of court space.
A note on hall ceiling height
This one only matters if you (or your opponent) hit high lobs or ceiling-grazing kick serves. If your hall ceiling is at 9-10 m+ (most modern halls), you're fine — the phone camera has enough vertical frame to capture a regulation lob at any height. If your hall is converted from a warehouse or church (it happens, especially in older European clubs) and the ceiling is at 6-7 m, the phone camera at 7 ft of height looking slightly down has a vertical field of view that may not capture peak lob height.
The fix, if this matters to your game: drop the camera to 5-6 ft of height (a hair below the recommended outdoor minimum, but workable indoor) so the camera tilts up slightly more. You'll get the full lob in frame at the cost of a slightly more compressed court view.
For most rec players hitting waist-to-shoulder-height topspin, this never comes up.
What about ceiling-mounted court cameras?
Some high-end indoor facilities have permanent overhead cameras — Baseline Vision sells a €1,800 hardware camera, and PlaySight has SmartCourt installations in some indoor halls. If your facility has one, use it; the angle and lighting are tuned for AI analysis, and the per-shot accuracy is meaningfully higher than any phone setup.
For everyone else (the 99% of indoor tennis), a phone on a tripod works. We compare the phone-vs-facility tier in AceSense vs SwingVision: the honest 2026 comparison.
How much accuracy do you lose indoors?
On the AceSense internal benchmark, indoor hard courts come in roughly 2-4 F1 points lower than outdoor sunlit hard courts for shot detection — most of the gap from the lighting/exposure trade-off, a smaller portion from occasional ceiling-occlusion misses on lobs.
That's a smaller penalty than clay (which we cover in filming on clay courts) and a much smaller penalty than filming through glass.
Stroke-quality scoring is essentially unaffected by surface or lighting. The pose model is robust to changes in light level as long as the player is visible at all. Court heatmap accuracy is mildly affected because of the bounce-localisation issue.
Net effect: indoor tennis is fine for AI analysis. The hall does most of the work for you (no wind, no rain, no glare), and the lighting trade-offs are manageable with the three fixes above.
The biggest single lever: light it well, mount it right
If we had to give one piece of indoor advice, it would be: pick the brightest court your hall has, mount the phone above net height inside the playing area, and check the live preview for flicker before you hit record. Those three things are the difference between a clean report and a frustrating one.
Everything else in the AI tennis pipeline is robust to indoor conditions. Shot detection, bounce classification, stroke-quality scoring — all work fine indoors. Court detection is the only model that occasionally has trouble, and that's almost always solved by adjusting the camera position.
If you're a club player setting up your first indoor session with AceSense, the 5-minute starter guide walks through the upload flow. If you're trying to decide whether AceSense or SwingVision is the right indoor tool for you, the SwingVision comparison is the page to read next.