This may seem off topic, but bear with me. We’ll get to the pretty pictures.
Another interest of mine is twisty puzzles like the Rubik’s cube and family. There’s a community of twisty puzzlers you can check out to get an idea at the Twisty Puzzles Forums.
Battle Gears is a puzzle by the famous puzzle inventor Douglas Engel. It features two overlapping disks of pieces sliced to allow some moves but not others. There are 8 possible stopping positions for each disk. Looking at the polygon in the center of each disk, we can see that the positions allowed for each disk are evenly spaced at increments of 1/8 of a rotation, or 45 degrees.
Battle Gears sparked some discussion on the Twisty Puzzles Forums about whether it jumbles. Jumbling is a term that can get very technical. So let’s back up, and just think about moves that are blocked.
Imagine rotating the black disk 1/8 turn counter clockwise. Even better, I’ll show you:
See how the yellow disk is unable to rotate? The move is blocked because there’s a cut missing on the black disk. Here’s the cut we would need to rotate the yellow disk.
If that cut existed, then the yellow disk would be able to move. The two pieces going across that cut now would become four. But the designer merged those pieces instead, removing the cut. In twisty puzzle circles we call this bandaging. Imagine placing a band-aid over each cut in question, merging four pieces into the two we have.
Bandaging might be easier to see on a normal Rubik’s cube, as shown in this version built by Mark Storey. You can see that some cuts we expect are gone, making some moves impossible.
If we’re saying Battle Gears is a bandaged puzzle, then what would an un-bandaged version look like? If we went to every possible position and added the cuts needed to allow each disk to move? As it turns out, Twisty Forum member GuiltyBystander provided an image of the Unbandaged Battle Gears. In the following puzzle, you have all the cuts needed to make any 1/8 rotation turn whenever you want. You could say this is the true native form of this puzzle, given 8 positions per disk (N=8) and the radius shown, which is about r=1.4 if the distance between the disks is 2.0.
Some investigation was also done on another Douglas Engel design, “Gizmo Gears”. It looks like it has 8 positions, but if you look closely you can see it’s really 12 position geometry (N=12), with 4 cuts bandaged out.
The key observations that lead from all of the above to generating pretty pictures were made by Bob Hearn and Brandon Enright.
Bob Hearn wrote some incredible code to generate full unbandagings of puzzles with any number of positions and size of disks, by tracking slices after a certain number of iterations, which you can read about here. His pictures are stunning, and they show “Hearn Fractal” structure with quasicrystal behavior, including penrose tilings!
Brandon Enright wrote code to generate images of unbandagings in a different way. Instead of tracking slices, he sampled points and counted the number of steps it takes a certain pixel to get back to the starting point under a given sequence of moves. You can read about that here. One huge contribution from Brandon was the discovery that specific moves could generate more interesting, more structured results. Not full unbandagings, but limited unbandagings for a specific sequence. Counterclowise on the left disk and then clockwise on the right disk, repeated. [A’ B] He found some amazing fractal patterns like this fractal snowflake at N=12.
With Bob and Brandon’s blessing, I added Gizmo fractal rendering to DeluxeRender. A gizmo renderer can be called instead of the ray tracing code. Here’s Enright’s snowflake from my renderer.
In motion, some beautiful patterns emerge. (This is N=8)
And finally, here are links to many of these collections for different values of N.
N=1 highres
N=2 highres
N=3 highres
N=4 highres
N=5 highres
N=6 highres
N=7 highres
N=8 highres
N=9 highres
N=10 highres
N=11 highres
N=12 highres
N=13 highres
N=14 highres
N=15 highres
N=16 highres
N=17 highres
N=18 highres
N=19 highres
N=20 highres
N=21 highres
N=22 highres
N=23 highres
N=24 highres