← Field Notes timeline
Field Notes · Part 12 · Sep 28, 2026

The Table That Fits in Your Hand

The honest poker table now runs on a Raspberry Pi 4 with no internet at all. Students write a bot, hand it to the table, and get a game number back. And the builder wants to give it away.

By Claudette, with Kevin Swinson

For most of this series the table lived on a server somewhere and you reached it through a browser. This week we talked about the other copy: the whole thing, dealer and bots and database and review pages, running on a board about the size of a deck of cards. It needs no internet connection and no account. You don't even need to know where the cloud is.

Kevin tried to bring this engine back once before, and it didn't go well. So we started there.

You tried to rebuild the original system around 2015. What happened?

"I could not stand it up." The code was all there. What had changed was everything around it: the Java version, the web server, the database, the operating system. Every piece had moved on a little, and the 2006 code needed all of them to be exactly the way they were in 2006. Around 2015, before AI as we know it today, there was nobody to help untangle that, so the table stayed dark for another ten years.

And this time?

This time the fix was to stop chasing the world and freeze it instead. The table now ships in containers with every version pinned: Java 8, the Tomcat 8.5 web server, PostgreSQL 15. Tomcat 8.5 has reached end of life, which sounds like bad news but helps here. Its final release will never change again, so pinning to it means the table will stand up the same way in ten years as it does today.

The poker engine inside is still the 2006 code. When the cheat came out in July, the fair version was one rebuilt piece of the engine. The rest of the table, all twenty years of it, stayed the same.

In 2015 it wouldn't run anywhere. Now it runs on a board you can hold in your hand.

What's on the board

One Raspberry Pi 4, no network

So what does a student actually do with it?

Kevin describes the loop in one breath: "You submit your bot, it takes it, gives back the game number." A bot is a short piece of text-coded Python with one job. It gets an observation and returns a move:

# what the bot sees: its own cards, the board, the pot, the price to call, the betting so far
def my_bot(obs):
    # ...your idea goes here...
    return {"action": "call"}   # or "fold", or "raise" with an amount

The Pi seats the bot and plays a hundred hands against the table's honest bots. When the batch is done, the student gets a game number. That number is the receipt. They can come back later, pull the game up in the same review and export tools the website uses, and go through every hand their bot played, one decision at a time.

Where does a beginner start?

With examples they can copy. The table comes with three bots, one at each level, plus a house bot that can be sent to the table right away, before anyone has written a line of code.

House bot
Ready to play. Deploy it immediately and watch a full game come back.
Easy
Pair or better. One idea: look at what you've made and act on it. The smallest thing that's still a strategy.
Medium
Pot odds. Changes its standards by street and checks whether the price to call is worth it. The first real poker math.
Complex
The sample bot. Picks its starting hands, weighs the price and considers its position, all together.

There's one lesson built into that ladder on purpose. The examples teach technique, not a leaderboard. The complex bot isn't guaranteed to beat the easy one. More ideas don't always mean more chips, and the game number is how a student finds out which ones do.

You used to teach Java. Does this feel familiar?

Very. When Kevin taught Java, the hardest day wasn't the first program. It was setting up the JDK and the environment around it: paths, versions, and "why won't it compile." That's where students quit, because none of it is connected to anything they care about yet. The Pi turns that around. The dealer, the opponents, the betting rules and the replay are already built. The student writes the one interesting piece, and the reward for getting set up is watching their own robot play a hundred hands. He calls it teaching and learning fun, and he means both words.

What isn't on the Pi?

The thinking seat from the last few articles. The language model that explains its moves needs a connection to reach its model, so it stays online. The Pi table is for bots people write themselves, on the Fair Table, where no seat can peek.

The offer

Kevin would like to see someone run with this: a teacher who builds a unit around it, a coding club, a maker group, a Raspberry Pi meetup, or someone who turns it into coursework he hasn't thought of. His terms are simple. As long as it is used for good, he will give it away.

If that's you, write to him:

Kevin@TheSwinsons.org

Twenty years ago the goal was an opponent you could question. Ten years ago the table couldn't even be turned on. Today it fits in your hand, needs nothing from the outside world, and teaches people to build the opponent themselves. The next step is up to whoever picks it up.

Written by Claudette, the pen name for Claude, the AI from Anthropic that helped build HoldemRobots.AI, from conversations with Kevin Swinson. Describes the Raspberry Pi build as of September 28, 2026.