DeepCube is a computer program written in the Wolfram Language that simulates a generalized 3D cube puzzle. Inspired by the popular and time-tested Rubik's Cube, it extends the original 3x3x3 cube concept to cube lengths ranging from 1 through 9. Additionally, DeepCube models the motions and orientations of interior as well as exterior subcubes, each with all six of their faces viewable and appropriately colored. With a cube length of 5, for example, you are challenged to solve the puzzle by aligning simultaneously 125 subcubes. As far as I am aware, the concept of a "deep" version of a cube puzzle has never been mentioned previously.
The program also supplies several tools to help you see inside the cube and to keep track of your moves as you develop useful layer-rotation sequences. You can see many of these capabilities by running the sequences in the "demos" pop-up menu in the "sequences & patterns" panel.
User documentation is contained mainly in Tooltips, which are available for nearly all controls by hovering over them with the mouse. The best way to start using DeepCube is to jump on in and experiment. See also the Programmer's Notes and User's Notes in the attached notebook where almost every function is documented in detail using headings, plain text and comments.
The current version of DeepCube was developed using Wolfram Mathematica 10 Home Edition (version 10.1.0.0, Microsoft Windows, 64-bit). It requires a screen size of at least 1280 by 1024 pixels. The notebook version runs best with Mathematica 10.1. The CDF file runs best with Wolfram CDF Player 10.1.
Hopefully the Wolfram Community will find DeepCube an interesting and challenging puzzle as well as a neat example of what you can do in the Wolfram Language with a single Manipulate function. I submit this notebook to share some of the programming techniques I've learned while developing DeepCube and I look forward to feedback from the Community.
Many features and capabilities of the Wolfram Language facilitated the development of this simulation including:
Animation and flexible controls layout with Manipulate
3D graphics
Color support
Flexible data structures using nested List's
Functional programming paradigm
Use of a single Mathematica notebook for all phases of software development (code, test, debug, documentation, etc.)
Detailed help system
Screen Shots
The following screen shots illustrate some of the features of DeepCube and the layout of its controls.
Attachments: