# simplify-triangles

> quadratic error mesh decimation. simplified interface for npm mesh-simplifier - use simple triangles instead of Three.js geometry.

Latest version **0.0.17** (published 2023-06-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install simplify-triangles
pnpm add simplify-triangles
yarn add simplify-triangles
bun add simplify-triangles
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.17 |
| Published | 2023-06-28 |
| First published | 2021-10-31 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 250.1 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Author | stonkpunk |
| Maintainers | stonkpunk |
| Keywords | triangle, mesh, simplify, simplifier, quadratic, error, decimation, metrics |

## Links

- npm: https://www.npmjs.com/package/simplify-triangles
- Homepage: https://github.com/stonkpunk/my-npm-modules/tree/main/simplify-triangles
- npm.io page: https://npm.io/package/simplify-triangles

## Dependencies (2)

- [three](https://npm.io/package/three.md) 0.116.1
- [mesh-simplifier](https://npm.io/package/mesh-simplifier.md) 1.0.0

## Alternatives

- [@sentry/react-native](https://npm.io/package/@sentry/react-native.md) — 2.6M weekly downloads
- [@ardatan/aggregate-error](https://npm.io/package/@ardatan/aggregate-error.md) — 708.1K weekly downloads
- [custom-error-generator](https://npm.io/package/custom-error-generator.md) — 2.0K weekly downloads
- [@technik-sde/prosemirror-recreate-transform](https://npm.io/package/@technik-sde/prosemirror-recreate-transform.md) — 1.5K weekly downloads
- [@suchipi/error-utils](https://npm.io/package/@suchipi/error-utils.md) — 78 weekly downloads

## Recent versions

- 0.0.17 (latest) — 2023-06-28
- 0.0.16 — 2022-04-05
- 0.0.15 — 2021-11-17
- 0.0.14 — 2021-11-01
- 0.0.13 — 2021-11-01
- 0.0.12 — 2021-10-31
- 0.0.11 — 2021-10-31
- 0.0.1 — 2021-10-31

## README

# simplify-triangles

quadratic error mesh decimation. 

simplified interface for [mesh-simplifier](https://www.npmjs.com/package/mesh-simplifier) - use simple triangles instead of Three.js geometry. 

similar to [mesh-simplify](https://www.npmjs.com/package/mesh-simplify) but based on `mesh-simplifier` because it is much faster.

all are based on or influenced by [this code by sp4cerat](https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification).

## Installation

```sh
npm i simplify-triangles
```

## Usage 

```javascript
var fs = require("fs");
var stl = require("stl");
var st = require('simplify-triangles');

//each triangle has format [ [x,y,z], [x,y,z], [x,y,z] ]

//load triangles from stl file
var triangles = stl.toObject(fs.readFileSync('./skull.stl')).facets.map(f=>f.verts);

//simplify the triangle mesh, result will have 0.125x as many triangles
//format is same as input
var simplifiedTriangles = st.simplify(triangles,0.125); 

//optional - view the result with ascii-raytracer
var config = {
    triangles: simplifiedTriangles, 
    cameraPos: [45.82,22.11,61.08],
    cameraRot: [1.87,-2.25],
    aspectRatio: 4/3,
    screenShotDir: "/Users/user/Desktop/"
}
require('ascii-raytracer').runScene(config);
```

![skull-before](https://i.imgur.com/pv3UiHP.png) *original*
![skull-after](https://i.imgur.com/ukfvcMr.png) *simplified*

## See Also

- [mesh-simplifier](https://www.npmjs.com/package/mesh-simplifier)
- [mesh-simplify](https://www.npmjs.com/package/mesh-simplify)
- [ascii-raytracer](https://www.npmjs.com/package/ascii-raytracer)

[![stonks](https://i.imgur.com/UpDxbfe.png)](https://www.npmjs.com/~stonkpunk)

---
_Source: https://npm.io/package/simplify-triangles · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
