Enhancing GJK: computing minimum and penetration distances between convex polyhedra | Synapse