MeshLab the open source system for processing and editing 3D triangular meshes.
It provides a set of tools for editing, cleaning, healing, inspecting, rendering, texturing and converting meshes. It offers features for processing raw data produced by 3D digitization tools/devices and for preparing models for 3D printing.

News

MeshLab 2023.12 and PyMeshLab 2023.12 have been released!
28/02/2022

A new version of MeshLab and PyMeshLab has been released: 2023.12!
Moreover, MeshLab is now available for download on the Microsoft Store! Check it out here!


Additional details about this release can be found here and here.


New MeshLab and PyMeshLab version: 2022.02
28/02/2022

We released MeshLab and PyMeshLab 2022.02, with new features, bugfixes and improvements! You can check for more details here and here.


MeshLab and PyMeshLab 2021.10 released
29/10/2021

MeshLab and PyMeshLab 2021.10 have been released, with lot of bugfixes and new features! You can check for more details here and here.


MeshLab 2021.07 has been released
23/07/2021

MeshLab 2021.07 is out! In this version we introduce support to several file formats (*.gltf, *.glb, *.nxs, *.nxz, *.e57) and a brand new plugin for exact mesh booleans. You can download in the download section, or in the github release page.

You can check all the details regarding the new release here.

MeshLab 2021.05 released
27/05/2021

MeshLab 2021.05 has been released! You can download in the download section, or in the github release page.

You can check all the details regarding the new release here.

New version 2020.12 is out!!
01/12/2020

MeshLab 2020.12 has been released. With this version, we dismiss meshlabserver in favour of PyMeshLab, our new Python library for mesh batch processing using MeshLab filters.
We release also a new version that stores data with double precision. For further details, you can read the discussion in our GitHub page.

Changelog:

  • lot of bug fixes
  • GUI improvements
  • new version 2020.12d that stores data with double precision (beta!!)

MeshLab 2020.07 released
06/07/2020

MeshLab 2020.07 is out! You can download in the download section, or in the github release page.

Changelog:

  • new plugin "Global Registration" based on OpenGR library;
  • option to reverse wheel direction;
  • snap package allows to associate file extensions and to open files on external disks;
  • u3d exporter is now more stable and works on every platform;
  • removed support for XML plugins and QtScript dependecy;
  • VisualSFM (and some other formats) output *.nvm, *.rd.out projects supported by meshlabserver
  • various bugfixes

MeshLab 2020.06 released
01/06/2020

MeshLab 2020.06 is out! You can download in the download section, or in the github release page.

Changelog:
Due to the deprecation of QtScript and all the issues related to it, we are dropping from MeshLab the support to XML plugins, and therefore all the XML plugins have been transformed to classic plugins in this MeshLab version. The involved plugins are:

  • Screened Poisson;
  • Measure;
  • Voronoi;
  • Mutualinfo;
  • Sketchfab;
Due to this porting, all old .mlx MeshLab scripts that involve one of these plugins may not work on MeshLab and MeshLabServer 2020.06. Starting from MeshLab 2020.07, XML plugins won't compile anymore and they cannot be loaded anymore.

New MeshLab 2020.03 and automatic deployment
26/3/2020

We are happy to annouce that MeshLab 2020.03 is out! We set up an automatic system on our Github repository to automatically release a MeshLab version every first day of the month. Ultimate release can be found in the release page.

Note for Windows version: before installing MeshLab 2020.03, please uninstall manually any old MeshLab version. This is a known bug of the installer and will be fixed as soon as possible in future versions.

SGP Software Award
6/6/2017

We are proud to announce that on July the 6th, at the Eurographics Symposium on Geometry Processing (SGP), MeshLab has been endowed with the prestigious Eurographics Software Award!

The award has been given for "having contributed to the scientific progress in Geometry Processing by making the software available to the public such that others can reproduce the results and further build on them in their own research work".

MeshLab 2016 Released
23/12/2016

After a very long time, a huge rewriting process, and a strongly renewed effort the new MeshLab version is finally out!

  • Total rewriting of the internal rendering system. Huge rendering speed ahead!
  • Screened Poisson Surface Reconstruction updated to the very latest version.
  • New Transformation filters.
  • New ways of getting metric information out of your models.
  • Transformation matrices are now used more uniformly among filters.
  • Alpha value is now used properly by all color-related filters.
  • Improvement and typos removal on various help/description texts.
  • Direct upload of models on SketchFab
  • Raster registration on 3D model based also on 2D/3D correspondences
  • Bug-fixing on almost all filters.

Features

  • 3D Acquisition: Aligning

    The 3D data alignment phase (also known as registration) is a fundamental step in the pipeline for processing 3D scanned data. MeshLab provides a powerful tool for moving the different meshes into a common reference system, able to manage large set of range-maps. MeshLab implements a fine tuned ICP one-to-one alignment step, followed by a global bundle adjustment error-distribution step. The alignment can be performed on meshes and point clouds coming from several sources, including active (both short- and long-range) scanners and 3D-from-image tools.

  • 3D Acquisition: Reconstruction

    The process of transforming independent acquisitions, or point clouds, into a single-surface triangulated mesh can be fulfilled with different algorithmic approaches. MeshLab provides several solutions to reconstruct the shape of an object, ranging from volumetric (Marching Cube) to implicit surfaces (Screened Poisson).

  • 3D Acquisition: Color Mapping and Texturing

    Color information may be as important as geometry, but several acquisition technologies do not provide accurate appearance data. MeshLab contains a pipeline for the alignment and projection of color information (from a set of uncalibrated images) onto a 3D model. Several automatic and assisted methods are provided to obtain a high quality color encoding, with both per-vertex or texture mapping.

  • Cleaning 3D Models

    MeshLab offers a series of automatic, semi-manual and interactive filters to remove those geometric element generally considered “wrong” by most software and algorithms. It is possible to removing topological errors, duplicated and unreferenced vertices, small components, degenerated or intersecting faces, and many more geometrical and topological singularities. Using different automatic and interactive selection methods, is then possible to isolate and remove unwanted areas of your meshes and point clouds.

  • Scaling, Positioning and Orienting

    3D models, especially coming from survey and scanning, often need to be re-oriented, or placed in a specific reference system; additionally, if they have been generated from 3d-from-photos, they generally need scaling to become metric. MeshLab provides a variety of features to manipulate the scale, positioning and orientation of a 3D model, including basic transformation operations like translation/scaling/rotation, automatic re-centering and alignment to axis, geo-referencing with reference points, interactive manipulators for rotation/translation/scaling, and many others.

  • Simplification, Refinement and Remeshing

    A common need when processing a 3D model is to reduce its geometric complexity, creating a geometry with the same shape but with less triangles (or points). MeshLab offers different ways to simplify (decimate) triangulated surfaces, able to preserve geometrical detail and texture mapping, or to selectively reduce the number of points in a pointcloud. In other cases, the user may want to increase the number of triangles (or points): MeshLab also provides different subdivision schemes, remeshing and resampling filters to increase geometric complexity of 3D models, or to optimize point distribution and triangulation quality.

  • Measurement, and Analysis

    Interactive point-to-point measurement of a 3D model is really easy in MeshLab. Moreover, automatic filters will return various geometric and topological information about your 3D model (or just of a selected area), while the Sectioning tool can export cut-through sections of a mesh as polylines. Different geometric information (like curvature, geodesic distance, or local vertex density) may be calculated on meshes and 3D models using automatic filters.

  • Visualization and Presentation

    The visualization features of MeshLab (including Decorators and Shaders) can help in graphically present the peculiar characteristics of a 3D model. It is possible to control the camera perspective/orthographic view parameters, and use predefined canonical views. MeshLab also offers a high-resolution screenshot feature, extremely useful in creating a graphical documentation of a survey.

  • Color Processing

    MeshLab can manipulate the vertex and face colors using a series of photoshop-like filters (gamma, saturation, brightness, contrast, levels, smoothing, sharpening). Automatic filters are available to calculate Ambient Occlusion and Volumetric Obscurance and to map it to vertex or face color. It is also possible to explicitly write color functions, to highlight specific characteristics of the 3D model. MeshLab also offers a painting interface for vertex colors. Scalar values, possibly the result of a metric calculation on the 3D surface, may also be mapped on vertex/face color, to have a visual representation of that value.

  • 3D Printing: Offsetting, Hollowing, Closing

    Beside being able to export to STL (one of the most common formats for 3D printing), MeshLab can be used to prepare 3D models for printing by creating inner shells, resampling/remeshing the 3D model to make slicing easier, closing small holes to obtain watertight meshes, and flattening the bottom area to have a better platform adherence.

  • Comparing Models

    Measuring the geometric difference between two 3D models using Hausdorff Distance is a common approach in mesh processing. Many years ago (in 1997!), the Visual Computing Lab developed and freely distributed what become the standard tool for such task, Metro; the related paper has been cited more than one thousand times. While the original Metro tool was a small open source standalone command line program (still available at our web site), MeshLab offers now much more advanced functionalities for comparing two meshes, that also compute signed distance and may work on point clouds.

  • 3D Models Conversion and Interchange

    MeshLab can import and export a number of different 3D data formats and to online services like SketchFab. In this way it is possible for the user to interchange data with other tools (including Blender, Photoscan, VisualSfM, Cloud Compare, Autodesk tools), working in the context of complex 3D processing pipelines in a number of different contexts and applications. The scripting functionalities will make this type of use even easier and unattended.

  • Raster Layers: Integration with Images

    Raster Layers have been introduced in MeshLab to allow to go beyond the standard 3D model. MeshLab users can import in a project also images and other 2D entities. These Raster Layers can be used not only to project color information on the 3D model, but also to generate peculiar points of view, or store an entire 3d-from-image acquisition procedure by including also the images used for the generation of the final results.

Support

Mister P. YouTube tutorials

Basics

This playlist shows the basic concepts for the 3D model handling in MeshLab.

Features

This playlist describes interesting features of MeshLab: edit, filters, decorations, that can be useful in your everyday "mesh processing" life.

3D Scanning pipeline

This playlist describes the main steps of the scanning pipeline performed with MeshLab.

Cleaning

This playlist describes way to "clean" your mesh by removing unwanted geometry or attributes.

Questions and Forum

For question, clarifications and any kind of doubts about MeshLab and how to get the best result with the various filters, use stackoverflow.
Be specific, and tag your questions with MeshLab.

Bug Report

Please report on github ONLY bugs and malfunctioning. Please do not file as github issues questions about how to use MeshLab.


Before issueing a bug, please, read carefully how to report a bug Report a Bug

Bragging

For sharing nice pictures, reporting interesting experiences, thanking (or blaming) the developers, or just bragging on your last results, follow the official facebook MeshLab page.
Remember: do not ask technical questions on facebook. (facebook is neither easily searchable nor well indexed: any effort done in answering technical questions is a bit wasted)

Licensing

MeshLab sources are distributed under the GPL 3.0 Licensing Scheme.
The 'MeshLab' name is a EUIPO trademark owned by CNR.
MeshLab Logos ( ) are distributed under Creative Commons License
Creative Commons Attribution-Sharealike 4.0 International License and they can be freely used inside any wikimedia project.

References

The simplest way to show your appreciation of the MeshLab system is to remember citing it whenever you have used some of its functionalities.
There are many publications related with MeshLab, in case of doubt use the first one, but, please, look through the list and cite also all the proper ones.

As general info, MeshLab is an open-source system whose development has been led by the Visual Computing Lab of ISTI-CNR since 2005. It has been downloaded more than 3 million times, and, according to updating stats, it is currently used by more than 100,000 users.

General MeshLab citation. It should be used whenever you use MeshLab for many small things during your research. P. Cignoni, M. Callieri, M. Corsini, M. Dellepiane, F. Ganovelli, G. Ranzuglia
MeshLab: an Open-Source Mesh Processing Tool
Sixth Eurographics Italian Chapter Conference, page 129-136, 2008
@inproceedings {LocalChapterEvents:ItalChap:ItalianChapConf2008:129-136, booktitle = {Eurographics Italian Chapter Conference}, editor = {Vittorio Scarano and Rosario De Chiara and Ugo Erra}, title = {{MeshLab: an Open-Source Mesh Processing Tool}}, author = {Cignoni, Paolo and Callieri, Marco and Corsini, Massimiliano and Dellepiane, Matteo and Ganovelli, Fabio and Ranzuglia, Guido}, year = {2008}, publisher = {The Eurographics Association}, ISBN = {978-3-905673-68-5}, DOI = {10.2312/LocalChapterEvents/ItalChap/ItalianChapConf2008/129-136} }
PDF
More specific citation if you have used the Meshlab in 3D scanning with color pipelines, like for example when you use MeshLab in a archeological project to finish up textured models. G. Ranzuglia, M. Callieri, M. Dellepiane, P. Cignoni, R. Scopigno
MeshLab as a complete tool for the integration of photos and color with high resolution 3D geometry data
CAA 2012 Conference Proceedings, page 406-416, 2013
@InProceedings {RCDCS13, author = "Ranzuglia, Guido and Callieri, Marco and Dellepiane, Matteo and Cignoni, Paolo and Scopigno, Roberto", title = "MeshLab as a complete tool for the integration of photos and color with high resolution 3D geometry data", booktitle = "CAA 2012 Conference Proceedings", pages = "406-416", year = "2013", publisher = "Pallas Publications - Amsterdam University Press (AUP)", url = "http://vcg.isti.cnr.it/Publications/2013/RCDCS13" }
PDF
When using MeshLab for computing differences between meshes using Hausdorff Distance P. Cignoni, C. Rocchini, R. Scopigno
Metro: measuring error on simplified surfaces
Computer Graphics Forum 17 (2), 167-174, 1998
@inproceedings {cignoni1998metro, title={Metro: measuring error on simplified surfaces}, author={Cignoni, Paolo and Rocchini, Claudio and Scopigno, Roberto}, booktitle={Computer Graphics Forum}, volume={17}, number={2}, pages={167--174}, year={1998}, organization={Blackwell Publishers} }
PDF
When using MeshLab to improve an existing parametrization (UV-map layout) of a textured 3D model, generated with automatic photo-reconstruction tools (e.g. when you want to get a nice, optimized parametrization out of a awfully scattered and fragmented atlas generated by one of the many tools for creating 3D models from photos). Maggiordomo, Andrea, Paolo Cignoni, and Marco Tarini
Texture Defragmentation for Photo-Reconstructed 3D Models
Computer Graphics Forum. Vol. 40. No. 2. 2021, 2021
@Article{CCS12, author = "Maggiordomo, Andrea and Cignoni, Paolo and Tarini, Marco", title = "Texture Defragmentation for Photo-Reconstructed 3D Models", journal = "Computer Graphics Forum", number = "2", volume = "40", pages = "65--78", year = "2021", note = "https://doi.org/10.1111/cgf.142615", url = "http://vcg.isti.cnr.it/Publications/2021/MCT21/" }
PDF
When using MeshLab to generate well distributed (Poisson Disk) point sampling over mesh surfaces or when used to uniformly simplify large point clouds. G. Ranzuglia, M. Callieri, M. Dellepiane, P. Cignoni, R. Scopigno
Efficient and Flexible Sampling with Blue Noise Properties of Triangular Meshes
IEEE Trans. on Visualization and Computer Graphics, Vol. 18, Num. 6, page 914--924, 2012
@Article{CCS12, author = "Corsini, Massimiliano and Cignoni, Paolo and Scopigno, Roberto", title = "Efficient and Flexible Sampling with Blue Noise Properties of Triangular Meshes", journal = "IEEE Transaction on Visualization and Computer Graphics", number = "6", volume = "18", pages = "914--924", year = "2012", note = "http://doi.ieeecomputersociety.org/10.1109/TVCG.2012.34", url = "http://vcg.isti.cnr.it/Publications/2012/CCS12" }
PDF
When using Screened Poisson Surface Reconstruction algorithm to build a triangulated mesh out of a point cloud. M. Kazhdan, H. Hoppe
Screened poisson surface reconstruction
ACM Transactions on Graphics (TOG), 32(3), 29, 2013
@article{kazhdan2013screened, title={Screened poisson surface reconstruction}, author={Kazhdan, Michael and Hoppe, Hugues}, journal={ACM Transactions on Graphics (TOG)}, volume={32}, number={3}, pages={29}, year={2013}, publisher={ACM} }
PDF
When using the many functionalities for transfering attributes between meshes and textures. Paolo Cignoni, Claudio Montani, Claudio Rocchini, Roberto Scopigno, Marco Tarini
Preserving attribute values on simplified meshes by resampling detail textures
The Visual Computer, 15 (9), 1999
@article{PTC10, title={Preserving attribute values on simplified meshes by resampling detail textures}, author={Cignoni, Paolo and Montani, Claudio and Rocchini, Claudio and Scopigno, Roberto and Tarini, Marco}, journal={The Visual Computer}, volume={15}, number={10}, pages={519--539}, year={1999}, publisher={Springer} }
PDF
When using the isoparametric mesh parametrization algorithm for remeshing surfaces. Nico Pietroni, Marco Tarini, Paolo Cignoni
Almost isometric mesh parameterization through abstract domains
IEEE Transaction on Visualization and Computer Graphics, Volume 16, Number 4, 2010
@article{PTC10, author = {Pietroni, Nico and Tarini, Marco and Cignoni, Paolo}, title = {Almost isometric mesh parameterization through abstract domains}, journal = {IEEE Transaction on Visualization and Computer Graphics}, number = {4}, volume = {16}, year = {2010}, }
PDF
When using the quad and tri-to-quad functionalities to automatically convert a triangular mesh into a quad mesh. M Tarini, N Pietroni, P Cignoni, D Panozzo, E Puppo
Practical quad mesh simplification
Computer Graphics Forum 29 (2), 407-418 , 2010
@Article{TPCPP10, author = {Tarini, Marco and Pietroni, Nico and Cignoni, Paolo and Panozzo, Daniele and Puppo, Enrico}, title = {Practical quad mesh implification}, journal = {Computer Graphics Forum (Special Issue of Eurographics 2010 Conference)}, number = 2, volume = 29, year = 200, url = http://vcg.isti.cnr.it/Publications/2010/TPCPP10 }
PDF
When using Radiance Scaling shader effect to enhance the surface features. R. Vergne, R. Pacanowski, P. Barla, X. Granier, C. Schlick
Radiance scaling for versatile surface enhancement
Proceedings of the 2010 ACM SIGGRAPH symposium on Interactive 3D Graphics and Games (pp. 143-150). ACM, 2010
@inproceedings{vergne2010radiance, title={Radiance scaling for versatile surface enhancement}, author={Vergne, Romain and Pacanowski, Romain and Barla, Pascal and Granier, Xavier and Schlick, Christophe}, booktitle={Proceedings of the 2010 ACM SIGGRAPH symposium on Interactive 3D Graphics and Games}, pages={143--150}, year={2010}, organization={ACM} }
PDF