Welcome to the official site for the Geometric Tools Engine, a library of source code for computing in the fields of mathematics, graphics, image analysis and physics. The engine is written in C++ 11 and, as such, has portable access to standard constructs for multithreading programming on cores. The engine also supports high-performance computing using general purpose GPU programming (GPGPU). SIMD code is also available using Intel Streaming SIMD Extensions (SSE). Portions of the code are described in various books as well as in documents available at this site. The source code is freely downloadable.
The current version of the library is Geometric Tools Engine (GTEngine) 3.25, posted on April 29, 2019. The source code is covered by the Boost License. The following operating systems and compilers are supported, and testing was performed on all systems. If you use OpenGL, GTEngine requires OpenGL 4.3 (or later) and GLSL 4.3 (or later) in order to support compute shaders and GLSL introspection.
Geometric Tools: The Final Cut. I plan on one last evolutionary step for
the source code, The Geometric Tools Library (GTL). The motivation for
Geometric Tools was initiated by my graduate school studies in medical image
processing; it was then named Magic Software (My Alternate Graphics
and Image Code). When I entered the 3D video game industry,
I spent less time on image code and more time on graphics, physics and mathematics code.
Much of the code was a result of helping people who posted problems to the Usenet forum
comp.graphics.algorithms. I am now deep into high-performance computing
in several areas where the problems are even more heavy on the mathematics and geometry.
Technical support questions over recent years have made it clear to me that the
mathematics and geometry code is what people use the most, so I will focus on those
GTL will be a reworking of the mathematics and geometry code in GTEngine followed by adding new code as time permits. Some users have been reluctant to use GTEngine because it supports only Microsoft Visual Studio 2013 and later, instead opting for Wild Magic 5 because there is also support for Microsoft Visual Studio 2010 and 2012. I stopped maintaining that code base quite some time ago, and any bugs I have discovered in GTEngine have not been retrofitted to Wild Magic 5. Unfortunately, these older compiler versions do not support the full C++11 feature set. GTL on Microsoft Windows will require Microsoft Visual Studio 2017 or 2019; the support for versions 2013 and 2015 will be dropped. The code will also be developed to run on Linux distributions with gcc 7 and later. The Macintosh will not be supported.
I am attempting to streamline the code, to provide consistent naming and interfaces and to extend the capabilities. Some of the GTEngine geometry code already contains multithreading, especially useful when the numeric type is BSNumber or BSRational for exact rational arithmetic. In GTL, I plan to include multithreading in more algorithms. Separate libraries will be available for GPGPU-based implementations using CUDA, HLSL or GLSL and for SIMD-based implementations using Intel's SSE or AVX. The code base has an associated unit-test suite. No code will be posted to the website unless it has accompanying unit tests and documentation. Code for graphics and application support exists only for samples that illustrate the GTL algorithms, and it will be contained in a separate library, provided as-is without unit-test support. Like its predecessors, the GTL source code will be freely downloadable and subject to the Boost License.
In the short term, I am porting the remaining Wild Magic 5 code to GTEngine. On completion, I will focus on moving GTEngine to the GTL framework.
|Special thanks to Justin "Satriani" Hunt for the website design and support.|