Magic Cube 3D Program Home

MC3D is a Rubik's Cube simulator with some unusually powerful features. As its name implies, it bears some relationship to the Magic Cube 4D Program which implements a four dimensional analogue of Rubik's Cube.

There is plenty of documentation here for it. The documentation pages described below are somewhat redundant with respect to one another and with respect to the help provided in the program. This is deliberate, as it is expected that few will read all of it. The various forms of documentation are directed to different purposes. After the Launch button for the Java Applet version of the program below, there is a very brief summary of some features you will want to be able to use.

The Features page offers a description of all the features of the program. It is not complete, though, as some of its details may require familiarity with what may be found on the Concepts and Terminology page. Furthermore, additional operational details may be found on the Operations page. There is also a Commentary Page which discusses the significance of the built-in configurations in some detail and which includes images to illustrate them. For those who are really interested, there is a Philosophy page which describes some of the motives involved in development of the program, and there is a History page which describes the process by which this program came into being. Finally, there is a discussion comparing MC3D and MC4D.

There is an application version of the program. It has the considerable advantage that you can save the state of the program and recall it later. There are enough configuration options that you will probably find this useful if you get into using the program. You can download the application version from here. (For those who check such things: MD5 checksum and revision history.) For the application, if you do not already have the Java Run Time Environment, you will need to install it. To learn how to do that, go to Sun's page on the subject. After you download the MC3DApp.jar file for the application, you should put it in its own directory, as the state saving files are by default placed in the directory where the program resides. Under Windows, you should be able to start execution by simply double clicking the .jar file. You can also make a shortcut for it and put the shortcut wherever it's convenient.

For those interested, you can also download the source.

(FWIW, both .jar files (the archive for the Java Applet referred to by the HTML here and the downloadable Java application version of the program) contain the (very small) classes for both the Applet wrapper, MC3D.class, and the application program wrapper, MC3DApp.class. In particular, if you extract MC3DApp.jar and 'rejar' it as MC3D.jar, you get an archive for the Applet which you could then reference in your own HTML.)

Linux note: I have tried running MC3D under Linux by trying it with Knoppix 3.7. There is a small problem with the KDE in that, by default, it usurps the Alt modifier with the mouse. It is possible to fix this: In the KDE Control Center go Desktop -> Window Behavior -> Moving. Under "Inner Window ...", change the modifier key to "Meta". Then the Java program can see the Alt modifier on mouse clicks. (When KDE's modifier key is set to Alt, the Java program does not see a Windows key on a Windows keyboard as Meta, though the KDE does see it as intended when it is selected as KDE's modifier.) Also, I note that, for 2-button drags, you cannot press the two mouse buttons simultaneously. This is probably a sufficient reason to enable 1-button drags (for tumbling and rotation) when running under the KDE. There may be other such 'gotchas' with other desktops, in which case I would appreciate feedback based on the experience of folks with other variants of Linux and/or Unix.

Email author.

Are you ready?:

If you are not initially motivated to read the fine documents, here is a brief summary for some of the more useful but less obvious operational details:


    Click anywhere in 2D display.  Which button determines direction.
    Click on a BFUDLR character under either tattle.
    Type a BFUDLR character.  

    Use Shift modifier to reverse direction.
    Use Control modifier to turn center slice.
    Use Alt modifier to turn whole cube.
Change Configuration
    The program has a number of built-in configurations which
    you can invoke using the ConfigSelect Menu.  Try this to get
    an idea of what's possible.
    Drag radially from near one of the two virtual puzzle centers
    with two mouse buttons depressed.
    Drag circumferentially from periphery with two mouse buttons
Control Animation
    Depress a mouse button while animation is in progress.  Then,
    while the mouse button remains down, the angle of the twist will
    depend on mouse cursor position.  If there is only one face which
    is out-facing and you do a twist about that face's axis, the angle
    for the animation depends on angular position of the mouse cursor
    relative to the center.  Otherwise and for other twist axes, the
    angle depends on motion perpendicular to the twist axis.
Move a Center
    Drag an associated sticker with Control and Alt both depressed.
    To use the roving 2D eyepoint, you should enable the Rover 1D
    projection and the Rover View Field on the View Menu.
    To move 2D eyepoint use arrow keys with Control modifier.
    To change heading or view angle use arrow keys with Alt modifier.
    Speed doubles with each repeat of corresponding arrow key.
    It stops when you hit the arrow key for opposite direction.

Page hit counter:

Last modified: Mon Jul 17 16:33:23 CDT 2006