Welcome to the official site for the Geometric Tools Engine, a library of source code for computing in the fields of graphics, mathematics, physics, and image analysis. The engine supports high-performance computing using general purpose GPU programming (GPGPU). It is written in C++ 11 and has access to the standard constructs for multithreaded programming on cores. SIMD code is also available using Intel Streaming SIMD Extensions (SSE). The distribution is a companion to the book GPGPU Programming for Games and Science but large portions of the code are also described in other books as well as in documents available at this site. The source code is freely downloadable. We also provide contract programming services in the aforementioned areas.

The current version of the library is Geometric Tools Engine 1.11, posted on April 5, 2015. The source code is covered by the Boost License. Version 1.0 of the library was developed on Microsoft Windows 8.1 using Microsoft Visual Studio 2013 and Direct3D 11.1. The C++ 11 constructs we use are not supported by previous versions of Microsoft Visual Studio.

The PDF documents at our site are copyrighted but not subject to the liberal terms of the Boost License. You may download them for your personal use and you may set hyperlinks to them; however, the documents may not be posted online by anyone other than us. These are living documents that are updated over time. Unauthorized copies posted to the Internet run the risk of not being updated by the poster when we update ours.

We are planning on publishing a set of books that describes geometric algorithms, discusses the details for writing robust implementations when programming with floating-point arithmetic, and serves as a reference manual for the GTEngine source code. The first three books tentatively are

  1. Geometric Tools: Foundations
  2. Geometric Tools: Distance Algorithms
  3. Geometric Tools: Intersection Algorithms
The first book will be on the basic mathematics used in the algorithms, on numerical computing for floating-point and arbitrary precision arithmetic, and on the various geometric primitives that occur often. The book will also emphasize the mathematical patterns that are common to the design of geometric algorithms; this is akin to the design patterns that are popular for programming languages. The second and third books are intended to cover a large number of geometric queries, both in 2D and 3D. We hope to keep the books small, say, on the order of approximately 250 pages; this might require subdividing the second and third books (perhaps by dimension).

Our goal is to sell the books at low cost, most likely through Amazon's CreateSpace for paper copies but also available for Amazon's Kindle; however, we have not yet made a final decision on the method of publishing. The source code will remain freely downloadable, but we wish to generate revenue that will help fund the continued evolution of the source code, the writing of more books, and the costs of the website.

The process of developing a new engine takes a long period of time when you have limited resources. Wild Magic was on the order of approximately 400K lines of code, and much of the Geometric Tools Engine is a complete rewrite of portions of Wild Magic. We have focused on consistency of template class design, robustness of implementations, and support for arbitrary precision arithmetic for computational geometry. Not all of Wild Magic has been ported, and some of it will not be ported. We are adding the unit testing and end-to-end testing frameworks, mainly for the mathematics and computational geometry code in order to support regression testing and a fully automated testing environment. Please be patient as we complete this large-scale project. If you encounter problems with the engine, please let us know so that we can fix them in a timely manner--for you and everyone else who uses the code. A lower priority project is an OpenGL 4.3 graphics and computing engine for the Linux and Macintosh OS X platforms. This project will take quite some time because the factoring out of a platform-independent front end, similar to what we did for OpenGL1.5+extensions and Direct3D 9 in Wild Magic, has proven to be much more challenging for OpenGL4.x and Direct3D 11.

Special thanks to Justin "Satriani" Hunt for the website design and support.