Conix 3-D Explorer

This software, from Conix Enterprises, is an add-on package to Mathematica that allows you to use OpenGL 1.0-based rendering features directly from within the Mathematica environment.

The only documentation for GLExplorer is the on-line manual. Even if you have never used Mathematica, their help system is quite easy to use and includes hypertext links with expandable/retractable sections. You can execute the example commands listed in the Help browser by clicking on the cell bracket (at the right of each cell) with the right mouse button and selecting Kernel->Evaluation->Evaluate Cells.

All example uses of GLExplorer covered in the on-line documentation require that you first run the command


This command starts the GLExplorer rendering engine. Once started, a small icon (see Figure 1) will appear on your desktop. Although this command is listed at the start of each example, you need to run the command only once to start the engine. After that, you can skip this command in each of the subsequent examples you try.

Figure 1. GLExplorer Engine Icon

Running Mathematica/3-D Explorer

The first thing I noticed about running Mathematica, on its own, was the dialog box that pops open at start time. This box complained about the fonts not being installed correctly, but if I clicked on the Continue button in the dialog everything seemed to work fine. Fonts necessary to run Mathematica are installed under $MATHEMATICA/SystemFiles/Fonts/Type1 and $MATHEMATICA/SystemFiles/Fonts/X, where $MATHEMATICA is the top-level directory where you installed all the Mathematica files. The default for this is /usr/local/Mathematica. For everything to work right, the Type1 fonts should be listed prior to the X fonts in your X server's font path.

While looking at the GLExplorer Demos provided, you will find reference to GLShow, a GLExplorer command. Conversion of Mathematica's 2-D and 3-D graphics into OpenGL-based graphics is handled through this command. The command accepts standard Mathematica Show command syntax, making it fairly easy to make use of OpenGL for interactive graphics display without having to learn a lot about it.

GLShow immediately opens a new window. This window is small, about 256x256 pixels, but is interactive. You can immediately rotate any 3-D shape and translate (move around the window) any 2-D or 3-D graph.

Figure 2. Snake Knot Demo

The Snake Knot demo shows how a complex set of formulas can be combined to produce interesting graphics with both Mathematica and GLExplorer. The command

PlotPoints->{16,100}, DisplayFunction ->

produced the Mathematica graphic shown in Figure 2. Plugging this into GLShow and setting a number of optional parameters for it,

produced the image in Figure 3. Note the values PI and -> are used to represent text that only Mathematica's special fonts can show. Figure 4 shows the same object rotated and enlarged in the GLExplorer window. Rotations can be done using simple mouse-button clicks and drags. Enlarging the window will automatically redraw the object it contains to fit the new window size.

Figure 3. GLShow Display

Apparently, the windows opened by GLShow can be closed only by using the window manager's window menu Close option. If there is a more appropriate way to close the windows, I could not find it.

Figure 4. Knot Rotated and Enlarged

OpenGL 3-D Support

3-D Explorer is not a complete implementation of OpenGL. Rather, it offers an interface that allows direct access to a subset of OpenGL, plus a method of extending this access to encompass any OpenGL function. In order to use the existing or extended set of OpenGL primitives and directives, you need to understand the 3-D Explorer GLGraphics object.

Supported features of OpenGL are those expected for any good 3-D tool. They include drawing and color primitives, antialiasing, lighting and transformations. Accessing these primitives is done with the GLGraphics object. The GLGraphics object allows you to specify associations of points, lines, objects, colors, etc., all of which can then be viewed using GLShow.

Drawing primitives supported by GLExplorer include (but are not limited to) points, lines, triangles, polygons, surfaces and cuboids. Color primitives include RGB/RGBA, CMYK, HSL and gray-scale colors. All drawing primitives can have their sizes (thickness) and colors set using 3-D Explorer directives such as PointSize or EdgeForm. Antialiasing, hidden line removal and lighting are all supported. In fact, any OpenGL capability recognized by the OpenGL glEnable function can be set using the Enable directive of GLExplorer.

Transformations such as rotation, scaling and translating are supported locally by GLExplorer. These are handy when used with OpenGL display lists. Display lists are a method of grouping OpenGL primitives together so they can be rerun as a single object. This method of grouping provides better efficiency and is part of the OpenGL specification itself. GLExplorer offers complete access to this feature.

Texturing of OpenGL objects is supported; however, the demo showing a texture on a wave (from the on-line documentation) crashed GLExplorer. I was never able to run this example successfully.

You can extend GLExplorer to encompass any OpenGL function through the use of the Commands wrapper. This GLExplorer command allows you to call any OpenGL function from within the format of a Mathematica graphics expression.