Blindsolving the Rubik’s Cube: Memorizing the Speffz Lettering Scheme
A few months back I decided to challenge myself to learn how to solve the Rubik’s cube blindfolded. At the time, I’ve already learnt every WCA puzzle except for the 6x6x6, 7x7x7, and Square-1. I knew how the blindfolded method works: by using commutators that swap any two pieces (of the same type: edge pieces or corner pieces) on the cube. Since the cube becomes hidden after you are blindfolded (when you start to solve the cube), the only information you will have about the cube’s stickers will be obtained during the memorization process. Hence, it is in your best interest to preserve the state of the cube. But there is a catch! Since any transposition1 of two corner pieces or two edge pieces will result in two other pieces being swapped, the actual setup to solving the cube blindfolded is slightly more complicated. JPerm’s tutorial explains it very well.
For reference, I started off with and still am using the M2/OP 3BLD (3x3x3 blindfolded) method. Once we have a method, we will need to know which pieces we have to switch and in what order. This is when lettering schemes come in. There is no official lettering scheme, and virtually any lettering scheme could work, but the Speffz lettering scheme (shown in the picture above) is the most popular amongst the blindsolving community, in part due to its ability to generalize to bigger cubes, allowing ambitious blindsolvers to solve 4x4x4 cubes, 5x5x5 cubes, and even an 11x11x11 cube while blindfolded.
Recently, to speed up my blindfolded practice, I labelled a cube with the Speffz lettering scheme using a label printer and transparent label tape. There were not many algorithms to remember, and I quickly got the hang of the execution (blindfolded) process. And now it seems that my reliance on the labelled cube is holding me back from blindsolving on a regular cube. I also haven’t created a letter scheme yet. A letter scheme is a “work bank” that associates an ordered pair of two letters with a word (that depicts a familiar concept or object) that is used to allow blindsolvers to employ the Loci memory technique.
To help with the first issue, I decided to create an Anki deck to help me memorize the Speffz lettering scheme by associating the letters with the colors of the stickers on the corresponding piece. I began by designing a simple template for a corner piece and an edge piece using a sprite-editing app called Aseprite. I liked the pixel-y look of the initial design, so I then proceeded to color in each piece. I wanted to have two separate options for Classic and Full Bright stickers.2 For the Full Bright set, I used Sky Blue instead of Fluorescent Blue. I found my Classic sticker set palette here and my Full Bright sticker set palette here.
Sticker Set Comparison
Color (Classic) | HEX Value | Color (Full Bright) | HEX Value |
---|---|---|---|
White | #FFFFFF |
White | #FFFFFF |
Yellow | #FFD500 |
Fluro Yellow | F6FF00 |
Red | #B90000 |
Red | #DD0000 |
Blue | #0045AD |
Sky Blue | #017EFF |
Green | #009B48 |
Fluro Green | #00E202 |
Orange | #FF5900 |
Fluro Orange | #FF8B1A |
After the colors were filled in (and some small design errors were made), I added the lettering onto the diagram in accordance to the Speffz Letering Scheme. This was accomplished with the help of Python and the PIL
pillow image processing library. In this step I also fixed some minor design flaws that duplicated itself into each file (one file per sticker). Writing various Python and shell scripts to help me manage these files, and giving them a consistent (though quite ugly) naming convention helped reduce the amount of manual labor needed in this step. I initially planned to use a monospaced font for the labels. However, none of the monospaced fonts I had looked good when scaled up and placed on my design. So I ultimately chose to go with the Times Roman font. To account for the characters’ variations in width, I found this github file containing information about the widths of each character in the Times Roman font, explained here in detail. Here’s a sample of what it looks like with Full Bright stickers on top and Classic stickes below.
Then I wrote another python script to handle the imports to Anki. Finally, my Anki deck is complete, and it could be accessed here. If the link does not work, you can download an earlier version directly from this site as well!
Note that this deck is made for the suggested white-top green-front orientation (also used by the WCA for scrambles). After I am able to recognize and associate the stickers with the Speffz lettering system, I will work on a word association “bank” to allow me to memorize letter pairs more consistently.
-
Interchange of two elements. See Cyclic Permutations. ↩
-
I mistakenly confused “Classic” with “Half Bright,” so all of my classic sticker image files were labelled with
_hb
. However, I thought there was no need to change it. ↩