Table of contents
Purpose
The purpose of the Rubik Script Facility is to
- have fun :)
- create and test your own cube scripts (record, edit and play back).
- run scripts from other people
- analyse the state transitions caused by the scripts
- translate different script languages
Components
The applet consists of the following components:
- On the left you see a three dimensional model of Rubik's Cube.
Rotate the cube by grabbing it with the mouse.
Twist it by shift- or control-clicking it.
- On the top you see the main controls:
The reset button
resets the position of the cube.
The record button
starts recording of cube twists.
The stop button
stops recording or playback of the script.
The start button
checks the current script and starts playback.
- The slider on the right of the main controls is only active,
when a script is checked. Use it, to browse through the script.
- On the top right is the check button
.
Use this button to check the syntax of a script.
- Use the language chooser
to select a language of your choice.
Note: If the script is checked, it will be translated into the
selected language!
- The text field on the bottom right of the applet describes the current
state of the cube using the 'Operation-Notation' from Bandelow.
How to ...
... record a script:
- Clear the script field.
- Press the reset button
.
- Choose a script language using the language chooser (e. g.
).
- Press the record button. Make sure it is pressed and red:
.
- Twist the three dimensional model of Rubik's Cube by shift- or control-clicking
it.
... play back a script:
- Enter the script into the script field (e. g.
(MR2 CU)2 MU2
).
- Select the language of the script (e. g.
).
- Press the play button
.
... translate a script.
- Enter the script into the script field (e. g.
(MR2 CU)2 MU2
).
- Select the language of the script (e. g.
).
- Press the check button
.
- Select the new language of the script (e. g.
).
- The result should look like this:
RUM NEB RUM NEB NUM
... create an impossible pattern.
- Enter the following script:
MU MR' MU' MR . R' U B2 U' F' U B2 U' F R . (-dbl)
- Set the language of the script to Bandelow english
.
- Press the play button
.
- Without the last statement
(-dbl) the pattern would not
look right.
The purpose of (-dbl) is to rotate the corner-part at the
down-bottom-left corner of the cube counter-clockwise. Due to mechanical
limitations of the cube it is impossible to rotate a single corner-part
without disassembling the cube.
... create a screensaver.
- Enter the following script:
(R CU)1260
- Set the language of the script to Bandelow english
.
- Press the play button
.
- The cube will by twisted 1260 times until it reaches its initial state
again. If you take a look at the state field, you will notice that it
takes 5040 twists to put the center cubes back to their initial state
as well.
What script languages are supported?
Singmaster (english)
This is the simplest of all implemented script languages.
It supports only 18 different statements.
Surface layer twists:
|
Right |
Up |
Front |
Left |
Down |
Back |
90° clockwise |
R |
U |
F |
L |
D |
B |
90° anti-clockwise |
R' |
U' |
F' |
L' |
D' |
B' |
180° clockwise |
R2 |
U2 |
F2 |
L2 |
D2 |
B2 |
Bandelow (english)
This is a very powerful script language. I did only implement a subset
of Bandelow's 'Maneuver'-Language but it is still very impressive: 92
different commands (wow!).
Surface layer twists:
|
Right |
Up |
Front |
Left |
Down |
Back |
90° clockwise |
R |
U |
F |
L |
D |
B |
90° anti-clockwise |
R' |
U' |
F' |
L' |
D' |
B' |
180° clockwise |
R2 |
U2 |
F2 |
L2 |
D2 |
B2 |
Mid-layer twists:
|
Right |
Up |
Front |
Left |
Down |
Back |
90° clockwise |
MR |
MU |
MF |
ML |
MD |
MB |
90° anti-clockwise |
MR' |
MU' |
MF' |
ML' |
MD' |
MB' |
180° clockwise |
MR2 |
MU2 |
MF2 |
ML2 |
MD2 |
MB2 |
Rotations of the whole cube:
|
Right |
Up |
Front |
Left |
Down |
Back |
90° clockwise |
CR |
CU |
CF |
CL |
CD |
CB |
90° anti-clockwise |
CR' |
CU' |
CF' |
CL' |
CD' |
CB' |
180° clockwise |
CR2 |
CU2 |
CF2 |
CL2 |
CD2 |
CB2 |
In-place rotation of the side parts:
|
Right |
Up |
Front |
Left |
Down |
Back |
90° clockwise |
+r |
+u |
+f |
+l |
+d |
+b |
90° anti-clockwise |
-r |
-u |
-f |
-l |
-d |
-b |
180° clockwise |
++r |
++r |
++f |
++l |
++d |
++b |
In-place rotation of edge parts:
|
+180° |
|
|
+180° |
up-front |
+uf |
|
up-back |
+ub |
front-left |
+fl |
|
back-right |
+br |
down-front |
+df |
|
down-back |
+db |
right-up |
+ru |
|
left-up |
+lu |
front-right |
+fr |
|
back-left |
+bl |
right-down |
+rd |
|
left-down |
+ld |
In-place rotation of corner parts:
|
+90° |
-90° |
|
|
+90° |
-90 |
up-front-left |
+ufl |
-ufl |
|
up-back-right |
+ubr |
-ubr |
down-left-front |
+dlf |
-dlf |
|
down-right-back |
+drb |
-drb |
up-right-front |
+urf |
-urf |
|
up-left-back |
+ulb |
-ulb |
down-front-right |
+dfr |
-dfr |
|
down-back-left |
+dbl |
-dbl |
Expressions:
repeat x n-times |
( x ) n |
invert x |
( x ) ' |
invert x n-times |
( x ) n ' |
Maybe you wonder why there are statements for in-place rotations of
individual parts defined? Well, the reason is, that Bandelow describes
some beautiful impossible patterns in his book 'Einführung in die
Cubologie'. This patterns can only be done, when the cube is taken apart
and one cube-part is put back in the wrong orientation into the cube.
See how to create an impossible pattern for an example.
Bandelow (german)
Same as Bandelow (english) but uses german names for the naming of
the cube sides.
Bandelow Phonetic (german)
This is a simple script language. The names used for the twists are
german sillables.
Surface layer twists:
|
Right |
Up |
Front |
Left |
Down |
Back |
90° clockwise |
RE |
NE |
VE |
LE |
SE |
HE |
90° anti-clockwise |
RI |
NI |
VI |
LI |
SI |
HI |
180° clockwise |
RU |
NU |
VU |
LU |
SU |
HU |
Mid-layer twists:
|
Right |
Up |
Front |
Left |
Down |
Back |
90° clockwise |
REM |
NEM |
VEM |
LEM |
SEM |
HEM |
90° anti-clockwise |
RIM |
NIM |
VIM |
LIM |
SIM |
HIM |
180° clockwise |
RUM |
NUM |
VUM |
LUM |
SUM |
HUM |
Rotations of the whole cube:
|
Right |
Up |
Front |
Left |
Down |
Back |
90° clockwise |
REB |
NEB |
VEB |
LEB |
SEB |
HEB |
90° anti-clockwise |
RIB |
NIB |
VIB |
LIB |
SIB |
HIB |
180° clockwise |
RUB |
NUB |
VUB |
LUB |
SUB |
HUB |
Randelshofer (english)
Same as Bandelow (english) but uses minus signs '-' for inversions.
Randelshofer (german)
Same as Bandelow (german) but uses minus signs '-' for inversions.
|