Show HN: Interactive Rubik's Cube with sub-puzzles for solution steps
gregfjohnson.com
gregfjohnson.com
There are radio buttons that select from among eight sub-problems that progress through levels of difficulty, culminating in the full cube.
The 3-d graphics aspects of the implementation were interesting - I wrote an alternative "change camera position" function that suits the symmetry of the Rubik's cube better than the default one in THREE.js. It was very interesting implementing mouse-based face selection and movement in the presence of a perspective projection.
I added a "Record/Rewind" feature, which is in fact a big hint on the key idea for solving the cube: commutators. (If two top pieces are similarly wrong, fix one of them and record the fix. Then, move the other one to where the first one was, and "rewind" your fix!)
Future ideas: 1 - add a scroll bar so that users can explore solutions one move at a time, and go backward and forward.
2 - add links to a text-based web page with hints and suggestions.
3 - add more intermediate sub-problems, with "scramble" options. I.e., have a sub-problem with only the top face and one corner cubie out of place. Have the "scramble" put that one cubie somewhere else, but leave the rest of the top level in place.
4 - HN: any other fun thoughts, suggestions, or ideas?
I am disturbed by the unusual color scheme. The usual color scheme being this one: https://en.wikipedia.org/wiki/Rubik%27s_Cube#/media/File:Rub... I mean yellow and white being on opposite faces, as well as red/orange, and blue/green.
Corner Lookahead Drill + some others http://cube.rider.biz/coracle.html
the solving animation is too fast (which can also be a good thing but not always) ... maybe add a slider.
also depending on your idea of fun, this allows for making a rubik's cube of rubiks cubes :^)
I'm still curious about the internal lines idea. But I don't understand the Rubik's cube enough. If you label all blue squares as {1,2,3,4,5,6,7,8,9} is their solution configuration unique?
This is the dark mode setting that I am using: https://support.apple.com/en-us/HT208976
I'm wondering if there would be a clean way to communicate the above to the user other than having them experiment and find it on their own.