Chase Madison's Phonebot Takes a 3D Printer and Turns It Into a Crossword-Solving Beast
Designed to break an addiction to the Wordscapes mobile game, this modified 3D printer solves crosswords on the user's behalf.
Maker Chase Madison has decided to turn a modified 3D printer, and a Raspberry Pi, into a device with only one purpose: to crush the opposition in the Wordscapes crossword game.
"You ever play this game, Wordscapes? It's alright. Basically, you just swipe these letters make words," Madison explains. "The problem with this game is it's super time consuming. I've been playing this game for a year and I'm only on level 600, and there are like 6,000 levels so basically it's gonna take me like 10 years to finish."
"So I thought 'you know what, forget it, I'm going to build a robot to play this game for me so i can get back to doing all the important things in my life like sleeping working and being with my family and I won't have to worry about this game any more.'"
The resulting robot is based on a Creality Ender 3 3D printer, connected to a Raspberry Pi single-board computer. A camera in a 3D-printed mount captures the phone's display and analyses the puzzle in question, then solves it using a Python program.
A "finger" takes instructions from the Python program running on the Raspberry Pi and inputs the solution into the phone — solving the puzzle without human intervention, and in a way which is more-or-less indistinguishable from a human player.
"What I did was just create templates of all the letters, and then basically XORed each pixel of the template with the letter captured from the camera," Madison adds. "If the template perfectly matches the letter, then the resulting image should [be] an image with all 0 pixels. The template never matches perfectly, so I just test the captured letter against all 26 letter templates and take the one with the least amount of 1s. It's not great for a general application, but worked better than anything else I tried for this application."
"Another thing I did, was if the dictionary only kicked back one or two words, then I knew I probably had a letter wrong or something, so it would look at the next best fit for each letter. For instance O and Q were often confused, E and F, etc."
The Python source code for the program has been published to GitHub under an unspecified open source license. "I'm assuming everyone just wants the bit for moving the robot around," Madison notes. "But if you want to replicate the entire project, then I've included all the other files as well."
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.