FW Editor: Why did you develop Unravel? How long it took for you to develop the final version of this program?
The Java version of the Unravel program is the culmination of a number of earlier developments spread out over a long period and all undertaken just as a leisure activity. I first became interested in the Rubik's family of hardware cubes in the 1980s. In particular, I became a victim of the 4x4x4 Rubik's Revenge and the quantum leap that presented relative to the standard 3x3x3 cube. The ease of making a false move and undoing earlier painstaking work soon became apparent. I visualized that a software cube could have the potential to remove a lot of the stress associated with solving hardware cubes. Over time I produced various versions with progressively improved capability. My earliest version that still retained monochrome monitor capability for size 2x2x2 to 11x11x11 cubes (15x15x15 with color monitors) was produced as a Windows executable program (Fortran source) in 1991. Subsequent Windows platform versions based on C and then Visual C++ source programming languages were produced. The latest Java version (capable of running on all platforms) has a program limit of a size 95 cube (often referred to as size 95x95x95). Available pixels and users visual acuity may not allow the program limit to be reached. I estimated at an early stage that the Java Unravel version would be a 2000 hour development in my case spread over about 5 years and that is a fair approximation of the actual time taken bearing in mind Unravel is a fairly sophisticated program and there was no pressure to finish it in a hurry.
FW Editor: Are you planning on still updating this program? Or do you think the final version is as best as you can get?
I believe that I have covered all the issues that would render the Unravel software readily usable by anyone who could solve a 4x4x4 hardware cube. Most importantly, with on-line help and the additional cube solving guidance (cubesolving.pdf) available from my website, help is on-hand for anyone wishing to solve big cubes. I do not see a need for any radical changes or extensions to the Unravel software but may need to incorporate minor changes subject to user comments.
FW Editor: In the future, if the program is still having success, are you planning to charge people for it? Every good thing has a price.
I have no plans to charge people for the Unravel program. I have nominated it as Freeware software (no cost) but not Free software (I have not provided the source code).
FW Editor: Can you tell us how the program really works, for people who are not really interested in programming, but only on math, and Rubik cube?
While Rubik cube maths is a topic of interest in its own right, the maths included in Unravel, and presumably in any other Rubik's cube family software cubes available from other programmers, is fairly minor. At my website, I have a comprehensive article cubestates.pdf that provides some material that I have not found anywhere else on permutations for cubes of any size.
Basically, all cubes are manipulated by a series of quarter turns of one or more layers and the Unravel software enables that to be done in conformity with the rotational rules that apply for hardware cubes. A two-dimensional display of the cube, which allows all elements (cubies) of the cube to be in view all the time, is used. Cube manipulation for the Unravel program is in accordance with keyboard instructions. Because computer keyboard entry of instructions is used, macros (which map short strings to longer strings) can be used as algorithm shortcuts. Default macros are provided but users can create their own macros or not use them if they wish. The use of macros appears to be unique to the Unravel program at this time. Other possibly unique features of the Unravel program are the implementation of a smart elapsed time clock and the incorporation of a secondary marker grid for ease of identification of cubies in cubes of large size. For example, a marker grid to form 4x4 segments on each face for a size 16 (often referred to as 16x16x16) cube is available. Other useful rather than unique features are the ability to select cube size in increments of unity starting at size 2, the ability to save and later retrieve the state of a partially solved cube (including elapsed time from scrambled start), the automatic sizing of the cube image to make maximum use of available client area for cubes larger than size 6, the inclusion of comprehensive on-line help, and the ability to change (and retain on program exit) the color set for the cube and other items.
FW Editor: What was the biggest cube you personally solved, without this program? Do you think your program is helping people?
The biggest hardware cube I have solved is the size 4 (Rubik's Revenge). When I first produced software for solving cubes, no bigger hardware cubes were available. I have not solved any big software cubes other than with my own software. The only way I could judge whether the Unravel program is helping people is by getting user feedback and over time I expect to get that. (I created my website in August 2010).
FW Editor: Is this the only software you developed? Any other words you would like to tell us about your work?
I have not developed any other software except some related to my employment. My most significant software development occurred around 1980 for in-flight monitoring of the accumulated fatigue damage to heavily loaded helicopter gears in normal operational flying (as distinct from test flying). It was the first time a full fatigue damage calculation, that included component strength characteristics, had been performed in real time in a helicopter. The system using this software was patented in the US, Canada and Australia. Further details about this and other notable employment achievements can be found at my website.
Comment about big cubes
Writing software that provides users with the means to manipulate big cubes is not much more difficult than doing the same for small cubes. However, solving very big cubes presents difficulties in identifying what belongs where and would be extraordinarily time consuming. The number of center cubies becomes so numerically dominant in big cubes that placing them becomes the main issue. Solving big cubes would be so challenging that cube software developers are unlikely to have solved any really big cubes that their software permits users to try their hand with if they wish. Most users who may have ambitions for solving big cubes could be well satisfied if they manage to solve a cube in the 15 to 25 size range.
About this interview