Daniel Adler, Oleg Nenadic, and Walter Zucchini (2003), RGL: A R-library for 3D visualization with OpenGL, Computing Science and Statistics, 35, I2003Proceedings/NenadicOleg/NenadicOleg.paper.pdf
Oleg Nenadic, Daniel Adler, and Walter Zucchini (2003), RGL: A R-library for 3D visualization with OpenGL, Computing Science and Statistics, 35, I2003Proceedings/NenadicOleg/NenadicOleg.presentation.pdf
Other files: README.txt, Binaries/, Examples/
RGL is a library of functions that offers three-dimensional, real-time visualization functionality to the package R (Ihaka and Gentleman, 1996), thereby ameliorating a shortcoming in the current version of R as well as most other statistical software, namely its inability to allow the user to conveniently generate interactive 3D displays.
Graphical visualization techniques, especially two-dimensional displays such as scatterplots and histograms, are routinely used in statistical data analysis to explore datasets in order to reveal their properties and structure. Since 3D objects need to be projected on a 2D display, special navigation facilities are required for gaining an insight into 3D relationships. Features such as lighting, alpha-blending, texture-mapping and fog-effects are useful for enhancing the illusion of three-dimensionality. Additional desirable features for interactive data analysis in 3D include the ability to rotate objects and to zoom in/out so as to examine details of an object, or alternatively, to view it from a distance.
The goal of the project described here was to provide a dll interface (written in C++) from R to OpenGL which then acts as a '3D engine'. This way, high-level plotting functions can be written in R, which use primitives (points, lines, triangles, spheres, surfaces etc. in 3D space) provided by the library. RGL is developed with long-term goals in mind, resulting in e.g. cross-platform portability and reduced complexity due to modularization and object-oriented design. Furthermore, the syntax of the RGL commands has been based on that of the related and familiar standard R commands, thus ensuring that users familiar with the latter can quickly learn the usage of RGL. This paper describes the structure of the RGL library and illustrates its capabilities by means of a number of examples.