The 4D FAQ
The Projection Method
What's so good about projections? I saw a Java applet that does 4D projections, but it only confused me more.
Firstly, the projection method is not a silver bullet; you still need to learn how to interpret the projection images properly before you can understand it. Staring at it without understanding what is happening will not magically make you “see” 4D.
Secondly, many Java applets that does 4D projections do not perform hidden surface removal. That is to say, it's like being in a room where everything is transparent glass with no opaque surfaces. You can't tell what is in front and what is behind. Only if you already know what to expect, or if you grope around, will you be able to understand what you see. Unfortunately, we have no prior experience of 4D and cannot directly explore it, so this doesn't help.
Thirdly, even with applets that do perform hidden surface removal, the result is often still very confusing, because almost all applets use line-drawings to represent the projections. While this makes it more feasible to program, the resulting images can be highly ambiguous and suffer heavily from illusions. This is because line-drawings do not convey enough information to unambiguously define the 3D shape of the projection, and so our minds would often interpret it wrongly.
What are some of the ways to improve this situation?
The underlying problem behind all these issues is that when we use the computer screen to display the images, we are actually performing a further projection from the 3D image to the 2D screen. This means we're losing information from two of the dimensions of the original 4D object. It is very difficult to reconstruct the 4D object from such deficient information.
The solution, therefore, lies in minimizing the loss of information by using better methods of conveying the 3D depth of the image. These methods include:
- Use some form of depth cueing, such as dotted lines for edges that lie on the far side of the projection. While helpful to a certain extent, this method is still prone to ambiguity.
- Use a red/cyan scheme with 3D glasses in order to see 3D depth correctly. This method relies on the fact that our mind is much better at inferring depth when there is sufficient parallax. It works much better in experience than merely using depth-cueing such as dotted lines.
- Use parallel or cross-eyed stereo projections. This is essentially the same idea as the previous method in that it tries to make use of parallax.
- Exaggerate the thickness of lines and/or vertices, so that the viewer can infer, based on which lines are obscuring which other lines, where exactly each line lies in 3D space. One could even use 3D tools such as ray-tracers, like POV-Ray, to create realistic lighting, shading and shadows, so that the 3D shape of the image is more immediately obvious.
A superior approach to all these is to discard the line-drawing method altogether, and use 2D surfaces to represent the 3D image. This makes the ridges of the 4D object much clearer, and makes the bounding volumes unambiguous. However, this is harder to program and more difficult to pull off successfully, because one must use shading to convey the shape of each surface, yet at the same time make it semi-transparent so that other surfaces behind it would still be visible.
The images on this site use POV-Ray to render the 3D images with realistic lighting and shading, in order to convey the 3D structure of these projections better. In making these images, the lighting, coloring, and transparency of the 2D surfaces are carefully adjusted for each image, and the 3D viewpoint of scene is carefully chosen, so that ambiguity is minimized. Often, the same 3D projection is shown as a sequence of multiple images, each emphasizing a different part of the projection, so that the entire structure is clearly conveyed to the reader.