← jeffpelton.com dev.jeffpelton.com

Pirate Pool

Sep 27, 2026 — Eight-ball in a pirate captain's cabin on a rolling ship, where the swell tilts the table and every shot bends.

Open Pirate Pool →

Pirate Pool is eight-ball set in a captain's cabin at sunset, on a ship riding the swell. The idea came out of a list of "two games mashed together" pitches: billiards, but on a pirate ship. The twist does the work. The deck rolls, so the table tilts, and every ball curves downhill. A straight shot on a heeling table misses, so the game is as much about reading the sea as lining up the pot. You aim off and let the swell bring the ball home. Balls at rest hold still until the deck heels far enough, then they creep. Every so often a bell rings and a rogue wave throws the whole table sideways.

Because the ship's motion is a fixed function of time, the game can show you the future. A swell forecast charts the table's tilt for the next ten seconds and marks when resting balls will start to slide, and a brass tilt gauge shows which way the balls want to roll right now. The opponent, Cap'n Redbeard, uses the same trick: before most shots he runs the real physics against the coming swell and corrects his aim. When he doesn't bother, he misses in rough seas just like you. The sea gets rougher with every shot.

Everything is made in code with three.js: the cabin, the table, the wood and felt textures, and the sunset ocean you see through the portholes and the stern windows. The sounds are synthesized too, from the ball clicks and creaking timbers to the parrot in the eyepatch. It plays with a mouse or on a phone: drag to aim, and pull the brass lever to strike. The promo is rendered from the real game, and its trick shots were found by searching that physics for shots the swell curves into a pocket.

Open Pirate Pool →