We built ChessBoss at the TechCrunch Disrupt hackathon this week. It didn’t make the top 10 but I thought Hacker News might think it’s pretty cool.
There are these really cool smart chessboards that can suggest moves and track your games... but they’re $400 and weigh 19 pounds. And of course there are apps that can analyze games but tracking and inputting games by hand is a huge pain. Or fully-digital chess apps... but board games are way more fun in real life!
We wondered: “why can’t you just do that in software and bring the best parts of chess apps into the real world?” So we did!
A camera passes a feed of the board through our machine learning model which interprets the state of the board and passes it off to Stockfish to display move suggestions in real time.
We didn’t quite get to recording the state over time in PGN but we hope to continue this project and add that soon!
Would love to know what you think. We’re working on enhancing other board games with computer vision as well; if you want to help us beta test sign up at https://boardboss.com
Congrats! We tried something similar a few years ago (also at the TC Disrupt Hackathon [1]), but had to take a lot of shortcuts to get to something working. I'm impressed you had the time to train a proper model (we went with old school CV hacks).
Looking forward to seeing what BoardBoss could become. These days I've been wanting a CV app to track backgammon games. Those dice can be pretty tiny though :)
ML tools have definitely come a long way in the past few years! We used CreateML for our first pass which is great for prototyping; you just give it your training data and hit go.
Unfortunately it’s not particularly transparent or tweakable. If it doesn’t do the job well enough you you’re out of luck and have to switch to another tool completely.
Great minds! Love that you deployed to a Pi – I’ve thought about the same to complement or replace smartphones.
Can you shed some insight into your ML process? One thing we did to simplify the vision problem is capture images from the same perspective (hence our tripod). We labeled 2894 objects across 292 images. We had 12 objects to detect: each piece for black and white. We struggled with occlusion, especially if a pawn is behind a queen.
Would suggest using two cameras for stereo photogrammetry.
Using mini-projector to highlight clues would also be cool.
I see a micro-projector with two cameras just 10 cm apart on a single tripod.
With stereo the tripod does not need to be that big for reliable detection.
Have you seen Tilt Five? It’s an AR headset that operates off a similar concept. Instead of trying to figure out the passthrough optics they put projectors in the glasses that reflect back at the viewer.
At that point why bother with a physical board? There are tons of free chess apps that will happily run on a tablet or PC with out all this faffing about.
This is very cool. One very important application would be simply recording competitive games. There are electronic boards that can do this, and they are ubiquitous at top level events. But they are infeasibly expensive. At our chess club one selfless and heroic volunteer inputs all the scoresheets into a PGN every week (shameless plug: he uses my chess GUI, Tarrasch https://triplehappy.com). But it takes something like 5 minutes a game, and gets tedious after a while. I have thought about trying to build a phone app to compete with the electronic boards, but who has the time? You guys do!
We were hoping to get this done at the hackathon actually but it turned out our v1 model wasn’t stable enough to track the game state over time. Hopefully v2 of the model will let us do this.
An added bonus over tracking it by hand is that a computer vision powered version would be able to track the time taken for each move as well.
If we built this would your club be willing to help us beta test?
Really glad to see a few projects like this recently. For teaching it's _so_ good to be able to quickly help kids analyze a position (even when you have no real right to be teaching people chess) without blundering. I do think the loop needs to be closed with better, more explainable chess engine analyses on the other side though, but this is fantastic for a hackathon project!
So, as we think about making this into a production app, a feature you’d request is the ability for a user to add input as to why a given move is being suggested?
At present, we’re simply outputting the recommended move from StockFish, which also does give a “Why.” Perhaps letting users add that commentary in the app sufficiently solves that need.
Oh I'm not sure I'm making a practical suggestion here, I think it's a tremendously hard problem to humanize engine outputs (quite often the answer is just "because otherwise in five moves you lose your knight" etc). Some people have attempted this:
I also want a Go game recorder. No features just a game recording to have the enjoyment of playing with a real board and still have the game file for later review.
This inspires some nifty applications for headset/eyeglass AR. I second the request for source code, it’d be great to play with this on something like the vuzix or HoloLens.