pymeshlab
A Python interface to MeshLab
What it is and what it does
PyMeshLab is a Python wrapper around MeshLab, a mature open-source 3D mesh editor. It allows you to load, manipulate, and save 3D triangle meshes programmatically using MeshLab's extensive filter library. The library depends only on numpy and is distributed as precompiled wheels for recent Python versions on macOS, Linux, and Windows.
Typical workflows involve creating a MeshSet, loading mesh files, applying filters like convex hull generation or noise creation, and saving the result. The API exposes MeshLab's filters as Python methods with configurable parameters, making batch processing and scripted mesh operations straightforward for researchers and developers working with 3D geometry.
Use it for:
- Batch processing 3D models to generate convex hulls or simplified mesh representations.
- Automated mesh cleaning and repair workflows in 3D asset pipelines.
- Generating synthetic 3D data for machine learning training.
- Converting between different 3D mesh file formats with optional filtering.
- Programmatic mesh analysis and geometric feature extraction in research applications.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyMeshLab provides Python bindings to MeshLab, enabling programmatic loading, processing, and saving of 3D triangle meshes with access to MeshLab's filtering and manipulation operations.
Yes, if your project is GPL3-compatible and you need MeshLab's mesh processing capabilities in Python. The library is stable, actively maintained, and widely used. Install friction is moderate due to compiled wheels; verify platform and Python version support before committing. Not suitable for proprietary software without GPL3 compliance.
Install
pymeshlab on PyPI
pip
pip install pymeshlabuv
uv add pymeshlabpoetry
poetry add pymeshlabInstalling pymeshlab
Before you install
Medium install friction due to compiled wheel distribution across multiple Python versions and platforms. Last release was 196 days ago; repository is active but maintenance status is aging.
License in practice
PyMeshLab is released under GPL3, a copyleft license. Any derivative work or software that links this library must also be released under GPL3 or a compatible license, which may restrict use in proprietary projects.
Quickstart
pip install pymeshlab
import pymeshlab
ms = pymeshlab.MeshSet()
ms.load_new_mesh('airplane.obj')
ms.generate_convex_hull()
ms.save_current_mesh('convex_hull.ply')
Requires a compatible Python version; compiled binary distribution may not be available for all platforms or architectures.
Verify before relying
- Whether all MeshLab filters are exposed through the Python API or if some are unavailable.
- Performance characteristics and memory overhead when processing large meshes.
- Compatibility with Python versions beyond those with precompiled wheels.
Package facts
| License | GPL3 (copyleft) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | aging — 196 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 450,678/month — #6,590 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pymeshlab-2025.7.post1-cp310-cp310-macosx_11_0_arm64.whl; pymeshlab-2025.7.post1-cp310-cp310-macosx_11_0_x86_64.whl; pymeshlab-2025.7.post1-cp310-cp310-manylinux_2_35_aarch64.whl; pymeshlab-2025.7.post1-cp310-cp310-manylinux_2_35_x86_64.whl; pymeshlab-2025.7.post1-cp310-cp310-win_amd64.whl; pymeshlab-2025.7.post1-cp311-cp311-macosx_11_0_arm64.whl; pymeshlab-2025.7.post1-cp311-cp311-macosx_11_0_x86_64.whl; pymeshlab-2025.7.post1-cp311-cp311-manylinux_2_35_aarch64.whl; pymeshlab-2025.7.post1-cp311-cp311-manylinux_2_35_x86_64.whl; pymeshlab-2025.7.post1-cp311-cp311-win_amd64.whl; pymeshlab-2025.7.post1-cp312-cp312-macosx_11_0_arm64.whl; pymeshlab-2025.7.post1-cp312-cp312-macosx_11_0_x86_64.whl; pymeshlab-2025.7.post1-cp312-cp312-manylinux_2_35_aarch64.whl; pymeshlab-2025.7.post1-cp312-cp312-manylinux_2_35_x86_64.whl; pymeshlab-2025.7.post1-cp312-cp312-win_amd64.whl; pymeshlab-2025.7.post1-cp313-cp313-macosx_11_0_arm64.whl; pymeshlab-2025.7.post1-cp313-cp313-macosx_11_0_x86_64.whl; pymeshlab-2025.7.post1-cp313-cp313-manylinux_2_35_aarch64.whl; pymeshlab-2025.7.post1-cp313-cp313-manylinux_2_35_x86_64.whl; pymeshlab-2025.7.post1-cp313-cp313-win_amd64.whl
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
PyGEL3DPyGEL3D provides Python bindings for a C++…
permissive · top 15,000 on PyPI
manifold3dManifold3d creates and operates on manifold…
permissive · top 5,000 on PyPI
pymeshfixPyMeshFix repairs triangular meshes by removing…
agpl · top 15,000 on PyPI
pipablepytorch3dPyTorch3D provides reusable components for 3D…
permissive · top 5,000 on PyPI
xatlasGenerates UV texture coordinates for 3D…
permissive · top 15,000 on PyPI
triangleTriangle wraps Jonathan Richard Shewchuk's C…
copyleft · top 15,000 on PyPI
vhacdxComputes approximate convex decomposition of…
unclear · top 5,000 on PyPI
cytriangleCyTriangle wraps Jonathan Shewchuk's Triangle…
copyleft · top 15,000 on PyPI
trimeshTrimesh loads, manipulates, and analyzes…
permissive · top 5,000 on PyPI
fast-simplificationSimplifies 3D meshes by reducing the number of…
permissive · top 15,000 on PyPI