GLE is designed for and maintained on the Linux operating system, and is known to run on other Unix operating systems such as AIX, IRIX, Ultrix and HPUX with OpenGL or Mesa. GLE is also known to run on IBM OS/2 Warp, Apple Macintosh OS9, and Microsoft Windows NT and has been used to develop screen-savers for some of these popular PC operating systems.
News: As of November 2017, GLE is also available in github! See https://github.com/linas/glextrusion. This includes the sources for Dave Richard's C++ classes, below.
News: Dave Richards has created a set of MSWindows-specific C++ classes that are derived from gle. See the GLE32 site. (mirror)
News: There is now a mailing list to discuss gle: firstname.lastname@example.org. Subscribe by web or view the archives.
News: Version 3.0 is out, sporting an improved/simplified build system, which should make compiling this package a lot less confusing. Project has been moved to SourceForge, which means you can get live CVS, and should make it easier for folks to submit patches & participate in this project.
News: ShapeShifter is a re-write of the GLE library in Java. Available freely, under the 'Artistic License'.
News: OpenGL internals programmers & hardware developers, please read this.
News: Python bindings are shipped with this release. They were generated with a non-standard version of SWIG. There is also another (different) set of bindings for GLE that come standard with OpenGL at the PyOpenGL site. At this point, neither set should be considered to be more 'standard' than the other.
The library also includes a set of utility routines for drawing some of the more common extruded shapes: a polycylinder, a polycone, a generalized torus (circle swept along a helical path), a "helix" (arbitrary contour swept along a helical path) and a "lathe" (arbitrary contour swept along a helical path, with torsion used to keep the contour aligned).
The most general extrusion supported by this library allows an arbitrary 2D contour to be swept around an arbitrary 3D path. A set of normal vectors can be specified to go along with the contour; the normal vectors determine the appearance of the contour when lighting is turned on. A set of colors and affine matrices can be specified to go along with the 3D path. The colors are used to color along the path. The affine matrices are used to operate on the contour as it is swept along. If no affine matrices are specified, the contour is extruded using the mathematical concept of "parallel translation" or "Gaussian translation". That is, the contour is moved (and drawn) along the extrusion path in a "straight" manner. If there are affine matrices, they are applied to the contour at each extrusion segment before the segment is drawn.
The affine matrices allow work in a quasi-non-Euclidean space. They essentially allow the contour to be distorted as it is swept along. The allow the contour to be rotated, translated and rescaled as it is drawn. For example, a rescaling will turn a polycylinder into a poly-cone, since the circle that is being extruded is scaled to a different size at each extrusion vertex. A rotation allows the contour to be spun around while it is being extruded, thus for instance allowing drill-bit type shapes to be drawn. A translation allows the appearance of shearing in real space; that is, taking a contour and displacing it, without otherwise bending it. Note that the affines are 2x3 matrices, not 3x4 matrices, since they apply to the 2D contour as it is being extruded.