ImageMesh is a method in versions ≥ 2.0 from the voxelmap Python library which uses Convex hull in 3-D to wrap external points from a series of partitioned point clouds, and generates 3-D model .obj files from images. In three-dimensional space, the smallest collection of triangular polygons meeting the latter rule is drawn. This is akin to placing a fabric above a 3-D object; with this logic, a single convex hull operation will be unable to draw a structure with holes or bumps i.e. with 2-D local extrema.
The quick solution implemented here "cuts" the above donut image into several segments for which to place these convex hull sheets to do the triangulation.
As a complement to ImageMesh, a Python visualization tool called MeshView was developed in tandem. This tool loads the latter generated .obj file to be visualized in a pygame window with OpenGL capabilities.
GPU memory space complexity:
The former voxel-per-pixel method renders a cube from every "n" input point. In computer graphics, a cube is composed of 12 triangles, and thus, the GPU space complexity is 𝒪 (n*12).
For this new Convex Hull method, the input points are used as vertices to triangles which make a polyhedron in 3-D space. As this method cuts the image into "s" sectors to increase resolution, the space complexity approximates to 𝒪 (n*sqrt(s)/3).