Downloads


Geometric Tools Engine 4.8. The mathematics code is in a header-only library (GTMathematics). A mathematics library with GPU-based implementations is provided (GTMathematicsGPU). The CPU-based common graphics engine code is in its own library (GTGraphics). DirectX 11 wrappers are provided for graphics (GTGraphicsDX11) and applications (GTApplicationsDX11). OpenGL 4.5 wrappers are provided for graphics (GTGraphicsGL45) and applications (GTApplicationsGL45).

Released on August 12, 2020.
Microsoft Windows 10; DirectX 11.1 or OpenGL 4.5; Microsoft Visual Studio 2015, 2017 and 2019; Intel C++ Compiler 17, 18 and 19.1
Ubuntu 18.04; OpenGL 4.5, NVIDIA graphics drivers; gcc 7.4.0
Fedora 31; OpenGL 4.5, NVIDIA graphics drivers; gcc 9.2.1
GTEngine 4.8 License Agreement (Boost)
GTEngine 4.8 Installation and Release Notes (PDF)
GTEngine 4.8 Distribution (ZIP)
GTEngine 4 Update History (PDF)
Zip File hash codes (MD5, SHA256)

Microsoft Visual Studio 16.7.* uses a new C++ Standard Library implementation. Dinkumware was the implementation of choice for a long time, now the <array> header file has a comment “SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception”. The Debug performance for some of my code has decreased significantly. In particular, the ETManifoldMesh class uses std::map with a key-type of EdgeKey. The latter class derives from FeatureKey, which stores the vertex indices in a std::array object. FeatureKey also implements comparison operators that directly call the std::array comparisons. These in turn lead to calls to lexicographical_compare that show up as the main bottleneck when using ETManifoldMesh. By bottleneck, I mean significant bottleneck. I am going to eliminate the std::array comparisons in my code, but I do not yet know what other performance problems might occur. If you encounter performance problems related to the new C++ Standard Library, send me email so I can investigate it and fix it.

When compiling with Visual Studio on a Microsoft Windows 10 machine, the projects are set up to use the latest installed version of the Windows 10.0 SDK. If your machine's latest version is 10.0.17763.0, the file GeometricTools/GTE/Applications/MSW/WICFileIO.cpp will compile in Debug configuration but will not compile in Release configuration. The error messages are for module.h in the SDK, claiming that the function Details::CheckForDuplicateEntries does not exist in the Details namespace. This is a bug in module.h. The declaration of CheckForDuplicateEntries occurs in the namespace Details and is contained in a conditionally compiled block when _DEBUG is defined. However, the definitions for CheckForDuplicateEntries are not contained in a conditionally compiled block when they should be. This has been fixed in Windows SDK version 10.0.18362.0. You can install the newer Windows SDK version by using the Visual Studio Installer, selecting the Modify option, selecting the item Individual Components, checking the box for the Windows SDK version 10.0.18362.0 and then pressing the Modify button in the lower right of the installer window.

The Intel Compiler 19.0, in conjunction with changes made to <memory> in Microsoft Visual Studio's C++ Standard Library starting with version 16.4.4, has a serious bug. When enabled as the compiler in the VS IDE, the Intel compiler incorrectly compiles constructor code for std::shared_ptr objects. This leads to memory leaks and to random crashes that are caused by premature deletion of objects. The Intel compiler is incorrectly generating code for constexpr _Ref_count_base() noexcept = default; (setting _Weaks to 0 rather than 1). A fix is to modify that constructor to _Ref_count_base():_Uses(1),_Weaks(1){}. For more information see this Intel Compiler Forum post. The Intel Compiler 19.1 has the fix to this problem and correctly compiles the code.


Geometric Tools Engine 3.30. The GTEngine 3.x reached the end of lifecycle on December 31, 2019. The distribution is still available for download but without technical support, new features or bug fixes. Functionally, GTEngine 4.x and GTEngine 3.x are nearly the same except that GTEngine 4.x does not support Microsoft Visual Studio 2013. GTEngine 3.x is supported on Microsoft Windows 10 with Microsoft Visual Studio 2013, 2015, 2017 and 2019; DirectX 11.1 or OpenGL 4.5. It is also supported on Ubuntu Linux 18.04 with gcc 7.4.0, Fedora 31 with gcc 9.2.1, NVIDIA graphics drivers, OpenGL 4.5.

GTEngine 3.30 License Agreement (Boost)
GTEngine 3.30 Installation and Release Notes (PDF)
GTEngine 3.30 Distribution (ZIP)
GTEngine 3 Update History (PDF)
Zip File hash codes (MD5, SHA256)


Wild Magic Engine 5.17. Wild Magic 5.x reached the end of lifecycle on May 27, 2017. The distribution is still available for download but without technical support, new features or bug fixes. Wild Magic is supported on Microsoft Windows 7 or later (Microsoft Windows 7, 8.0, 8.1, 10; Microsoft Visual Studio 2010, 2012, 2013, 2015, 2017; OpenGL [WGL]; DirectX SDK June 2010), Linux (various flavors; OpenGL [GLX]; g++ 4.x) and Macintosh OS X 10.11.1 [El Capitan] (OpenGL [GLUT]; Xcode 7.1.1 with Apple LLVM Compiler Version 7.0.0).

Wild Magic 5.17 License Agreement (Boost)
Wild Magic 5.17 Installation and Release Notes (PDF)
Wild Magic 5.17 Distribution (ZIP)
Wild Magic 5 Update History (PDF)
Zip File hash codes (MD5, SHA256)

For those of you who prefer a language other than C++, visit the following links.

C# port of Wild Magic (by Ryan Schmidt)
Python wrapper of Wild Magic (by Velimir Mlaker)

Also, I added sample applications GTEngine/Samples/CSharpCppManaged_MSVS{2013,2015,2017,2019} that show how to wrap some GTEngine code using a managed wrapper (C++/CLI) and call it in a C# application. These are scheduled to be ported to GTEngine 4.x.