Implementation of Surface Simplification Using Quadric Error Metrics, SIGGRAPH 97, written in Go.
270,000 faces vs. 2,700 faces (1%)
go get -u github.com/fogleman/simplify/cmd/simplify
Usage: simplify [-f FACTOR] input.stl output.stl
$ simplify -f 0.1 bunny.stl out.stl
Loading bunny.stl
Input mesh contains 270021 faces
Simplifying to 10% of original...
Output mesh contains 27001 faces
Writing out.stl
// Use LoadSTL (ASCII) or LoadBinarySTL
mesh, err := simplify.LoadBinarySTL(inputPath)
// handle err
mesh = mesh.Simplify(factor)
mesh.SaveBinarySTL(outputPath)
Iteratively simplifying by 50% until only 16 faces remain