- Published: 2025-07-15
- Updated: 2025-07-29
- MeshLib Team
MeshLib vs. MeshLab for Mesh Simplification
Mesh simplification, aimed at reducing polygon counts in 3D objects, is invaluable for countless 3D data processing professionals. We have already described applicable MeshLib’s decimation capabilities in depth. Today, it is our intention to compare our SDK with the MeshLab mesh simplification parameters.
Indeed, MeshLab, known for its simplification, refinement, and re-meshing potential is a popular choice for many teams. To help you make your own informed decision, we put both contestants to a test, as a part of our broader research.
MeshLab vs MeshLib: Feature-by-Feature Comparison
In terms of their respective key missions, our two alternatives can be described as follows:
- MeshLab officially works as an open source system employed for processing and editing 3D triangular meshes.
- MeshLib is an all-in-one open-source 3D data processing library to be integrated with other software products.
When you think about polygon reduction with MeshLab or MeshLib, here is what you will find inside:
Feature | MeshLib (Quadric Edge Collapse algorithm used) | MeshLab – Quadric Edge Collapse | MeshLab – Clustering | Key takeaways |
---|---|---|---|---|
What it does | Smart edge-collapse routine that trims polygons while keeping the shape | Classic quadric-error simplifier for high-quality polygon reduction with MeshLab | Super-fast voxel-grid merge for rough cuts | Quadric offers many GUI parameters but no programmable hooks. MeshLib is thoroughly scriptable. Clustering focuses on speed |
When it stops | Faces (maxDeletedFaces), Vertices (maxDeletedVertices), shape error (maxError) | Face count (targetfacenum) and the percentage of size (targetperc) | Driven by Cell Size | MeshLib offers error limits. Quadric offers count and %. Clustering is grid-only |
Border safety | Fine-grained switches (touchNearBdEdges, touchBdVerts, maxBdShift) | Simple toggles (preserveboundary, boundaryweight) | No dedicated border flags. | MeshLib is precise. Quadric is more basic; Clustering may slice borders |
Textures & colors | Keeps normals/colors. UVs can be kept with vertForms and callbacks | Use texture-aware filter “Quadric Edge Collapse (with texture)” and extratcoordw | UVs are lost | Need UVs for sure? Pick MeshLib with setup or MeshLab’s texture filter. Skip Clustering. |
Output quality | Guards against skinny triangles (maxTriangleAspectRatio, optimizeVertexPos, etc.). | Quality knobs (qualitythr, planarquadric, optimalplacement). | No quality controls | MeshLib and Quadric keep things tidy. Clustering trades quality for speed—this still might be handy for a quick decimate STL file in a MeshLab run |
Supported file formats with MeshLib:
- Import: STL, OBJ, OFF, DXF, STEP, STP, CTM, 3MF, MODEL, PLY, GLTF, ASC, CSV, E57, LAS, LAZ, PTS, XYZ, TXT, DICOM (.DCM), RAW, TIFF (.TIF, .TIFF), VDB, GAV, PNG, JPEG, GCODE, NC
- Export: STL, OBJ, OFF, DXF, CTM, PLY, GLTF, ASC, DICOM (.DCM), VDB, GAV
Note: STEP (.STP) files are automatically converted into mesh representations during import.
Supported file formats with MeshLab:
- Import: 3DS, APTS, ASC, BRE, CTM, DAE, E57, ES, FBX, GLB, GLTF, OBJ, OFF, PDB, PLY, PTS, PTX, QOBJ, STL, TRI, TXT, VMI, WRL, X3D, X3DV, XYZ, BMP, JPEG, JPG, PNG, TGA, TIF, TIFF, XBM, XPM
- Export: 3DS, CTM, DAE, DXF, E57, IDTF, JSON, NXS, NXZ, OBJ, OFF, PLY, STL, U3D, WRL, X3D, XYZ
Advanced Features in MeshLib and MeshLab
Note: some of which are available through MeshInspector (please note that if you use MeshInspector to learn about MeshLib features, customization and rollbacks are not supported there)
Advanced Feature | MeshLib (Quadric Edge Collapse algorithm) | MeshLab – Quadric Edge Collapse | MeshLab – Clustering Decimation | Key takeaways |
---|---|---|---|---|
Customization | Rich callback suite with preCollapse, adjustCollapse, onEdgeDel, progressCallback lets you veto, tweak, monitor, or cancel collapses | No parameters expose callbacks or scripting | No callbacks exposed | MeshLib is fully scriptable. Both MeshLab filters are GUI-centric |
Extra simplification tools and helpers | resolveMeshDegenerations removes tiny or degenerate triangles before and after decimation | Built-in autoclean flag | No clean-up flag. Grid merge is fast but leaves any fixes to later filters | MeshLib offers a programmable clean-up step. Quadric gives a one-click GUI clean. Clustering is speed-first and assumes you’ll run another filter if needed |
As you might have already guessed, our options of choice differ from each other not only in terms of functions and features, but also in terms of the algorithms they build upon perspectively:
- MeshLib launches an automated, quality-bounded polygon reduction that uses a QEM edge-collapse queue to remove the lowest-error edges until your target face count or geometric threshold is met. Boundaries, creases, per-vertex attributes, locked regions, silhouettes, and UV/color data are respected when the corresponding settings are enabled. Then a report on faces removed and error introduced is returned. This lets you trim tech costs without losing visual or topological fidelity. For large-scale datasets, a parallelized version of the algorithm dramatically accelerates processing without compromising output quality.
- MeshLab – Quadric Edge Collapse ranks every edge with a quadric-error score from adjacent triangle quadrics and collapses the lowest-cost candidates, merging vertices while tightly preserving shape.
- MeshLab – Clustering Decimation slices the space into a 3-D grid, groups vertices within each cell, and substitutes each cluster with a single representative vertex, cutting vertex counts through location-based simplification.
MeshLab Algorithms: Quadric Edge Collapse vs. Clustering Decimation
Just in case, Let’s repeat what MeshLab does in terms of mesh simplification tasks:
- Quadric Edge Collapse Decimation. Here, adjusting the Meshlab Quadric Edge Collapse Decimation quality threshold in the Quadric Edge Collapse Decimation Meshlab Settings (i.e., qualitythr) lets the filter rank every edge by quadric error and collapse only the lowest-cost candidates—preserving shape with minimal distortion while the algorithm still evaluates the entire mesh before removing any edge.
- Clustering Decimation. This approach grids the model, replaces all vertices in each cell with one representative. Optionally, you can follow up with MeshLab to clean up faces after decimating to clear stray slivers and keep the mesh tidy.
MeshLib Modes: ST (Single-Threaded) vs. MT (Multi-Threaded)
As you will see below, our comparison will feature two MeshLib’s simplification modes, ST and MT. Here is what they stand for:
Mode | What happens under the hood |
---|---|
ST (Single-Threaded) | One CPU core runs the entire edge-collapse queue. |
MT (Multi-Threaded) | MeshLib splits the model into virtual parts via subdivideParts and processes them in parallel. |
Pro Tip: When working in the MT mode, align the number of threads with your system’s core count. Among other things, on a 16-core machine, 16 threads will maximize efficiency, whereas using 64 threads would be counterproductive. Do not waste valuable time and resources on such attempts.
Our Benchmark Methodology
In order to put our two contestants to a test, we used the following hardware configuration:
- Windows 11
- Intel Core i7-12700H
- 32GB RAM
- NVIDIA RTX 3060m (6GB VRAM)
Test Model
This hardware was employed to simplify an intricate and visually striking Nefertiti mesh. As long as it boasts over 2 million triangles, this level of complexity presents a certain challenge for mesh processing alternatives.

Simplification Goals
With this model and hardware at our disposal, we initiated two mesh simplification scenarios. This happened for a purpose. Your mesh simplification requirements are understandably defined by your unique project. For some undertakings, a limited-scale tenfold reduction in complexity would suffice. Other initiatives could demand reductions by a factor of 100. And x1,000 manipulations are not unheard of. As far as MeshLib is concerned, to ensure an effective and insightful evaluation, we’ve outlined two key quality standards.
Standard 1. Heavy Mesh Simplification
The objective is to start with 2 million triangles down and get just to 2,000. Doubtlessly, this is a dramatic complexity reduction scale.
Standard 2. Moderate Mesh Simplification
This involves a less aggressive ambition. Our mission to accomplish is simplifying the same 2 million triangles to 200,000.
Evaluation Metrics
Both scenarios via both options, simplifying a mesh with MeshLab and MeshLib, were run against the backdrop of these parameters:
1. ‘Time’—the total time taken to execute the task, expressed in seconds.
2. ‘Degeneracies’—the quantity of triangles with highly skewed aspect ratios, specifically those exceeding 1:100.
3. ‘Self-Intersections’—the overall number of instances where geometries overlap or intersect.
4. ‘Small Components’—the tally of isolated or disconnected elements within the mesh.
5. ‘Holes’—the total number of gaps or missing sections in the mesh structure.
6. ‘Hausdorff Distance (mm)’—the largest observed difference between the original and simplified meshes.
7. ‘Average Absolute Distance (mm)’—the average variation, serving as a key indicator of geometric precision.
Now, we are finally switching to how to simplify mesh with MeshLab and MeshLib.
Test Results: Heavy Mesh Simplification (2M → 2,000 Triangles)
Let’s begin with the actual outcomes of our heavy mesh simplification efforts.

MeshLib ST

MeshLib MT

MeshLab QECD

MeshLab Clustering Decimation
Some conclusions can be drawn right on the spot. Both alternatives from MeshLib look workable. When it comes to MeshLab, there is a clear nuance. QECD appears to be a viable option, while there are some obvious issues in the Clustering Decimation output.
Heavy Simplification: Performance Metrics
Gauge | ST | MT | MeshLab QECD | MeshLab Clustering Decimation |
---|---|---|---|---|
Task Time(s) | 3.9 | 0.9 | 16 | 0.2 |
Degeneracies (strong, i.e., 1:100, see explanation below) | 0 | 0 | 0 | 13 |
Self-Intersections | 0 | 0 | 0 | 0 |
Small Components | 0 | 0 | 0 | 130 |
Holes | 0 | 0 | 0 | 60 |
Hausdorff Distance (mm) | 3.45 | 0.286 | 4.451 | 7.686 |
Average absolute distance (mm) | 0.287 | 0.284 | 0.315 | 0.610 |
Analysis and verdict
Based on the comparative analysis, ST and MT were quick to demonstrate the best overall performance, with proper precision, minimal issues. MeshLab QECD and MeshLab Clustering Decimation fell behind. Using the second one, for instance, led to holes, small components, and degeneracies, as well as to distance-related issues. However, its clustering approach can be employed to quick operations when quality is not critical.
Test Results: Moderate Mesh Simplification (2M → 200,000 Triangles)
Again, let’s start our brief evaluation by taking a look at the representation of our mesh simplification outputs

MeshLib ST

MeshLib MT

MeshLab QECD

MeshLab Clustering Decimation
Just as in our previous testing round, the first three alternatives seem to have risen to the occasion. However, the fourth option, while retaining some quality on the surface, did cause some issues. Just look closer around the resulting image.
Moderate Simplification: Performance Metrics
Gauge | ST | MT | MeshLab QECD | MeshLab Clustering Decimation |
---|---|---|---|---|
Task Time(s) | 3.8 | 0.9 | 15.1 | 0.3 |
Degeneracies (strong, i.e., 1:100, see explanation below) | 0 | 0 | 1 | 1280 |
Self-Intersections | 3 | 0 | 0 | 150 |
Small Components | 0 | 0 | 0 | 3400 |
Holes | 0 | 0 | 0 | 650 |
Hausdorff Distance (mm) | 0.143 | 0.143 | 0.386 | 0.938 |
Average absolute distance (mm) | 0.018 | 0.018 | 0.101 | 0.051 |
Analysis and verdict
ST and MT do stand out as the top performers, mixing precision with minimized degeneracies, self-intersections, and small components (all while maintaining remarkably low processing times). MeshLab QECD, while slower, achieves respectable accuracy. However, MeshLab Clustering Decimation, despite its speed, falls short in terms of quality. Ultimately, ST and MT are notable as the most reliable solutions.
Conclusion: When to Choose MeshLib vs. MeshLab
Wrapping up our research into the mesh simplification potential of MeshLib and MeshLab, the following recommendations can be out forward:
- Choose MeshLib (ST/MT) for high-quality, precise, and efficient simplification with minimal errors. This is the go-to solution for professional results.
- Consider MeshLab QECD for non-critical tasks where slightly lower precision and slower speed are acceptable.
- You can use MeshLab Clustering Decimation for quick and real-time previews. It is fast, but that speed here comes at the cost of accuracy. Still, this option may be fine when you just need something on-screen right away.
What our customers say
Thomas Tong
Founder, Polyga

Gal Cohen
CTO, customed.ai

Mariusz Hermansdorfer
Head of Computational Design at Henning Larsen Architechts

HeonJae Cho, DDS, MSD, PhD
Chief Executive Officer, 3DONS INC

Ruedger Rubbert
Chief Technology Officer, Brius Technologies Inc








Start Your Journey with MeshLib
MeshLib SDK offers multiple ways to dive in — from live technical demos to full application trials and hands-on SDK access. No complicated setups or hidden steps. Just the tools you need to start building smarter, faster, and better.
