openGJK: compute minimum distance between 3D polyhedra

version 1.2 (37.5 KB) by Mattia
Fast and reliable implementation of the Gilbert-Johnson-Keerthi (GJK) algorithm. University of Oxford.


Updated 22 Sep 2022

From GitHub

View License on GitHub

This reposity implements a new verstion of the GJK algorithm to compute the minimum ditance between two convex bodies in 3D. All it needs are the coordinates of the bodies in [N x 3] matrices, where N is the number of points defining a body.
An example is provided in example2_mex/runme.m. By running this file, Matlab will compile a MEX funciton which is called thereaftert. To compile a MEX function you'll need a C/C++ compiler, please refer to Matlab documention or leave a comment below.
Thanks to Kwanyuan Chan for this tip to Windows users: Matlab users need to set up the MinGW-w64 C/C++ compiler before running the example2_mex/runme.m file. More about the compile and related setting procedures at:

Cite As

Montanari, Mattia, et al. “Improving the GJK Algorithm for Faster and More Reliable Distance Queries Between Convex Objects.” ACM Transactions on Graphics, vol. 36, no. 4, Association for Computing Machinery (ACM), June 2017, p. 1, doi:10.1145/3072959.3083724.

View more styles

Montanari, Mattia, and Nik Petrinic. “OpenGJK for C, C# and Matlab: Reliable Solutions to Distance Queries between Convex Bodies in Three-Dimensional Space.” SoftwareX, vol. 7, Elsevier BV, Jan. 2018, pp. 352–55, doi:10.1016/j.softx.2018.10.002.

View more styles
MATLAB Release Compatibility
Created with R2018b
Compatible with R2016a and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!


To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.