Mesh Lab
Mesh Lab
Abstract
The paper presents MeshLab, an open source, extensible, mesh processing system that has been developed at
the Visual Computing Lab of the ISTI-CNR with the helps of tens of students. We will describe the MeshLab
architecture, its main features and design objectives discussing what strategies have been used to support its
development. Various examples of the practical uses of MeshLab in research and professional frameworks are
reported to show the various capabilities of the presented system.
Categories and Subject Descriptors (according to ACM CCS): I.3.3 [Computer Graphics]: Line and Curve Genera-
tion
c The Eurographics Association 2008.
130 Cignoni et al. / MeshLab
• ease of use. The tool should be designed so that users just MeshLab and LaTeX, pdf files with 3D objects
without high 3D modeling skills could use it (at least for that can be seen with the current free version of Acro-
the most basic functionalities) bat Reader.
• deep of use. The tool should be designed so that advanced • Mesh Cleaning Filters:
users can tweak and extend it by adding functionality and – removal of duplicated, unreferenced vertices, null
or by modifying all the involved parameters. faces, small isolated components
• single mesh processing oriented. The system should try – coherent normal unification and flipping
to stay focused on mesh processing instead of mesh edit- – erasing of non manifold faces
ing and mesh design where a number of fierce competi- – automatic filling of holes
tors already crowd the software arena (notably blender, • Remeshing filters:
3D Max, Maya, and many others). – High quality edge collapse simplification (even with
• Efficiency. 3D scanning meshes can easily be composed texture coords preservation)
by millions of primitives, so the tool should be able to – Ball Pivoting surface reconstruction
manage them. – Subdivision surfaces (loop and butterfly)
• Sustainability. The project should be able to grow and – Feature preserving smoothing and fairing filters
self sustain itself for at least some years. • Various Colorization/Inspection filters
– Gaussian and mean curvature
As a result MeshLab presents itself a mesh viewer applica-
– Border edges, geodesic distance, from borders
tion, where a 3D object, stored in a variety of formats can be
– Non two-manifold edges and vertices
loaded and interactively inspected in a easy way, by simply
– Self intersecting faces
dragging and clicking on the mesh itself. MeshLab supports
– Ambient Occlusion. An ambient occlusion field can be
a ever growing variety of 3D formats (all the most commons
computed and stored per vertex
format are supported) to accommodate the broadest set of
users. Once loaded a mesh the user can work on it by mean • Measuring tool. You can take linear measures between
of a large set of direct parametric filters, that performs unat- points of the displayed meshes
tended automatic task like smoothing, re-meshing or sim- • Slicing tool. A new tool that allows to export planar sec-
plifying, or by mean of interactive tools. Figure 1 shows tions of a mesh in SVG format
an example of an interactive filter when the user drag the • 3D Scanning tools
– Alignment: ICP based range map registration tool, for
mouse over the mesh a local smoothing is performed on the
putting meshes into the same reference space.
touched portion of the mesh in real time; in this case the
– Merging of multiple meshes the Poisson surface recon-
result is that the user is washing out some features of the
struction source code
object. No classical design-oriented features are provided,
• OpenGL Shader based rendering
structured editing of complex scene graphs is not supported
• Large rendering. Images up to 16k x 16k pixels can be
by design. Multiple meshes can be loaded together and pro-
created for high quality poster printing
cessed separately or together following a flat approach based
on layers. This approach is, in some sense, a bit similar to the
classical raster processing tools that focus on the processing 2.1. MeshLab Development
of a bitmap and their "global" composition rather focusing One of the MeshLab ambitious goals was to create an open
on the pure painting operations. source application that is backed up by a sustainable devel-
The mesh processing functionalities that MeshLab cur- opment model. As previously discussed a common prob-
rently provide are many and a short, incomplete, high level lem of many open source tool is that either they are small
list of MeshLab characteristic is presented in the following: enough to be created and maintained by a small team, or,
if they require a considerable development effort, the devel-
• Interactive selection and deletion of portion of the mesh. oper team need to be economically supported in some way.
Even for large models. Many times the projects originates as research projects that
• Painting interface for selecting, smoothing and coloring are freed/opened (or simply released under some OSI ap-
meshes. proved license) at the end (or during) the (financially sup-
• Input/output in many formats: ported) research project. In these case the big incognito is the
– import: PLY, STL, OFF, OBJ, 3DS, COLLADA,
long term maintenance of the tool. In some cases the origi-
PTX, X3D, VRML
nal developers, mostly for ethical and sentimental reasons,
– export: PLY, STL, OFF, OBJ, 3DS, COLLADA, X3D,
continue a low priority maintenance the software correcting
VRML, DXF
small bugs and applying minor modifications, but great im-
– Point Clouds support. 3D files that are composed only
provements are difficult to carry on. A direct consequence of
by points are well supported in PLY and OBJ format.
this situation is that many many interesting projects lie in a
– U3D support; MeshLab is the first open source tool
rather abandoned state.
to provide direct conversion of 3D meshes into the
U3D format. with this format users can create, with While we could base the development of the system on a
c The Eurographics Association 2008.
Cignoni et al. / MeshLab 131
c The Eurographics Association 2008.
132 Cignoni et al. / MeshLab
c The Eurographics Association 2008.
Cignoni et al. / MeshLab 133
Figure 3: MeshLab provides filters that automatically removes the small isolated pieces that float around each single range
map. The same range maps is shown before (left) and after (right) the processing.
Figure 4: The figure shows the combined application of erosion dilation approach for cleaning out the depth jumps outliers
that sometimes appears. A set of small holes, that remains from outliers removal, is covered automatically by robust holefilling
technique.
(look above and around the bull statue) are removed. A set step but range map from each sequence get out already well
of small holes (all over the wall), that remains from previous aligned from the Arc3D service. The aligning issue arise
outliers removal, is covered automatically too. when you wont to join two or more different sequences. In
this case you have to align them together.
4. MeshLab as a general range map processing tool The Alignment process adopts a classical approach based
on first, a pairwise local and then a global alignment [LR01,
One of the interesting characteristic of MeshLab is the
Pul99]. The initial placement placement of each mesh is
presence of all the basic pieces of the 3D scanning soft-
driven by the user and require the selection of four or more
ware pipeline. Infact beside the rangemap cleaning tools de-
points on both the meshes. This initial step is followed by
scribed in the previous sections, that were tailored for the
an automatic process that fine tunes the whole alignment
noisy meshes output from multistereo reconstruction tech-
. The alignment code used in meshlab is a derivation of
niques, but works quite well for any kind of range maps,
the one used in Scanning Tools of the Visual Computing
inside meshlab there are tools for the subsequent required
Lab [CCG∗ 03], that has been used in a number of projects.
alignment and merging processing steps.
c The Eurographics Association 2008.
134 Cignoni et al. / MeshLab
Figure 5: Three samples of the meshes that can be obtained by using the Arc3D web service reconstruction and the MeshLab
system. On the Left, a textured mesh representing one of the two lions in the Loggia della Signoria in Florence. On the center
an untextured statue from the Portalada in Ripoll, a large portal in Ripoll, near Barcelona, on the right a reconstruction of the
Paris arc du triomphe, untextured for better evaluation of the geometric quality of the geometric shape. The ambient occlusion
lighting used to better enhance the shape features was computed with MeshLab.
Figure 6: A snapshot of the MeshLab Aligning tool, that allow to register different range maps, or in the case of data coming
from the Arc3D web service, portions of a same object that have been reconstructed from different photo sequences.
all the meshes in a single new mesh integrating the various more safe approach. Figure 5 shows three samples of the
parts together in a seamless way. MeshLab offers three dif- reconstruction process. On the Left, a textured mesh rep-
ferent surface reconstruction algorithms. The first one is a resenting one of the two lions in the Loggia della Signoria
interpolatory triangulation filter based on the Ball-Pivoting in Florence, the color was integrated from the many photos
algorithm [BMR∗ 99], that tries to build a surface connect- directly during the reconstruction. On the center an untex-
ing all the input points. This kind of algorithms do not work tured statue from the Portalada in Ripoll, a large portal in
very well in presence of very noisy input data like the one Ripoll, near Barcelona reconstructed using the Poisson sur-
coming from the Arc3D service. The other two are implicit face reconstruction algorithm; a watertight surface was ro-
surface approaches that uses the input data to build a im- bustly constructed, even if the input data contained only in-
plicit representation and then polygonalize it using marching formation on the front of the statue, building an interpolating
cubes [LC87] variants. One is based on the Poisson surface surface even for the back of the model. On the right a recon-
reconstruction algorithm [KBH06], and it uses part of the struction of the Paris arc du triomphe, done again with the
original code provided by the authors themselves, and the plymc apprach untextured for better evaluation of the geo-
second one, called plymc, developed at the Visual Comput- metric quality of the geometric shape. The ambient occlu-
ing Lab and described in [CCG∗ 03], is an extension of the sion shading that is used to better enhance the shape features
approach of [CL96]. The Poisson based surface reconstruc- was computed with MeshLab.
tion algorithm has the very nice characteristic that always
build a watertight hole-free surface filling with an interpola-
tory surface all the missing parts, but currently do not sup- 5. MeshLab as an inspection, verification, and
port the color preservation. On the other hand the plymc ap- assessment system
proach preserves the color during the processing but leaves Last but not least we would remember the many visualiza-
the unsampled areas as holes in the mesh; from a Cultural tion, inspection and healing features of MeshLab. One of the
Heritage point of view this behavior could be considered a common problem in managing real world 3d meshes is that
c The Eurographics Association 2008.
Cignoni et al. / MeshLab 135
c The Eurographics Association 2008.
136 Cignoni et al. / MeshLab
Figure 8: Some of the many inspection tools inside meshlab. On the left the mesh is transparently rendered with a color
depending on the surface curvature; on the right, self intersecting face are automatically detected.
(gargoyle.u3d)
Figure 9: MeshLab can export meshes in the U3D format. Meshes in this format can easily included in PDF files using
pdfLaTeX. Acrobat Reader supports the interactive viewing of these objects; click on the above picture to interactively rotate
and zoom the Gargoyle.
c The Eurographics Association 2008.