MC3D/MC4D Relationships and Comparisons

by David Vanderschel

When I started writing this documentation, I kept making references to the MC4D program because that was what was on my mind. However, I realized that there would be folks who had no idea about MC4D but who would be interested in MC3D; so I decided to expunge most of the MC4D references from the main stream of the documentation and introduce such comments in their own place. Here!


MC3D can be configured to operate in a manner analogous to the way MC4D works. This can be useful to make points about what MC4D is doing. For example, the ability to continuously adjust face and sticker shrinking while continuously updating the graphic consequences should help some folks better understand what is going on in this respect in both puzzles.

Stickers Only

One strong relationship is that, like MC4D, the only thing that the program draws is representations of the stickers on the cube. I.e., there is no attempt to represent the cubies on which the stickers are stuck. Both programs allow face shrink and sticker shrink to make space between faces and stickers, potentially allowing a better view of what is going on.

Reduced Dimension Model

In MC4D, what we are looking at is a 2D rendering of the 3D model which results from a projection of the 4D puzzle to 3-space. For us 3D beings, the reduced dimension model which results from the projection of the 3D puzzle from its natural 3D world to 2D is something that we can perceive directly in the form of a 2D image. However, MC3D is also intended to allow the 3D puzzle to be approached from the point of view of a Flatlander. A Flatlander cannot directly perceive the projected 2D model, just as we 3D players cannot directly perceive the 3D model resulting from projection of the 4D puzzle. To view the model in either case, one more projection is required.

Second Projection

MC3D also generates 1D projections of the 2D image (which is "the model" from a Flatlander's perspective) in order to allow a user to simulate the behaviour of a Flatlander solving the 3D puzzle. The 1D projections in MC3D present only the sort of information that would be accessible to a Flatlander. The resulting situation is analogous to the difficulty of us 3D beings trying to solve the 4D puzzle using a 2D rendering of the 3D model resulting from the 4D to 3D projecton. (It appears to me that solving the 3D puzzle under flatland restrictions is actually more difficult than solving the 4D puzzle based on the 2D rendering.)

Reorientation of Model

For the purposes of the second projecton, both programs allow the user to change his point of view relative to the reduced dimension model. In the 3D to 2D case, what corresponds to tumbling the 3D model from the 4D to 3D case is simply rotation of the 2D image.


Configuration #1 is most nearly analogous to what MC4D does. The eyepoint is on the z-axis. Face and sticker shrink allows some ability to see between faces and/or stickers. For a 3D observer viewing this 2D projection, the shrink does not really help and such an observer could just as well use something like Configuration #2, which may be described as a box with the lid set aside. The nice thing with this projection is that the images of no pair of stickers on the box overlap. However, a Flatlander operating in the 2D projection space needs the shrinking in order to be able see 'behind' ('around', 'between') the stickers.

Twist Commands by Clicking

Both programs allow you to command a twist by clicking on a sticker in the face you want to twist.

Access to Other Layers

A twist need not apply to the face, or only the face, you click on.


Reduced Dimension Model

MC4D requires that the 4D eyepoint for the first dimension-reducing projection (to the 3D model) be on a coordinate axis. MC3D makes no such restriction. So long as MC3D's 3D eyepoint is outside the puzzle model, it can be anywhere in 3-space. I.e., MC3D can arbitrarily reorient the puzzle itself, not just the reduced dimension model.

Second Projection

For the transformation for viewing the 3D model, MC4D allows the eyepoint to be placed anywhere on a sphere which contains the whole 3D model. With its roving eyepoint, MC3D allows more generality: The eyepoint for its second projection can be inside the 2D model, between stickers, wherever.


Square up the window for MC3D's Configuration #1. Now the Up face plots on top of the 'box', so you can no longer see all the stickers underneath its stickers.

Presentation of Near Face

MC4D solves the above problem by refusing to draw the face nearest the 4D eyepoint at all. This is silly. It looks just like the rendering of the far face - only bigger. In both cases, all sticker corner coordinates have the same value for the coordinate axis on which the eyepoint lies, so there is not even any perspective distortion involved in the 4D to 3D transformation of the far and near faces. The only problem is that the stickers on the near face project (in large form!) into the same volume occupied by the projections of all the other stickers on the puzzle, thus making the model impossible to interpret. MC3D provides the simple solution to this problem of simply moving the image of the near face aside, plotting it relative to a separate virtual cube center.

Multiple Out-Facing Faces

In MC4D, it is only possible for there to be one face which, from the perspective of the 4D eyepoint, is seen from the outside. In MC3D, with its more general initial dimension-reducing projection, there can be as many as three faces which are seen from the outside. They are all plotted relative to the same virtual center which need not be displayed in the same location as the virtual center for the in-facing faces.

Note that, from the point of view of the lower dimensional observer, the in-facing/out-facing distinction is not very meaningful. A 3D being cannot see any particular difference between the projection of a 3D face of the 4D puzzle depending on whether it is seen from the inside or outside. Similarly, in MC3D, the projection of an out-facing face looks just like that of an in-facing one (except that it may appear bigger on account of perspective). In-facing vs. out-facing for 3D faces is almost a non-issue for the Flatlander. (A way in which it can become noticeable for a Flatlander is if twist directions are defined from the 3D point of view. Then he can tell whether a face was in- or out-facing in the initial dimension-reducing projection depending on which way it turns when twisted. But, for the Flatlander, this is primarily of academic interest, not practical.)

From the appearance point of view for us 3D beings, I claim that in- vs. out-facing is also a non-issue for the 4D puzzle. The sense in which it is an issue, for both puzzles, is that the projection of out-facing stickers may occupy the same space as the projections of some in-facing stickers thus occluding your view of in-facing stickers. The same solution to the problem works with both puzzles: Plot the out-facing stickers relative to a different virtual center from that used for in-facing ones.

Twist Commands by Clicking

Since all a click need indicate in MC3D is a face to twist, you can be very sloppy about where you click and still succeed in indicating the correct face. With MC4D you must be much more careful because you are indicating much more information about how to twist with the click.

MC3D does not require that animation for a previous twist command end before it can accept additional twist commands. Twist commands, as well as undo and redo commands, are queued and performed in FIFO order. This is especially handy for performing a 180 degree twist by double clicking.

MC3D allows the user to take over the animation of a twist so that animation can be slowed or even stopped at intermediate points during the twist.

Twist Commands by Other Means

MC3D admits additional methods for specifying twists. These include BFUDLR notation on the keyboard and clicking on the BFUDLR characters under the MCS and FCS tattles.

Access to Other Layers

MC4D permits any of 7 possible combinations of slices, but MC3D allows only four combinations: the slice of the indicated face only, the center slice only, the whole puzzle, and the external slices only. (The extra generality in MC4D does not help for anything I ever want to do. Even the external slice only option is pretty marginal.)

Viewing All Stickers Without Separating Centers

A pleasant surprise for me with an early version of the program is Configuration #3, in which the 'top' is in place on top of the 'box'; but you can still see (almost) all the stickers through the spaces between the stickers of the 'top' (or up-face). The one sticker you cannot see is that opposite the up-facing face sticker. However, that can only be the one face sticker which is complementary to that on top, so there is no real loss of information due to the fact that the down-facing face sticker is occluded. That happy arrangement still occurs with the eyepoint on an axis, but once I generalized the 3D to 2D viewing transformation, many more such possibilities came in to being. A related example is that of Configuration #7, which does not even require any face shrink. But my favorite is Configuration #4.

I have my doubts about whether there would exist analogous (non-axis-aligned) projections of the 4D cube which would achieve a similar effect with respect to visibility of all hyperstickers. On the other hand, it may be possible to find a 4D eyepoint location which results in two groups of four hyperfaces (in- and out-facing) which, when drawn relative to separated centers, would show all hyperfaces in a more intuitive manner than the current axis-aligned projection.


Relative to MC4D, I use "tumble" to refer to reorientation of the reduced dimension model. Relative to MC3D, I use "tumble" to refer to reorientation of the 3D puzzle itself. Though these operations are not analogous in 4D/3D sense, they do appear to be similar from the operational point of view. They don't work quite the same way though.

Unlike MC4D, the way tumbling is done in MC3D might be called "conservative" in the sense that the final effect depends only on the start- and end-points of the drag and not on the history of where the mouse cursor has travelled during the drag. (The problem is that turns about the x- and y-axes do not commute and, when this is allowed to happen, it leads to unintended rotational behaviour in MC4D's 2D projection plane which I find annoying.) The reorientation (from the orientation as it existed at the beginning of the drag) displayed by MC3D at any instant depends only on the line segment determined by the start and end points of the drag. The axis about which the turn occurs is perpendicular to that line and lies in the projection plane. (You can think of the projection plane as being embedded in 3-space where it passes through the origin). The amount of turn is proportional to the length of the line segment.

Since the axis of a MC3D tumble lies in the projection plane (which can be thought of as equivalent to the display surface), a single tumble operation cannot change the position any points on that axis, and thus cannot be used to rotate the 2D image. Thus, in MC3D, rotation of the image is treated as a distinct operation separate from tumbling, and it is implemented in a far more intuitive fashion than the history-related side effect of MC4D tumbling. (In fact, all it requires is direct modification of a single parameter called "Rotation" which is all the mouse-based method does.)

Last modified: Fri Jul 14 15:15:34 CDT 2006