Golang 3D boolean operation on 3d meshes module

Job ID: 35122418

Budget: $30 – $250 USD

I need a C++ and Golang developer to make a golang module that wraps around the CGAL library (C++) and is able to make 3D boolean operations on 3D mesh files that are in STL format.

The module should expose the following golang functions :

// Performs an OR boolean operation (A OR B) on 3d meshes loaded from STL files and writes result to output STL file
func BooleanUnion(filenameA string, filenameB string, outputfilename string)

// Performs a NOT boolean operation (A NOT B) on 3d meshes loaded from STL files and writes result to output STL file
func BooleanDifference(filenameA string, filenameB string, outputfilename string)

// Performs an AND boolean operation (A AND B) on 3d meshes loaded from STL files and writes result to output STL file
func BooleanIntersection(filenameA string, filenameB string, outputfilename string)

// filenameA : relative path to first 3D mesh file in STL format
// filenameB : relative path to second 3D mesh file in STL format
// outputfilename : relative path to the output file where the resulting 3D mesh file in STL format of the boolean operation should be saved

The boolean operations are described in the following wikipedia page : https://en.wikipedia.org/wiki/Boolean_operations_on_polygons

All of the boolean operations are very well documented on the CGAL website : https://doc.cgal.org/latest/Nef_3/index.html

The module should be able to perform the boolean operations on mesh files that contain hundreds of thousands of vertices ( even millions of vertices) and performance should be comparable to boolean operations done in blender (www.blender.org)

The deliverable code will be tested against 3D mesh files on which the same boolean operations were made in blender. The resulting output files should be as close as possible to the results blender produces (shape wise, I understand that the boolean process differs from one datastructure to another)