pymeshfix
Repair triangular meshes using MeshFix
Decision gist · record as of 2026-08-14
Yes, if your workflow involves repairing raw digitized meshes. The package is actively maintained, has no known vulnerabilities, and offers pre-built wheels for modern Python versions on all major platforms. AGPL licensing is a hard constraint for commercial use—you must either use it only in open-source projects or negotiate a separate commercial license with the copyright holders. For non-commercial research or open-source 3D geometry work, it is a solid, well-integrated choice.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires numpy; optional pyvista dependency for plotting and advanced mesh operations.
- Medium install friction due to compiled C++ bindings; wheels are pre-built for Python 3.10–3.14 on macOS (Intel and ARM), Linux (x86_64 and aarch64), and Windows, so most users will have a straightforward pip install.
- Repository is active with recent commits.
License · maintenance · safety
(agpl) — Licensed under AGPL v3, which requires derivative works and modifications to be released under the same license if distributed. Commercial use requires a separate licensing agreement with the copyright holders (IMATI-GE / CNR).
last release 2026-04-23 (113 days) · last repo commit 2026-08-01 · 395 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 181,268 downloads/mo, #10,129 on PyPI
Alternatives
Verify before relying
pip install pymeshfix
import pymeshfix
import numpy as np
# Repair mesh from vertex and face arrays
vclean, fclean = pymeshfix.clean_from_arrays(v, f)- Whether the package handles non-digitized meshes (e.g., tessellated CAD models) reliably, given the stated design focus on raw digitized models.
- Performance characteristics and typical runtime for meshes of varying complexity or size.
What it is and what it does
PyMeshFix is a Python wrapper around Marco Attene's MeshFix C++ library, designed to repair polygon meshes by correcting defects common in raw digitized 3D models. It removes self-intersections, degenerate elements, singularities, and fills holes to produce a single watertight triangle mesh representing a closed solid object. The package offers both low-level Cython access to the underlying algorithm and a higher-level object interface that optionally integrates with pyvista for visualization and mesh I/O.
The library is intended for mesh repair workflows in 3D scanning, digitization, and geometry processing. Input is expected to represent a single closed solid; regions without defects are left unmodified. It trades off generality for robustness on its target use case—the documentation notes it may fail or produce coarse results on other mesh types like tessellated CAD models.
Use it for
- Clean and repair raw 3D scans from digitization hardware before downstream processing or analysis.
- Remove self-intersections and degenerate elements from polygon meshes in batch geometry pipelines.
- Convert imperfect digitized mesh models into watertight solids for 3D printing or CAD workflows.
- Preprocess mesh data in scientific computing or computational geometry applications.
- Fill holes and repair topology in mesh datasets before feeding them to simulation or rendering engines.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if your workflow involves repairing raw digitized meshes.
The package is actively maintained, has no known vulnerabilities, and offers pre-built wheels for modern Python versions on all major platforms. AGPL licensing is a hard constraint for commercial use—you must either use it only in open-source projects or negotiate a separate commercial license with the copyright holders. For non-commercial research or open-source 3D geometry work, it is a solid, well-integrated choice.
Install
pymeshfix on PyPI
Before you install
Medium install friction due to compiled C++ bindings; wheels are pre-built for Python 3.10–3.14 on macOS (Intel and ARM), Linux (x86_64 and aarch64), and Windows, so most users will have a straightforward pip install. Repository is active with recent commits.
Requires numpy; optional pyvista dependency for plotting and advanced mesh operations.
License in practice
Licensed under AGPL v3, which requires derivative works and modifications to be released under the same license if distributed. Commercial use requires a separate licensing agreement with the copyright holders (IMATI-GE / CNR).
Quickstart
pip install pymeshfix
import pymeshfix
import numpy as np
# Repair mesh from vertex and face arrays
vclean, fclean = pymeshfix.clean_from_arrays(v, f)
Verify before relying
- Whether the package handles non-digitized meshes (e.g., tessellated CAD models) reliably, given the stated design focus on raw digitized models.
- Performance characteristics and typical runtime for meshes of varying complexity or size.
Package facts
| License | Not declared agpl |
| Python support | Supports the current Python release <3.15,>=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagenumpy |
| Maintenance | Actively maintained 113 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 181,268 / month, #10,129 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: Science/ResearchLicense :: OSI Approved :: GNU Affero General Public License v3Operating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: pymeshfix-0.18.1-cp310-cp310-macosx_10_13_x86_64.whl; pymeshfix-0.18.1-cp310-cp310-macosx_11_0_arm64.whl; pymeshfix-0.18.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pymeshfix-0.18.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pymeshfix-0.18.1-cp310-cp310-win_amd64.whl; pymeshfix-0.18.1-cp311-cp311-macosx_10_13_x86_64.whl; pymeshfix-0.18.1-cp311-cp311-macosx_11_0_arm64.whl; pymeshfix-0.18.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pymeshfix-0.18.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pymeshfix-0.18.1-cp311-cp311-win_amd64.whl; pymeshfix-0.18.1-cp312-abi3-macosx_10_13_x86_64.whl; pymeshfix-0.18.1-cp312-abi3-macosx_11_0_arm64.whl; pymeshfix-0.18.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pymeshfix-0.18.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pymeshfix-0.18.1-cp312-abi3-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “mesh repair triangular”
- pymeshfixPyMeshFix repairs triangular meshes by removing defects like…
- trimeshTrimesh loads, manipulates, and analyzes triangular mesh geometry in…
- cytriangleCyTriangle wraps Jonathan Shewchuk's Triangle library via Cython to…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also fast-simplification · manifold3d · trimesh · pymeshlab · cytriangle · vhacdx · pytetwild · tetgen · pysplashsurf · meshioplusplus