/simplify

3D mesh simplification in Go.

Primary LanguageGoMIT LicenseMIT

3D Mesh Simplification

Implementation of Surface Simplification Using Quadric Error Metrics, SIGGRAPH 97, written in Go.

Bunny

270,000 faces vs. 2,700 faces (1%)


Install

go get -u github.com/fogleman/simplify/cmd/simplify

Command-Line Usage

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

API Usage

// Use LoadSTL (ASCII) or LoadBinarySTL
mesh, err := simplify.LoadBinarySTL(inputPath)
// handle err
mesh = mesh.Simplify(factor)
mesh.SaveBinarySTL(outputPath)

Animated

Iteratively simplifying by 50% until only 16 faces remain