RubikBandage.exe is a program to compute the number of positions at various distances from the solved state, given a specification on bandaging cubies and move restrictions. It has a limit of slightly over 117 million positions. Once it hits the limit the program terminates without providing position counts for any further number of moves from the solved state.

This program uses 2GB of memory. If you don't have at least 2GB of RAM on your computer, it probably will not be practical to run this program. If your computer only have 2 GB of RAM total, it still might not run or run very slowly.

The program is intended to be run on Windows in a Command Prompt window. Command line arguments are used to specify the bandaging and move restrictions. The program only supports a fixed centers model of the cube, so no inner layer turns, double layer turns or cube rotations are supported. Command line arguments are not case sensitive.

To specify bandaging a corner to an edge, include a command line argument specifying the corner. The glued surfaces are assumed to be parallel to the first-mentioned sticker. The order of the other two stickers does not matter. For example, LFU means to bandage the LFU corner to the UF edge. To bandage an edge to a center, specify the edge. Again, the glued surface is assumed to be parallel to the first sticker. For example FD means to bandage the FD edge to the D center.

To specify bandaging a center to the core, specify the center. This restricts the specified face from turning. For example, L will cause the L center to be bandaged to the core, so no L face turns will be allowed.

To specify only quarter turns are allowed for some faces, include a command line argument starting with a Q followed by the letters for the faces you want restricted. For example, QUD specifies that only quarter turns are allowed on the U and D faces. To specify only quarter turns are allowed for all faces, Q by itself is sufficient.

Similarly, to specify only half turns are allowed on some faces, include a command line argument starting with an H followed by the letters for the faces you want restricted. For example HFB restricts F and B face turns to half-turns only.

Examples:

Squares group (<U2, D2, L2, R2, F2, B2>):
RubikBandage h

<U, D2, L2, R2>:
RubikBandage f b hdlr

<U, R>:
RubikBandage d l f b

Bicube in QTM:
RubikBandage q lfu bur lub dfl drf dlb brd db bd df dl lu br

Four 3x3x1 bandaged columns using corner/edge bandages:
RubikBandage ulf dfl ufr drf urb dbr ubl dlb

Four 3x3x1 bandaged columns using edge/center bandages:
RubikBandage uf df ur dr ub db ul dl

