Inspiration
Every game of Catan ends the same way: someone says "I only lost because of the dice". And honestly, nobody can prove them wrong. Poker had the same problem until stats came along and turned it into a game people actually study. Online Catan players already get trackers for this, but if you play on a real board at your kitchen table, you get nothing. So we asked: what if your real board could tell you whether you lost to bad luck or bad decisions?
What it does
Catan-lytics lets you review a real game of Catan like a poker hand.
You film the board from above, and the app watches the video for you. It picks up every dice roll, settlement, city, road and robber move on its own, no typing needed. Then it replays the game: the video on the left, and the stats on the right updating as the game unfolds.
You get:
- Who's winning: each player's chance of winning, changing after every roll and build.
- Luck: whether the dice were kind or cruel to you, like "6 cards below expected (unlucky)".
- Best move: the build that would help you most right now, or the best spot to put the robber.
- Why?: an AI commentator that explains what just happened in plain English, and answers your questions about the game.
There's also a log of every move, and at the end a chart of how everyone's chances changed, plus a verdict on luck versus skill for each player.
How we built it
We filmed three clips: pieces being placed, 30 dice rolls and the robber being moved around. The app maps out the board in each video, then spots the dice, pieces and robber as they appear. It only records a move once things have stopped moving and it's sure, and it checks every move against the rules of Catan.
For the stats, the app plays out the rest of the game hundreds of times from each moment to see who usually wins, and compares everyone's dice luck with what their spots should have given them. We checked all of this by working out a whole game by hand and making sure the app matched.
On top of that, Gemini explains the numbers in plain English, and the whole thing runs as a website you can open from anywhere.
Stack: Python, FastAPI, React, TypeScript, Tailwind, the Gemini API, and Vultr for hosting.
Challenges we ran into
- Ghost pieces. Early on, the app kept "seeing" pieces that weren't there, or swapping their colours. We taught it to wait until things are still and to ignore frames with a hand in them, and the ghosts disappeared.
- The sneaky "1". The dot on the dice's 1 face touches the printed logo, so the app kept misreading it. Fixing that got us to a perfect dice score.
- Too confident. At one point the app gave one player a 97% chance of winning after just a few turns. We tracked down a few bugs and made the simulated players smarter, and now its predictions match reality much better.
- Hidden cards. The camera can't see what's in your hand, so we had to be careful not to show advice that assumes you can afford something.
- Going live. We wanted a live camera, but lighting and focus at the venue were too risky, so we switched to recorded games to make sure the demo works.
Accomplishments that we're proud of
- 30 out of 30 dice rolls read correctly, 8 out of 8 robber moves, and no ghost pieces.
- Win chances that are actually trustworthy, not just impressive-looking numbers.
- An AI commentator that explains our stats without making things up.
- A real, working website, live on the internet.
What we learned
- Showing a number is easy; proving it's right is the hard part, and the part that matters.
- For reading video, good lighting and patience beat anything clever.
- Being upfront about what doesn't work yet makes the project stronger, not weaker.
- Knowing when to cut a feature (live mode) can save the whole project.
What's next for Catan-lytics
- Upload any game: right now each video needs a quick setup first. Next, we want you to upload your own game and have it set itself up automatically.
- Live mode: prop your phone over the board and watch the stats update as you play.
- Trades and steals: tracking these too, so the luck picture is complete.
- Testing on real games from lots of different tables, not just our own clips.
Log in or sign up for Devpost to join the conversation.