Play free

About

About Palm Court

An independent tennis game you play with real swings, right in your browser.

The idea

Tennis games usually turn a racket swing into a button press. Palm Court goes the other way: you swing, and the game reads the swing. Your phone becomes the racket handle, or the webcam follows your hand or a ping-pong paddle. The player on court does the running, so all that’s left for you is the part that feels like tennis: the timing, the shape and the speed of your stroke.

It runs in a web browser with nothing to install, so a match is one link away, whether you want a quick tiebreak against the CPU or a set against a friend in another city.

How it works

  • Phone racket: the racket page on your phone reads its motion sensors, spots each swing and sends it to the game in a few milliseconds.
  • Webcam: an on-device hand tracker, or a fast colour tracker for the paddle, follows your racket hand through the camera. Frames are analysed in the page and never leave your computer.
  • The court: ball flight, spin, bounce and the feel of each surface come from a physics simulation; the stadium, players and crowd are drawn in real time with WebGL.
  • Online matches connect the two browsers directly, peer to peer.

Built with

Palm Court stands on excellent open-source work: three.js for 3D graphics (MIT licence), Google’s MediaPipe hand tracker (Apache 2.0), PeerJS for peer-to-peer connections (MIT) and the Big Shoulders Display and Barlow typefaces (SIL Open Font License). Every model, texture and sound in the game is generated by its own code.

What’s next

The browser version is free and supported by ads. A full release is coming to Steam, without ads. If you enjoy the game, a wishlist on Steam is the best way to help.

Every player, tournament and sponsor in Palm Court is fictional. Questions, bug reports and ideas are welcome on the contact page.