The system is aimed to help the processing of the typical not-so-small unstructured models arising in 3D scanning, providing a set of tools for editing, cleaning, healing, inspecting, rendering and converting this kind of meshes.
The system is heavily based on the VCG library developed at the Visual Computing Lab of ISTI - CNR, for all the core mesh processing tasks and it is available for Windows, MacOSX, and Linux. .
The MeshLab system started in late 2005 as a part of the FGT course of the Computer Science department of University of Pisa and most of the code (~15k lines) of the first versions was written by a handful of willing students. The following years FGT students have continued to work to this project implementing more and more features. The proud MeshLab developers are listed here.
This project is actively supported by the 3D-CoForm project.
meshlab_1.3.0a+dfsg1-2_i386.deb on Ubuntu Universe repository
Update the package index:
Interactive selection and deletion of portion of the mesh. Even for large models.
Painting interface for selecting, smoothing and coloring meshes.
Input/output in many formats:
import:PLY, STL, OFF, OBJ, 3DS, COLLADA, PTX, V3D, PTS, APTS, XYZ, GTS, TRI, ASC, X3D, X3DV, VRML, ALN
export:PLY, STL, OFF, OBJ, 3DS, COLLADA, VRML, DXF, GTS, U3D, IDTF, X3D
Point Clouds support. Now 3D files that are composed only by points are well supported in PLY and OBJ format.
U3D support; MeshLab is the first open source tool to provide direct conversion of 3D meshes into the U3D format. Now you can create pdf, like this with 3D objects with just MeshLab and LaTeX.
Mesh Cleaning Filters:
removal of duplicated, unreferenced vertices, null faces
removal of small isolated components
coherent normal unification and flipping
erasing of non manifold faces
automatic filling of holes
High quality edge collapse simplification (even with texture coords preservation)
Surface reconstruction from points (a ball pivoting variant, marching cubes and poisson's reconstruction)
Subdivision surfaces (loop and butterfly)
Feature preserving smoothing and fairing filters
Various Colorization/Inspection filters
Gaussian and mean curvature
Border edges, geodesic distance, from borders
Non two-manifold edges and vertices
Self intersecting faces
Ambient Occlusion. An ambient occlusion field can be computed and stored per vertex
Interactive Mesh Painting
Measuring tool. You can take linear measures between points of the displayed meshes
Slicing tool. A new tool that allows to export planar sections of a mesh in SVG format
3D Scanning tools
Alignment ICP based range map alignment tool, for putting meshes into the same reference space.
Merging of multiple meshes the Poisson surface reconstruction source code (kindly provided by by Michael Kazhdan and Matthew Bolitho) have been included in.
OpenGL Shader based rendering (write your own shader!) compatible with Typhoon Lab's Shader Designer
Large rendering (up to 16k x 16k) for high quality printing
The history of the all performed cleaning/editing actions can be re-played on different meshes or saved and for archival purposes.
Extendible plugins based architecture, writing new mesh processing functions, colorization filters and support for different file formats is quite easy! Look at PlugIn Samples
Snapshots taken from MeshLab v 1.1.0
A snapshot of AcrobatReader displaying a PDF with a U3D model embedded. Support for saving meshes in U3D format is useful for creating, using latex, impressive PDFs with embedded 3D models. You simply need to convert your mesh into u3d format, include the small snip of tex code generated by MeshLab into your latex document and then compile it with pdflatex. Note that the u3d file format is quite compact; for an example this PDF, shown on the left image, contains the 50k triangle mesh of the Laurana's bust and it is squeezed to approx 200 kb. A zip with sources (latex and u3d file) can be found here.
Caveat: some pdf previewers (like the macosx 'Preview') do not fully support the pdf standard and do not display embedded 3D objects. Acrobat reader support 3D since version 7.
One example of real time NPR rendering using a hatching style implemented through a OpenGL shader. The shader was used to create the high res snapshot (2282x2942).
Snapshots taken from MeshLab v 0.6
A 10,000,000 face model successfully loaded and ready for inspecting. 3D Model of a Thai statue courtesy of XYZ RGB inc. provided by the Stanford 3D Scanning Repository.
A textured ply model of the well known Michelangelo David, original mesh courtesy of Stanford Digital Michelangelo Project, texturing done by Visual Computing Lab ISTI - CNR through integration of photos taken during the Restoration of the David.
A model with self intersecting faces detected by MeshLab colored in red. Mesh courtesy of the Aim@Shape Shape Repository.
A model with border edges colored in blue. Mesh courtesy of the Shape Repository of Aim@Shape.
A high resolution snapshot (4400x9110) taken with MeshLab of the 10 Mtri 3D model of the above cited Thai statuette. The snapshot is a 17Mb png, so you can download it using the sourceforge file distribution system. On the right you can see a very small portion of the orginal sample just to give you an idea of the quality of a 40 Mpix image.
An high resolution rendering (3200x6424) taken with MeshLab of the 8 Mtri model of the Michelangelo David. Original mesh courtesy of Stanford Digital Michelangelo Project. The model is interactively rendered using a pre-computed ambient occlusion term computed with the open source ShadeVis tool. On the right you can see a very small portion of the original rendering just to give you an idea of the quality of the original 20 Mpix image.