A 3D chessboard rendered in three.js with a live video feed of the opposing player positioned beside the pieces, mid-game.
Chess across a video call, rendered in three.js. Ludovic Renaux's chessmate.fun puts your opponent's face right next to the board, which sounds gimmicky until you actually play a round and realize how much chess has been missing the small tells: the squint, the half-second hover, the suppressed grin when you walk into a fork. The board itself is unhurried and tactile, pieces sliding across the squares with the kind of weight you only notice when it's wrong, and the whole thing now installs as a PWA so you can keep losing to friends without a browser tab in the way.
Three.js handles the scene, WebRTC handles the peer connection, and the same signaling channel that brokers your video stream also carries the moves. No game server in the middle, no lobby gymnastics, just a link you send to a friend and a board that springs into existence between you. It is a tidy demonstration that "multiplayer" and "multiplayer infrastructure" are not the same problem, and that a small surface area can carry a surprising amount of game.
Poke around the scene with devtools to see how the board and the video texture share the frame, send the URL to someone who owes you a rematch, and follow Ludovic for the rest of his three.js work, which ranges from realistic water in XR to a sign-language translation app. He is clearly someone who builds the thing rather than tweeting about building the thing, which we respect.
- Live Demo: https://chessmate.fun
- Author: Ludovic Renaux (LinkedIn)