Inspiration
I like chess puzzles. They're bite-sized and can take as much or as little time from your day as you'd like. While there are no shortage of chess puzzles online, most of the procedural ones are not particularly good. They have unsatisfying solutions like pushing a single pawn or moving a rook up a single square. They're generally defined by what maximizes the chess engine's evaluation rather than what's the most fun or interesting. This project seeks to rectify that.
What it does
The application takes a FEN (Forsyth–Edwards Notation) string and gives back a prediction for 'goodness' or the puzzle, with +1 being quite good and -1 being rather bad.
Nothing world changing in this model. I'm here to have fun, not to win.
How we built it
The model is trained off of a few hundred thousand games on Lichess. While the full dataset has well over three million datapoints, due to time constraints we're forced to use only a small sample of those.
Challenges we ran into
Our babysitting plans fell through at the last minute and we had only a few hours to work on the project on Saturday morning and Sunday morning.
We had hoped to include also an approximation of a Stockfish rating, but this took the load time from ~150 games/second to ~1.
Accomplishments that we're proud of
Honestly, if we can submit at all I'll be overjoyed.
What we learned
Stockfish is surprisingly touchy when interacting with multithreaded data loading.
What's next for Chesstour the Puzzle Judge
Loading a larger dataset and training for longer are quick wins. Building a better interface will help, too.
Log in or sign up for Devpost to join the conversation.