CubeTwister

Superset ENG 4x4

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' N4L U' N4D F' N4B L' N4R D' N4U B' N4F
○○○● +180° R2 T1R2 N1R2 U2 T1U2 N1U2 F2 T1F2 N1F2 L2 T1L2 N1L2 D2 T1D2 N1D2 B2 T1B2 N1B2
○○○● -180° R2' N4L2 U2' N4D2 F2' N4B2 L2' N4R2 D2' N4U2 B2' N4F2
○○●● +90° TR T2R N1-2R TU T2U N1-2U TF T2F N1-2B TL T2L N1-2L TD T2D N1-2D TB T2B N1-2B
○○●● -90° TR' N3-4L TU' N3-4D TF' N3-4F TL' N3-4R TD' N3-4U TB' N3-4F
○○●● +180° TR2 T2R2 N1-2R2 TU2 T2U2 N1-2U2 TF2 T2F2 N1-2F2 TL2 T2L2 N1-2L2 TD2 T2D2 N1-2D2 TB2 T2N2 N1-2B2
○○●● -180° TR2' N3-4L2 TU2' N3-4D2 TF2' N3-4B2 TL2' N3-4R2 TD2' N3-4U2 TB2' N3-4F2
○●●● +90° T3R N1-3R T3U N1-3U T3F N1-3F T3L N1-3L T3D N1-3D T3B N1-3B
○●●● -90° T3R' N2-4L T3U' N2-4D T3F' N2-4B T3L' N2-4R T3D' N2-4U T3B' N2-4F
○●●● +180° T3R2 N1-3R2 T3U2 N1-3U2 T3F2 N1-3F2 T3L2 N1-3L2 T3D2 N1-3D2 T3B2 N1-3B2
○●●● -180° T3R2' N2-4L2 T3U2' N2-4D2 T3F2' N2-4B2 T3L2' N2-4R2 T3D2' N2-4U2 T3B2' N2-4F2
●●●● +90° CR N1-4R CU N1-4U CF N1-4F CL N1-4L CD N1-4D CB N1-4B
●●●● +180° CR2 N1-4R2 CU2 N1-4U2 CF2 N1-4F2 CL2 N1-4L2 CD2 N1-4D2 CB2 N1-4B2
○○●○ +90° MR NR N2R MU NU N2U MF NF N2F ML NL N2L MD ND N2D MB NB N2B
○○●○ -90° MR' N3L MU' N3D MF' N3B ML' N3R MD' N3U MB' N3F
○○●○ +180° MR2 NR2 N2R2 MU2 NU2 N2U2 MF2 NF2 N2F2 ML2 NL2 N2L2 MD2 ND2 N2D2 MB2 NB2 N2B2
○○●○ -180° MR2' N3L2 MU2' N3D2 MF2' N3B2 ML2' N3R2 MD2' N3U2 MB2' N3F2
○●●○ +90° WR M2R WU M2U WF M2F WL M2L WD M2D WB M2B
○●●○ +180° WR2 M2R2 WU2 M2U2 WF2 M2F2 WL2 M2L2 WD2 M2D2 WB2 M2B2
●○○● +90° SR S1R SU S1U SF S1F SL S1L SD S1D SB S1B
●○○● +180° SR2 S1R2 SU2 S1U2 SF2 S1F2 SL2 S1L2 SD2 S1D2 SB2 S1B2
 
Permutation Right Up Front Left Down Back
Faces r u f l d b
Orientation Plus: + Minus -
  Plus Plus: ++      
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 4x4 is a notation for Rubik's Cubes with 4 layers, such as the Revenge 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.


Tier twists: TR, T3R
--------------------------------------
Twists which go multiple layers deep (tier twists) are described by prepending the letter «T» to a face twist: «TR», «TU'», «TF2».

The depth of the tier can be specified by inserting a number after the letter «T». For example, «T3R» twists three layers deep in clockwise direction as seen from the right face.

If the dept is not explicitly specified, the value «2» is assumed: «TL», «TD'», «TB2».

To keep scripts short, «T1R» is never used, because it is equivalent to «R». «T2R» is never used, because it is equivalent to «TR».


Mid-layer twists: MR, M2R
----------------------------------------
Twists of the layers in the middle (mid-layer twists) are described by prepending the letter «M» to a face twist: «MR», «MU'», «MF2».

On cubes with an even amount of layers, the mid-layers are the ones closer to the face of the cube.

The number of layers twisted can be specified by inserting a number after the letter «M». For example, «M2R» twists two layers in the middle in clockwise direction as seen from the right face.

If the depth is not explicitly specified, the value «1» is assumed, for example «ML», «MD'», «MB2».

To keep scripts short, «M1R» is never used, because it is equivalent to «MR».


Slice twists: SR
----------------------------------
Twists of opposing faces (slice twists) are described by prepending the letter «S» to a face twist. For example, «SR» turns the right face and the opposing left face in clockwise direction as seen from the right face.


Wide-layer twists: WR
----------------------------------
Twists of all layers except the outer faces (wide-layer twists) can be described by prepending the letter «W» to a face twist: «WR», «WU'», «WF2».

«WR» is equal to «M2R» and twists three layers in the middle in clockwise direction as seen from the right face.


Numbered layer twists: NR, N3R
-------------------------------------
Twists of an individual layer of the cube (twist of the n-th layer) are described by prepending the letter «N» to a face twist. The number of the layer can be specified by inserting the number of the layer after the letter «N», for example «N4R», «N3U'», «N5F2».

Layers are numbered starting from the face described by the face twist towards the opposite face. The layer at the face of the cube has number «1», the next layer has number «2», and so on.

If the layer is not explicitly specified, the value «2» is assumed, for example «NL», «ND'», «NB2».

To keep scripts short, «N1R» is never used, because it is equivalent to «R». «N2R» is never used, because it is equivalent to «NR».


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».
e. g. An edge part having its stickers at the front right corner is described by the two letter sequence: «fr».
e. g. A side part having its sticker at the right face of the cube is described by the letter: «r».

Each cycle contains a list of either corner parts, edge parts or side 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 prefix is added to the first location description of a sequence to denote this change in orientation.

If an edge part is flipped, a «+» prefix is added. If a corner part is twisted clockwise a «+» prefix is added, and if it is twisted counterclockwise a «–» prefix is added. If a side part is twisted 90° clockwise a «+» prefix is added, if it is twisted by 180° a «++» prefix is added and if it is twisted 90° counterclockwise a «-» prefix is added.

e. g. the move R is described by the following permutation: «(urf,bru,drb,frd) (ur,br,dr,fr) (+r)»


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