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:

  1. Windows 11
  2. Intel Core i7-12700H
  3. 32GB RAM
  4. 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.

MeshLib% filename%

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% filename%

MeshLib ST

Model: Meshlib MT (Heavy)

MeshLib MT

Model: QECD (Heavy)

MeshLab QECD

Model: Meshlab Clustering Decimation (Heavy)

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

Model: Meshlib ST (Moderate)

MeshLib ST

Model: Meshlib MT (Moderate)

MeshLib MT

Model: Meshlab QECD (Moderate)

MeshLab QECD

Model: Meshlab Clustering Decimation (Moderate)

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

MeshLib% filename%
When we set out to develop our new Podkit scanning platform, we chose MeshInspector’s MeshLib as the foundation. That partnership let us accelerate development, ship new features faster, and get to market months sooner than we could have on our own. The MeshInspector team has been outstanding — quick answers, deep technical know-how, and genuine enthusiasm for our success. We simply wouldn’t be where we are today without their support.

Gal Cohen

CTO, customed.ai

MeshLib% filename%
“MeshLib has been a game-changer for our company, providing all the essential operations we need to handle meshes and create highly accurate personal surgical instruments (PSIs), which are our primary products. After extensive research and comparison, MeshLib stands out as the best solution on the market. Their team is exceptionally professional and knowledgeable. Collaborating with them has been an absolute pleasure—they respond to any issues we encounter promptly and always deliver effective solutions. Their commitment to customer support and technical excellence is truly unmatched.”

Mariusz Hermansdorfer

Head of Computational Design at Henning Larsen Architechts

MeshLib% filename%
“Over the past year, MeshLib has transformed my approach to design and analysis in landscape architecture and architecture projects. This powerful library excels in critical areas, such as geometry processing, interactive booleans, point cloud manipulation, and curve offsetting. These features enhance design workflows, allowing for dynamic modifications, efficient terrain modeling, stormwater flow analysis, and advanced wind flow visualiiza…..”

HeonJae Cho, DDS, MSD, PhD

Chief Executive Officer, 3DONS INC

MeshLib% filename%
“MeshLib SDK helped us achieve faster and more accurate calculation results and outperformed any other Mesh Processing library that we evaluated. For us in digital dentistry, it was a game-changer. Mesh processing operations, such as inspecting and editing the mesh to create dental devices for the treatment plan, are crucial. MeshInspector support liberated our team from technical constraints so we concentrated on creating exactly what we wanted. I highly recommend incorporating the MeshLib into your software arsenal.”

Ruedger Rubbert

Chief Technology Officer, Brius Technologies Inc

MeshLib% filename%
“With MeshInspector MeshLib we were able to automate many of our workflow processes, thanks to its advanced, modern, and efficient dental and geometry oriented algorithms, covering many of our orthodontic-related tasks: CT and intraoral scan segmentation, voxel and Boolean operations, editing, aligning, visualization, inspection, and import/export of mesh objects. We use the versatile MeshInspector MeshLib API, both in production and R&D for fast prototyping and testing of our ideas.”

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.

Journey with MeshLib SDK
Core Developers
MeshLib Team, official authors of MeshInspector App and MeshLib SDK, leverages over 20 years of 3D data-processing and mathematical expertise to deliver high-performance, plug-and-play algorithms that simplify even the most complex mesh workflows.
Leave a review about this post
{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}
Share this post on social media