As a puzzle builder, I don't frequent this side of the forum very often, but I have a challenge/request for the forum and I figured this would be the best place to put it.A bit of background:
For the last ~3 years, I have been (semi-) secretly working on making a self-solving 3x3. Unlike the one yummyyummypbj just posted, mine will be fully self-contained, with all the electronics and motors fully hidden away inside, so that the large size and "start" button will be the only clues that this isn't a normal 3x3.
I made my first attempt near the beginning of 2011, and I tried again during summer 2013. Each time, after putting months of effort into the design, building a prototype, and testing out components, I discovered all sorts of issues that I just didn't have time to address, what with engineering school, grad school, and summer jobs getting in the way.
Well, I'm finally done with school, and I'm making another attempt at it. In the last 2 months, I did a full redesign, incorporating all the things I've learned from the first two iterations and all the other puzzles I've made in between. I have tested most of the electronic systems (at least to some extent), I have printed test parts, and I've made adjustments to the design where necessary. I am feeling really good about this, and I'm pretty sure I'll have a self-turning
3x3 by the end of May.
Note that I said "self-turning
" and not self-solving
. That's why I'm coming to you brainiacs on the Solving Puzzles forum.The Challenge:
I need someone to write an Arduino-compatible 3x3 solver.
I have enough of a handle on programming to write the code to read the IR sensors (which will determine the scrambled state of the cube), and to control the motors (which will turn the appropriate faces). But the part in the middle is beyond me: the part that, given the puzzle's state as an input, outputs the sequence of moves to solve the puzzle.
Back in 2004, there was a contest
to write the shortest programs to solve the Rubik's Cube, and there were lots of really good responses
(including some from a few familiar faces round these parts!). Of course, I'm not really looking for the shortest program, but I do have some significant restrictions that make these entries pretty well-suited for my purposes, except that they would need to be translated into Arduino code.Requirements:
It must be written in the Arduino language (similar to C, but much more accessible to non-programmers like me). I am using either an Arduino Nano
or a Teensy 3.1
(which can also take Arduino code).
The Arduino Nano has pretty limited memory (32KB of flash memory, 2KB of RAM). I also have the option of using the Teensy 3.1, which has significantly more memory (256KB of flash memory, 64KB of RAM), in an even smaller package.
3. Short(ish) solutions:
While I don't necessarily need a Kociemba-style optimal solver, it would be nice for the puzzle to solve in 50 moves or fewer. Thistlethwaite
springs to mind. Perks:
I realize that this is no small task, so I would be happy to offer some perks for anyone who sends me a working solver (and helps me work it into my program). In addition to a shout-out in the "Thank you" section of any presentation materials about the cube (video, forum post, portfolio page), you will have your pick of one of the following rewards:
1. Your own copy of any one of my puzzles (even those currently not
2. A Shapeways gift card of significant value (likely $150 or more).
3. Or suggest something else of a similar value.
Perks will be available for the first three submissions. Let me know if you have any questions.