Inspiration
Our inspiration for our project came from our teams love for chess as a pastime. We find ourselves playing for hours at a time against each other, but recently we came to the blunt realization that we are not that good. We tried out Chess.com puzzles to get better but disliked the short-sightedness that came with making 2-3 moves. Our solution for that is Blundr.
What it does
Blundr analyzes PGN files inputted by a chess player of any chosen number of games they have played in the past. It runs these files on Stockfish to find the players worst moves they played during the games they inputted. The Stockfish analysis is then prompted into Google Gemini to create game sets that work on tactics that the player ran into issues with (Ex. Back Rank Mate, Passed Pawn Promotion, Discovered Attack). The user can then run through these games receiving instant feedback on whether the move they are making is a good move, the best move, or not a correct move at all, and allows them to fix their mistake in real time while playing through the rest of the game with this understanding.
How we built it
To build this app, we used a mixture of coding and generative AI. The AI was used to implement the boilerplate code required to access and interact with each service that we needed. Then, we started by building out our pipeline by parsing PGN files into Python and integrated that with the chess library in Python. Stockfish was used to parse the PGN format into evaluations. After developing the blunder identification with Stockfish, we worked with the Gemini API to turn blunders into practice board states. A chess player was made to take these states and pit the user against Stockfish so that they could better understand how to develop positions that they struggled in. Then, we developed a hinting feature and a "good moves only" approach, so that the user would be well-equipped to understand optimal movements.
Challenges
One of the challenges that we ran into was deciding on scope. Most of the ideas we came up with would require many more data points and would in the end not provide much help to the player. We also ran into coming up with an idea that had a use case. At first, we tinkered with creating an app that predicted how the percentage chance that a player would blunder on any given move. While this would be a cool statistic to show on chess match coverage it wouldn't have the impact that we were striving for.
What we are proud of
We are proud of the usability of our program and how we can genuinely see how this can function as an aid towards any level of player. We are also proud of how much we learned through the creation of this project due to us being freshman in college with no past hackathon experience.
What we learned
We learned how to work as a team on a full stack project and how to distribute tasks based on skills and experience. We learned how to integrate and combine multiple API's and how to functionally use Gemini API in general. Finally, we learned methods to combine our interests with programming by using Stockfish Path and chess related libraries.
What's next for Blundr
Blundr's future is limitless. If we continue into beta testing, we plan on using Stockfish and Gemini to give clear coaching advice for every move that the user makes. Explaining future lines, possible ideas, and relating to common tactics that the user can employ for future games. However, Blendr is not just limited to chess, our approach to game analysis can be applied to a wide variety of games. Some chess-adjacent games such as Go are next on the horizon for Blundr, but applications could range as wide as coaching for RTS like Starcraft.
Log in or sign up for Devpost to join the conversation.