Tennis Tutor
The court is a surface.
A line of instruments for the game of tennis, each one a different way of reading what a ball does. Paint a court on a sheet, then bend it: glue the baselines and it's a torus; add a half twist and it's a Möbius strip, where the deuce court comes back as the ad court; do both and it's a Klein bottle, with no inside at all.
χ(torus) = χ(Klein bottle) = 0 · Möbius strip: one side, one edge
At the centre, the ball's seam: a curve splitting a sphere into two equal areas. The tennis ball theorem says any such curve has at least four inflection points.
Scroll down the vortex ↓
01 · Vibramaster
Every hit is a chord.
A sensor on the racket handle listens to each impact through the frame. The string bed rings in modes, and sand on a vibrating plate settles where the plate is still: the nodal lines of Chladni's figures.
ψ(x, y) = cos(1πx)·cos(2πy) − cos(2πx)·cos(1πy)
mode (1, 2) · f / f₁₂ = 1.00
- Accelerometer: the vibration of each hit, onset-detected and read through an FFT.
- Gyroscope: the rotation of the swing, traced as a stroke path.
- A TinyML model on the sensor board is learning to sort hits into sweet spot, off-centre and frame.
A sweet-spot hit barely excites the string bed's fundamental; a mishit rings it loud and long.
02 · T-Sight
One camera, one plane, one truth.
Set beside the court, T-Sight watches one half with a global-shutter camera and listens with a microphone. It hears the bounce to the millisecond; four marked points on the court turn pixels into metres. Each landing goes out over Bluetooth, to a ball machine that aims its next feed and to an iPhone that draws it.
[x y 1]ᵀ ∼ H·[u v 1]ᵀ
a homography: exact on the ground plane, where the ball is when it bounces
The cells around each mark are its Voronoi region: every point closer to that landing than to any other.
03 · First Serve
The court at the bottom of the world.
A first-person tennis match in the browser: a regulation court, analytic ball flight, and an opponent at three levels of skill. Down here the court tiles the hyperbolic plane: a court to every square, five squares to a corner, every tile the same size and infinitely many of them inside one disk.
{4, 5} tiling of the Poincaré disk · K = −1
drifting by z ↦ (z − w)/(1 − w̄z)