Daniel Wilding and Dr. Robert Burton, Computer Science Department
In almost any field of research or analysis, understanding numerical data is vital. Although there are many commonly-used methods of presenting data with three variables, there are no commonly available methods for presenting data of four or more variables, a seemingly arbitrary limitation.
Virtually any field has problems that require the analysis of four variables simultaneously. As an example, let us look at any given computer company. Some important considerations in computer design include speed, cost, power consumption, and reliability; optimizing a processor design is at least a four-variable problem. To make good business decisions, the management of this hypothetical company needs to compare four variables at once. However, a conventional 3D graph, even on a super computer, proves insufficient even for this simple case. Hence, I have developed a new technique for interactively navigating four-dimensional data on a computer.
Methodology
To create such a four-dimensional data environment, I wrote a computer program in C++. I used OpenGL to handle 3D graphics and then implemented my own data structure to handle 4D data and objects. To complete this project, I used several existing algorithms and invented a few new ones. For example, I developed a 4D visibility-checking algorithm, and I also developed procedures for mathematically modeling 4D objects.
To better understand 4D data navigation, I chose to add the capability to randomly generate 4D mazes. If I had simply given the user my data presentation technique, he or she probably would be confused by the user interface and the new 4D environment. So, I included 4D mazes. In solving 4D mazes, the user gains an understanding of the presentation technique. The user can practice solving the maze and can improve his or her time. Then, once the user understands how 4D objects are presented, he or she can display 4D data and accurately interpret it.
Results
The main product of this project is the computer program itself. It can generate random mazes in 2D, 3D, or 4D, and allows the user to interactively navigate them. The user can also use this program to display two-, three- or four-dimensional data and interactively navigate and analyze it. Although not yet ready for general use, this program represents a research-grade, unified four-dimensional data presentation package.
The second result of this project is a training program. As a stepping stone to understanding 4D data on a 2D screen, I created the option to navigate a 3D environment, given only one dimension of vision (a horizontal line). By first learning to navigate a 3D environment with only a line of sight, the user can better understand a 4D environment given two dimensions of sight.
The third result of my research is that my program can demonstrate several 4D phenomena. This will help illustrate four-dimensional ideas to others. For example, my program can show a hypercube rotating in 4D space. It can toggle between different ways of presenting 4D objects to show different presentation techniques.
Additionally, I wrote a webpage that describes my program in detail and allows others to download the program and use it. It includes a detailed description of the program, as well as some screen shots and movies taken from the program. As of December 2006, this manual can be found at the following webpage: http://students.cs.byu.edu/~wildingd/maze4d/index.htm
Conclusions
Completing this project shows that an interactive, 4D environment can be built. More importantly, such a complex environment can be programmed to run at interactive speeds on a home computer.
Also, I have been able to navigate this 4D environment and have demonstrated that I can solve 4D mazes, and hence, gain an intuitive understanding of an immersive 4D environment.
Future Extensions
Currently, my program is optimized for navigating mazes. Some work remains to allow the user to easily import 4D data and visually navigate it. I am extending my program to make it easier to show data, and to include more 4D geometrical objects and other examples (such as a 4D Mandelbrot Set) as well.
During the next year, I also plan to evaluate the effectiveness of this data presentation technique and to experiment modeling some real-world 4D data sets.