Overview

OpenGJK is developed by Mattia Montanari and features contributions from many people. The development started in 2015 at Oxford University, with the interest of bringing GJK into engineering simulations such as impacts and crack growth. However existing versions of GJK and similar algorithms did not provide a sufficient level of accuracy. An improved method was first published in ACM Transactions of Graphics and the same year was one of the three papers referred for SIGGRAPH 2017. The following year the software was release under the LGPL one year later with a publication on SoftwareX.

Montanari, M. and Petrinic, N. and Barbieri, E. Improving the GJK Algorithm for Faster and More Reliable Distance Queries Between Convex Objects (2017). ACM Trans. Graph.

The whole algorithm as been re-designed and re-written later on and this is where the project is today.

When should I use openGJK?

The library is designed for accuracy and robustness. It suits scientific computing, robotics and computer graphics applications. As you may know, OpenGJK measures the distance between any convex polytope, including:

  • line segments
  • triangles
  • tetrahedrons
  • cubes
  • could points.

If you need to compute the minimum distance between these objects, than OpenGJK is for you. Should you provide a non-convex object as input to OpenGJK, the computed distance is between the convex hulls of the two bodies.

Getting Started

OpenGJK works out of the box on most common platforms and operating systems (Linucs, macOS and Windows). It is well documented, continuously tested and benchmarked.

License

The open-source, also called Community Edition (CE), of OpenGJK is is copyrighted (C) 2017-2020 by Mattia Montanari and distributed under the terms of the GNU General Public License (GPL) v3. You can use OpenGJK free of charge and adhere to the restrictions on its distribution.

If you need a different license, an Enterprise Edition (EE) is available. Please get into directly.