The ideas behind the code are from the notion that quasiconvexity of a function, over a (convex) domain, is equivalent to quasiconvexity along lines partioning that domain.
There are two folders: matlab and python. Each folder has (analogously) written code in each language.
All of the needed functions are contained in the linesolver.py. In particular, use quasiconvex_rotate to compute the quasiconvex envelope along a given slope (including it's rotation).
There is also a PDE-based method, found in solvers.py using the function uniformQC which also convexifies the level sets of a given input, but in a stronger sense. A reference is found below.
Use ndim_linesolver.m to generate convex hulls of a given obstacle g.
An example for using the code is given by example-cones.py/m. The solvers are applied to an obstacle comprising the minimum of two cones. For Python, the example contains the use of both the line solver and the PDE-based method.
Bilal Abbasi - LinkedIn
Computing the level set convex hull
A PDE for the epsilon-uniformly quasiconvex envelope
If you use the paper in your work, please use the following citation:
article{abbasi2017qcline, author="Abbasi, Bilal and Oberman, Adam M.", title="Computing the Level Set Convex Hull", journal="Journal of Scientific Computing", year="2017", issn="1573-7691"}