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. This engine replaces Wild Magic and supports high-performance computing using general purpose GPU programming (GPGPU). The engine is written in C++ 11, so it automatically 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.7, posted on December 12, 2014. 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 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.
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. In particular, we have rewritten the mathematics classes to be template based without the explicit instantiation that Wild Magic used. We have also redesigned the exact arithmetic library to support arbitrary precision arithmetic. The computational geometry code allows you to provide input data of one type but specify that the computed data be of another type. When that type is arbitrary precision arithmetic, the algorithms are robust.
Not all of Wild Magic has been ported; some of it will not be ported. Much of the library code has been ported and tested, but some of the mathematics code is still undergoing unit testing--mainly writing unit tests for code that we knew worked but now want to support regression testing and an 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.
We are currently working on an OpenGL 4.3 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.
And finally, we have chosen to go down the path of C++ 11. This is an amazing evolution of the C++ language, and we do not plan on going back to previous versions. The language constructs we use require Microsoft Visual Studio (MSVS) 2013. Supporting previous versions of the compiler is not possible unless we remove some of those constructs. We now use std::initialize and template aliases, which allows us to discard the Vector-derived classes that existed solely to provide constructors with a fixed number of inputs. Consequently, MSVS 2013 is required because MSVS 2010 and MSVS 2012 do not support those C++ 11 features. The preview version of MSVS 2015 is available, making MSVS 2010 a very old and outdated compiler that we will no longer support.
Special thanks to Justin "Satriani" Hunt for the website design and support.