3D mesh simplification in Go.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cmd/simplify
LICENSE.md
README.md
face.go
matrix.go
mesh.go
pair.go
queue.go
simplify.go
stl.go
triangle.go
util.go
vector.go
vertex.go

README.md

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