fast-simplification
Wrapper around the Fast-Quadric-Mesh-Simplification library.
What it is and what it does
fast-simplification wraps the Fast-Quadric-Mesh-Simplification C++ library to reduce 3D mesh complexity in Python. It takes arrays of vertex points and triangle faces, then outputs a simplified mesh with fewer triangles while maintaining the overall shape. The package works directly with numpy arrays or integrates with PyVista for seamless mesh file I/O and visualization.
The library is designed for applications that need fast mesh decimation—such as preparing models for real-time rendering, reducing storage size, or processing large mesh collections with consistent topology. It offers both a basic numpy-based API and an advanced PyVista integration, plus a replay mechanism to apply the same decimation sequence to multiple meshes or to revert to intermediate simplification levels without recomputing from scratch.
Use it for:
- Reduce polygon count on 3D models for real-time graphics or game engines.
- Prepare high-resolution scans or CAD meshes for web or mobile deployment.
- Apply identical decimation to a collection of meshes that share topology (e.g., anatomical variants).
- Speed up mesh processing pipelines by simplifying before further analysis or rendering.
- Transfer field data between original and simplified meshes using vertex correspondence maps.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Simplifies 3D meshes by reducing the number of triangles while preserving shape, wrapping the Fast-Quadric-Mesh-Simplification C++ library with a Python interface and direct PyVista integration.
Yes. The package is actively maintained, has no known vulnerabilities, supports current Python versions (3.9–3.14), and offers a performant alternative to VTK decimation with straightforward numpy and PyVista integration. Install friction is moderate but acceptable for a compiled extension. MIT licensing removes legal barriers.
Install
fast-simplification on PyPI
pip
pip install fast-simplificationuv
uv add fast-simplificationpoetry
poetry add fast-simplificationInstalling fast-simplification
Before you install
Medium install friction due to compiled wheels for multiple Python versions and platforms (cp310–cp313 on macOS, Linux, Windows). Active maintenance with a recent release (2 days old) and steady repository activity (206 stars). Single runtime dependency on numpy.
License in practice
MIT license permits commercial and private use with minimal restrictions, making it suitable for most projects.
Quickstart
import numpy as np
import fast_simplification
points = np.array([[0.5, -0.5, 0.0], [0.0, -0.5, 0.0], [-0.5, -0.5, 0.0]])
faces = np.array([[0, 1, 2]])
points_out, faces_out = fast_simplification.simplify(points, faces, target_reduction=0.5)
Requires numpy arrays; PyVista integration is optional but recommended for mesh I/O.
Verify before relying
- Whether the 4–5x performance improvement over VTK decimation mentioned in the description is consistently reproducible across different mesh types and sizes.
- Specific memory requirements or limits for large meshes during simplification.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | actively maintained — 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 602,214/month — #5,816 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: fast_simplification-0.2.0-cp310-cp310-macosx_10_14_x86_64.whl; fast_simplification-0.2.0-cp310-cp310-macosx_11_0_arm64.whl; fast_simplification-0.2.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; fast_simplification-0.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; fast_simplification-0.2.0-cp310-cp310-win_amd64.whl; fast_simplification-0.2.0-cp311-cp311-macosx_10_14_x86_64.whl; fast_simplification-0.2.0-cp311-cp311-macosx_11_0_arm64.whl; fast_simplification-0.2.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; fast_simplification-0.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; fast_simplification-0.2.0-cp311-cp311-win_amd64.whl; fast_simplification-0.2.0-cp312-cp312-macosx_10_14_x86_64.whl; fast_simplification-0.2.0-cp312-cp312-macosx_11_0_arm64.whl; fast_simplification-0.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; fast_simplification-0.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; fast_simplification-0.2.0-cp312-cp312-win_amd64.whl; fast_simplification-0.2.0-cp313-cp313-macosx_10_14_x86_64.whl; fast_simplification-0.2.0-cp313-cp313-macosx_11_0_arm64.whl; fast_simplification-0.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; fast_simplification-0.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; fast_simplification-0.2.0-cp313-cp313-win_amd64.whl
Keywords: fast-simplification, decimation
Tags
More Graphics packages
Pillow adds image processing capabilities to…
permissive · top 100 on PyPI
fonttoolsfonttools manipulates font files in multiple…
permissive · top 1,000 on PyPI
matplotlib-inlineEnables matplotlib figures to display inline…
permissive · top 1,000 on PyPI
pymupdfPyMuPDF extracts, renders, converts, and…
agpl · top 1,000 on PyPI
pypdfium2pypdfium2 is a Python binding to PDFium that…
permissive · top 1,000 on PyPI
altairAltair is a declarative Python library for…
permissive · top 1,000 on PyPI
DracoPyDracoPy is a Python wrapper for Google's Draco…
permissive · top 15,000 on PyPI
pymeshfixPyMeshFix repairs triangular meshes by removing…
agpl · top 15,000 on PyPI
pytetwildpytetwild converts surface meshes into…
copyleft · top 15,000 on PyPI
trimeshTrimesh loads, manipulates, and analyzes…
permissive · top 5,000 on PyPI
vhacdxComputes approximate convex decomposition of…
unclear · top 5,000 on PyPI
numpy-stlReads, writes, and modifies STL mesh files…
permissive · top 15,000 on PyPI
rdpImplements the Ramer-Douglas-Peucker algorithm…
permissive · top 15,000 on PyPI
pyvistaPyVista provides a NumPy-native API for 3D…
permissive · top 5,000 on PyPI
tetgentetgen wraps the TetGen C++ library to generate…
permissive · top 15,000 on PyPI
pygmshpygmsh provides a Python interface to Gmsh, a…
copyleft · top 15,000 on PyPI