CubeTwister

Superset ENG 2x2

Move Right Up Front Left Down Back
○● +90° R T1R N1R U T1U N1U F T1F N1F L T1L N1L D T1D N1D B T1B N1B
○● -90° R' N2L U' N2D F' N2B L' N2R D' N2U B' N2F
○● +180° R2 T1R2 N1R2 U2 T1U2 N1U2 F2 T1F2 N1F2 L2 T1L2 N1L2 D2 T1D2 N1D2 B2 T1B2 N1B2
○● -180° R2' N2L2 U2' N2D2 F2' N2B2 L2' N2R2 D2' N2U2 B2' N2F2
●● +90° CR N1-2R CU N1-2U CF N1-2F CL N1-2L CD N1-2D CB N1-2B
●● +180° CR2 N1-2R2 CU2 N1-2U2 CF2 N1-2F2 CL2 N1-2L2 CD2 N1-2D2 CB2 N1-2B2
 
Permutation Right Up Front Left Down Back
Faces r u f l d b
Orientation Plus: + Minus -
Cycle Begin: ( End: )
Delimiter ,
Syntax precircumfix
 
Grouping
Grouping Begin: ( End: )
 
Repetition
Syntax suffix
 
Inversion
Invertor ' -
Syntax suffix
 
Reflection
Reflector *
Syntax suffix
 
Conjugation
Conjugation Begin: < End: >
Syntax prefix
 
Commutation
Commutation Begin: [ End: ]
Delimiter ,
Syntax precircumfix
 
Rotation
Rotation Begin: < End: >'
Syntax prefix
 
Delimiter
NOP · .
 
Comment
Multi-Line Begin: /* End: */
Single-Line Begin: //

Superset ENG 2x2 is a notation for Rubik's Cubes with 2 layers, such as the Pocket Cube. The notation is based on the English language. It supports 90° and 180° twists of the faces of the cube. A whole cube can be rotated along its face axes. Permutation and orientation changes of individual cube parts can be specified using permutation cycles.

The notation supports the following high-level constructs:
- grouping,
- repetition,
- inversion,
- reflection,
- conjugation,
- commutation, and
- rotation,
- single-line and multiple-line comments.


Single moves
===========================

Face twists: R, R', R2
----------------------------------
Clockwise 90° twists of the six faces of the cube are described by the capital letters: «R», «U», «F», «L», «D» and «B», (right, up, front, left, down, back).

Counterclockwise twists and rotations are described by appending the inversion operator «'» to a move: «R'», «U'», «F'», … .

In environments, where the the «'» character can not be used, the character «-» can be used as the inversion operator.

180° twists and rotations are described by appending the number «2» to a move: «R2», «U2», «F2», … .


Cube rotations: CR, CR', CR2
----------------------------------
Rotations of the whole cube are described by prepending the letter «C» to a face twist.

For example, «CR» rotates the whole cube in clockwise direction as seen from the right face.



Constructs
===========================

Sequences of moves
----------------------------------
Sequences of moves are specified by appending moves, for example «R2L2UD'F2B2UD'».

To improve readability, whitespace can be used to separate moves: «R2 L2 U D' F2 B2 U D'».

Sequences of moves can be separated using a middle dot character «·». In environments where this character is not available, the full stop character can be used «.». The following sequences are equivalent: «R2 L2 · U D' · F2 B2 · U D'» and «R2 L2 . U D' . F2 B2 . U D'».


Grouping
----------------------------------
Sequences of moves can be grouped using brackets: «(R U F)».


Repetition
----------------------------------
Moves and groups can be repeated multiple times by appending the number of repetitions to the closing bracket: «(R U F)3».


Inversion
----------------------------------
Moves and groups can be inverted by appending the invertor operator «'» to the closing bracket: «(R U F)'».


Reflection
----------------------------------
Moves and groups can be reflected using the reflector operator «*»


Conjugation
----------------------------------
Conjugations of type A B A' are described by enclosing the conjugator A with angle brackets and prepending it to the conjugee B: «<A>B».


Commutation
----------------------------------
Commutations of type A B A' B' are described by enclosing the commutator A and the commutee B with square brackets and delimiting A and B by a comma: «[A,B]».

Rotation
----------------------------------
Rotations of type A' B A are described by enclosing the rotator A with angle brackets and appending a invertor operator. The rotator is then prepended to rotatee B: «<A>' B».


Permutation cycles
----------------------------------
A permutation of the cube is described by a sequence of parenthesized lists for each cycle of the cube parts which are permuted.

The location of a cube part is described by the faces on which its stickers can be seen. A face of the cubes is described by the lower-case letters: «r», «u», «f», «l», «d» and «b», (right, up, front, left, down, back).

e. g. A corner part having its stickers at the upper front right corner is described by the three letter sequence: «ufr».

Each cycle contains a list of corner parts which have been permuted.

The face names in a cycle are used to describe orientation changes of the parts. The first face name in a location description denotes where the first sticker goes. The second face name in a location description denotes where the second sticker goes, and so on.

e.g. «(ufl,rfu)» describes, that the first sticker on face «u» at corner location «uf» goes to face «r» at corner location «rfu», the second sticker on face «f» at corner location «ufl» goes to face «f» at «rfu», and the third sticker on «l» at «ufl» goes to «u» at «rfu».

If the cube parts change orientation after going through a single cycle, then a «+» or a «-» character is added to the first location description of a sequence to denote this change in orientation.


Comments
---------
Single line comments start with two slash characters: «// this is a comment».

Multiline comments starts with a slash and a star characer and end with star and a slash character: «/* this is a comment */».

Werner Randelshofer, Walter Randelshofer 2010-03-27