I’ve been on a chess tech quest.
After every chess tournament or quad that I play in or run, there are handwritten scoresheets. Each of these scoresheets are like a diary of the game, they contain all the moves that were played, who played, when, where, what board, and the results of that game. For some players, it was a requirement that the scoresheet be kept during the game, and then it is discarded, no longer serving a purpose for them. For many players, like myself, it is necessary to study these games to see how we can improve. It is also a great way to preserve the memory of that game. Perhaps, in some cases, even a historical record of the event, perhaps for a championship, or a reference during an appeal. They have to be entered into a computer to be sharable in our digital world, and to be analyzed by chess engines.
But collecting all of these game score sheets and typing them by hand into a computer is tedious. They have to be entered into a computer to be sharable in our digital world, and to be analyzed by chess engines. But modern computers and AI are able to read hand written notes, right? Thus began my quest. As with any quest, there were ups and downs, posts on forums, invites, and lots of wasted, and some well used, time.
I’m not much of an app reviewer kind of blogger, but I wanted to help others save some time and find apps that work. First up is a list of apps and projects that didn’t help me at all. Then I will talk about three programs that did actually convert my hand written scoresheets into chess pgn files, and some of the tests I ran on them.
There were many first steps that ended in complete and utter failure, and here is a list of links and apps that just didn’t work out:
Chess Scan: https://play.google.com/store/apps/details?id=com.nagdev.alok.chesscan
Reine Chess: https://github.com/Messier-16/Reine-Chess-Scoresheet-Scanner
*Requires special scoresheet.
Digitization of Handwritten Chess Scoresheets with a BiLSTM Network: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8879196/
*Again, requires special scoresheet.
https://cdn1.sportngin.com/attachments/document/895f-1620793/Scanningscoresheet.pdf
Using OpenCV: https://medium.com/cometheartbeat/scannable-chess-scoresheets-with-a-convolutional-neural-network-and-opencv-3e10dc1c91ba
But, don’t be dismayed, because I did find three apps that actually work. These are not listed in order of importance or function, but rather in the order I tried using them. For all three apps, I decided to test them objectively and subjectively. The subjective test is just my thoughts with using them. The objective test is what happened when I ran the same three game score sheets through them. The first score sheet was medium quality of handwriting, 69 half moves with 6 noted player errors. The second sheet was a half sized score sheet with no player errors and really good hand writing, 52 half moves. The third sheet was with moderately bad handwriting – but still legible, and 6 noted errors written by the player, it had 103 half moves.
A. Chess Digitizer (EDITOR’S NOTE: THIS WAS AN OLD VERSION OF THE APP, I HAVE A NEW REVIEW IN A LATER POST)
A handy mobile application that you can download to your Android phone. It’s graphical user interface (GUI) was well designed and thought out, and overall was pretty useful. However, it had some major shortcomings, like not being able to share or export the finished product. You could simply look at your game in the app and analyze it there. It was very difficult to line up the page when taking the photo, which meant you had to retry taking the photo of the game many times before getting it correct.
![](https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/07/chess_scanner1-768x1024.jpg)
It will show you the entire scoresheet as you edit, making it easy to see where you are in the game. Simple taps with your fingers allowed you to change moves easily.
Pros:
- You can manually correct moves.
- Mobile application means you could use it between rounds at a tournament.
- The GUI was polished and seemed intuitive.
Cons:
- It feels like rocket science to line up the page perfectly in the photo.
- It struggles with bad, or even moderate, handwriting.
- It had a share button, but it crashed every time I tried to push it.
I tried to test it with several test sheets. With my first test entry of 69 half moves, 6 being player error (incorrectly written), there were 22 instances of character recognition failure. The second sheet wouldn’t scan no matter how many times I tried, because the blocks would not line up, they were too small. The third sheet was so riddled with errors, I think I should have hand typed it. I am not sure it got any of the moves right.
B. PawnParse
An online application that is still in beta testing, but was very promising when I used it. The GUI is now available in German (Deutsch) and English. The AI was much better at character recognition than any of the other programs on this list, letter for letter. You could use crinkled up score sheets, and you didn’t have to line them up perfectly to take the photo, though the more square the paper, the better it worked. It also did allow for half page smaller score sheets, though it did have a little trouble lining up the boxes, but you can manually line them up if needed.
![](https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/07/pawnparse2-1024x730.png)
It allows you to see the entire score sheet while you work, but also gives you a zoomed in shot of the move in question, while also showing you the board on the screen as you edit. This was pretty handy as a move that was written incorrectly by the player might be easy to fix seeing the remaining moves and the board. It also will list all the possible moves from that position, which was really helpful.
Pros:
- I had no issues lining up the paper for the photo.
- Being able to see the sheet, board, and moves made editing very easy.
- Recognizes really, really bad hand writing. It was better than me in some cases.
Cons:
- To correct a move, you couldn’t drag a piece on the visible board.
Currently not in English.- If the game is incorrect (illegal moves), it will still output a pgn with the illegal moves, if you choose to accept it, which may cause errors or crashes in some chess programs or engines.
Overall the hand writing determination was the best of any app I tried. Correcting an early move would recalculate if the following moves are valid, making the process pretty fast and easy to use. I was talking with the developer about forcing legal moves for limiting the computer decision, and that is something he is working on, but prefers to have a higher character recognition factor rather than forced legal moves. With my first entry of 69 half moves, 6 being player error (incorrectly written), there were 9 instances of character recognition failure. The second sheet of 52 half moves, no noted player errors, and had 13 instances of character recognition failure. The third sheet was 103 half moves, 6 noted player errors, and had 33 instances of character recognition failure.
C. pgnApp
This app was actually brought up during my discussion with PawnParse, so I gave it a try as well for comparison. This application is also online, and it is translated to English as well as Deutsch/German. The GUI was a bit more polished and production ready. Overall it worked very well. It did have a few issues with score sheets that were not a standard size, refusing to proceed with scanning the document at all. The AI was pretty good at character recognition, but I think a big help in this regard was that it seemed to force or at least limit the AI to legal moves. In several cases it took a “guess” at the legal move meant, if it couldn’t understand the score sheet, or if the player wrote the wrong move. Sometimes these “guess” moves were correct, other times not. This could lead to a game being incorrectly transcribed, as happened with one of the three test games that I uploaded.
![](https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/07/pgnApp2-1024x673.png)
While you are editing, you can see the board, and a zoomed in image of the move from the score sheet. It did not allow you to see the entire score sheet while editing, which made it difficult when a line was skipped (or duplicated) by the computer recognition software. However, on the plus side, you could actually move the pieces on the board to correct the scoresheet, which was really handy. It also only showed you the “dubious” or questionable moves. This can be a little misleading, because it did not show me that move 1. e4 was recognized as 1.c4, because it did not think that was “dubious” and so I had no idea there was a problem until the game didn’t “line up” after the opening. However, you can choose to see “all moves” instead of just the “dubious” ones, which I highly recommend if you use this tool.
Pros:
- Being able to move the pieces on the board to correct the scoresheet was really fast and intuitive.
- Seems to force legal moves to help with recognition of characters, often coming to good conclusions. (But see cons).
- If you export a pgn that has illegal moves, it will only export the part that is legal, stopping at the illegal move, so your pgn doesn’t crash when you load it, though then half the game may be lost. (So maybe a con?)
Cons:
- Half page score sheets or non standard sizes would not scan. *
- Seemed like a forced legal moves or guessing system made a few incorrect decisions, making a seemingly complete game that was incorrect. (A bit of a trust issue for me, but it really was pretty good.)
- Can sometimes be misleading about which moves are dubious or not.
*When I tried it, your mileage may vary. I attempted this with three of our club’s half sized score sheets.
Overall the hand writing determination was pretty good. With my test entry of 69 half moves, 6 being player error (incorrectly written), there were 8 instances of character recognition failure, however, this game was marked as good and complete, but had a wrongly interpreted move, which I had to correct. The second sheet refused to scan. The third sheet was 103 half moves, 6 noted player errors, and had 36 instances of character recognition failure.
Which one should you use?
It is really hard to say at this point. With any written argument, there is a subjective side, and an objective side.
Objectively, PawnParse would be the way to go with the least amount of total instances of character recognition failure, and also was the only software that could scan the half sized score sheets (though it did require some manual intervention to line up/resize the boxes).
Subjectively, while pgnApp had the most polished feel, and was the most intuitive to use, especially with the ability to move pieces on the board to correct the score sheet, it occasionally left me wondering if it had transcribed the moves correctly, or just thought it did, making me double check the “good moves” as well as going through the “dubious” ones, since it only shows the dubious ones by default. I enjoyed using both PawnParse and pgnApp, and I would use either, but I liked the more straight forward approach of PawnParse better, especially being able to see the entire scoresheet while editing. I didn’t like using Chess Digitizer very much, because lining up the score sheet for the photo seemed like an impossible task.
Linux – keep it simple.
Thank you for the fascinating article about using tech for real-world purposes! Sometimes I just use tech for tech’s sake but I need to make sure I have a real use for it so I don’t get distracted in technological navel-gazing.
I also appreciate the comparison of multiple options. I have been planning an article comparing two different Bible apps, as kind of a brain dump of the options.
Thanks, yes, sometimes we techies get lost in the code weeds and forget the why, because we are wrapped up in the how. I will look forward to reading your post! Always on the lookout for good Bible study software, but there are so many, it is nice to see some compared for features and usability!
I have been informed that I am using an old version of the Chess Digitizer app, now called Chess Scanner: https://play.google.com/store/apps/details?id=com.stervs.chessscanner
I will try to test this out and see if that works better.