MeshLab

Last updated
MeshLab
Developer(s) ISTI - CNR
Stable release
2022.02 / February 28, 2022;19 months ago (2022-02-28) [1]
Preview release
Repository
Written in C++, JavaScript
Operating system Cross-platform
Type Graphics software
License GPL
Website www.meshlab.net
www.meshlabjs.net

MeshLab is a 3D mesh processing software system that is oriented to the management and processing of unstructured large meshes and provides a set of tools for editing, cleaning, healing, inspecting, rendering, and converting these kinds of meshes. MeshLab is free and open-source software, subject to the requirements of the GNU General Public License (GPL), version 2 or later, and is used as both a complete package and a library powering other software. It is well known in the more technical fields of 3D development and data handling.

Contents

Overview

MeshLab is developed by the ISTI - CNR research center; initially MeshLab was created as a course assignment at the University of Pisa in late 2005. It is a general-purpose system aimed at the processing of the typical not-so-small unstructured 3D models that arise in the 3D scanning pipeline.

The automatic mesh cleaning filters includes removal of duplicated, unreferenced vertices, non-manifold edges, vertices, and null faces. Remeshing tools support high quality simplification based on quadric error measure, various kinds of subdivision surfaces, and two surface reconstruction algorithms from point clouds based on the ball-pivoting technique and on the Poisson surface reconstruction approach. For the removal of noise, usually present in acquired surfaces, MeshLab supports various kinds of smoothing filters and tools for curvature analysis and visualization.

It includes a tool for the registration of multiple range maps based on the iterative closest point algorithm. MeshLab also includes an interactive direct paint-on-mesh system that allows users to interactively change the color of a mesh, to define selections and to directly smooth out noise and small features.

MeshLab is available for most platforms, including Linux, Mac OS X, Windows and, with reduced functionality, on Android and iOS and even as a pure client-side JavaScript application called MeshLabJS. The system supports input/output in the following formats: PLY, STL, OFF, OBJ, 3DS, VRML 2.0, X3D and COLLADA. MeshLab can also import point clouds reconstructed using Photosynth.

MeshLab is used in various academic and research contexts, like microbiology, [2] cultural heritage, [3] surface reconstruction, [4] paleontology, [5] for rapid prototyping in orthopedic surgery, [6] in orthodontics, [7] and desktop manufacturing. [8]

Additional images

See also

Related Research Articles

<span class="mw-page-title-main">Point cloud</span> Set of data points in three-dimensional space

A point cloud is a discrete set of data points in space. The points may represent a 3D shape or object. Each point position has its set of Cartesian coordinates. Point clouds are generally produced by 3D scanners or by photogrammetry software, which measure many points on the external surfaces of objects around them. As the output of 3D scanning processes, point clouds are used for many purposes, including to create 3D computer-aided design (CAD) models for manufactured parts, for metrology and quality inspection, and for a multitude of visualizing, animating, rendering, and mass customization applications.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

<span class="mw-page-title-main">Volume rendering</span> Representing a 3D-modeled object or dataset as a 2D projection

In scientific visualization and computer graphics, volume rendering is a set of techniques used to display a 2D projection of a 3D discretely sampled data set, typically a 3D scalar field.

In the field of 3D computer graphics, a subdivision surface is a curved surface represented by the specification of a coarser polygon mesh and produced by a recursive algorithmic method. The curved surface, the underlying inner mesh, can be calculated from the coarse mesh, known as the control cage or outer mesh, as the functional limit of an iterative process of subdividing each polygonal face into smaller faces that better approximate the final underlying curved surface. Less commonly, a simple algorithm is used to add geometry to a mesh by subdividing the faces into smaller ones without changing the overall shape or volume.

<span class="mw-page-title-main">Marching cubes</span> Computer graphics algorithm

Marching cubes is a computer graphics algorithm, published in the 1987 SIGGRAPH proceedings by Lorensen and Cline, for extracting a polygonal mesh of an isosurface from a three-dimensional discrete scalar field. The applications of this algorithm are mainly concerned with medical visualizations such as CT and MRI scan data images, and special effects or 3-D modelling with what is usually called metaballs or other metasurfaces. The marching cubes algorithm is meant to be used for 3-D; the 2-D version of this algorithm is called the marching squares algorithm.

In 3D computer graphics, polygonal modeling is an approach for modeling objects by representing or approximating their surfaces using polygon meshes. Polygonal modeling is well suited to scanline rendering and is therefore the method of choice for real-time computer graphics. Alternate methods of representing 3D objects include NURBS surfaces, subdivision surfaces, and equation-based representations used in ray tracers.

<span class="mw-page-title-main">VTK</span>

The Visualization Toolkit (VTK) is an open-source software system for 3D computer graphics, image processing and scientific visualization.

Parasolid is a geometric modeling kernel originally developed by Shape Data Limited, now owned and developed by Siemens Digital Industries Software. It can be licensed by other companies for use in their 3D computer graphics software products.

<span class="mw-page-title-main">Open Cascade Technology</span> Open-source 3D modelling software

Open Cascade Technology (OCCT), formerly called CAS.CADE, is an open-source software development platform for 3D CAD, CAM, CAE, etc. that is developed and supported by Open Cascade SAS company.

<span class="mw-page-title-main">Mesh generation</span> Subdivision of space into cells

Mesh generation is the practice of creating a mesh, a subdivision of a continuous geometric space into discrete geometric and topological cells. Often these cells form a simplicial complex. Usually the cells partition the geometric input domain. Mesh cells are used as discrete local approximations of the larger domain. Meshes are created by computer algorithms, often with human guidance through a GUI, depending on the complexity of the domain and the type of mesh desired. A typical goal is to create a mesh that accurately captures the input domain geometry, with high-quality (well-shaped) cells, and without so many cells as to make subsequent calculations intractable. The mesh should also be fine in areas that are important for the subsequent calculations.

PLY is a computer file format known as the Polygon File Format or the Stanford Triangle Format. It was principally designed to store three-dimensional data from 3D scanners. The data storage format supports a relatively simple description of a single object as a list of nominally flat polygons. A variety of properties can be stored, including color and transparency, surface normals, texture coordinates and data confidence values. The format permits one to have different properties for the front and back of a polygon.

<span class="mw-page-title-main">VisIt</span>

VisIt is an open-source interactive parallel visualization and graphical analysis tool for viewing scientific data. It can be used to visualize scalar and vector fields defined on 2D and 3D structured and unstructured meshes. VisIt was designed to handle big data set sizes in the terascale range and small data sets in the kilobyte range.

<span class="mw-page-title-main">WebGL</span> JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics, image processing, and effects in the HTML canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

<span class="mw-page-title-main">3D modeling</span> Form of computer-aided engineering

In 3D computer graphics, 3D modeling is the process of developing a mathematical coordinate-based representation of any surface of an object in three dimensions via specialized software by manipulating edges, vertices, and polygons in a simulated 3D space.

<span class="mw-page-title-main">Point Cloud Library</span>

The Point Cloud Library (PCL) is an open-source library of algorithms for point cloud processing tasks and 3D geometry processing, such as occur in three-dimensional computer vision. The library contains algorithms for filtering, feature estimation, surface reconstruction, 3D registration, model fitting, object recognition, and segmentation. Each module is implemented as a smaller library that can be compiled separately. PCL has its own data format for storing point clouds - PCD, but also allows datasets to be loaded and saved in many other formats. It is written in C++ and released under the BSD license.

Flow Science, Inc. is a developer of software for computational fluid dynamics, also known as CFD, a branch of fluid mechanics that uses numerical methods and algorithms to solve and analyze problems that involve fluid flows.

<span class="mw-page-title-main">CloudCompare</span>

CloudCompare is a 3D point cloud processing software. It can also handle triangular meshes and calibrated images.

<span class="mw-page-title-main">C3D Toolkit</span> Geometric modelling kernel

C3D Toolkit is a proprietary cross-platform geometric modeling kit software developed by Russian by C3D Labs. It's written in C++. It can be licensed by other companies for use in their 3D computer graphics software products. The most widely known software in which C3D Toolkit is typically used are computer aided design (CAD), computer-aided manufacturing (CAM), and computer-aided engineering (CAE) systems.

References

  1. "MeshLab 2022.02 release notes". Official GitHub repository. 2022-02-28.
  2. Berejnov, V.V. (2009) [Submitted on 13 Apr 2009]. "Rapid and Inexpensive Reconstruction of 3D Structures for Micro-Objects Using Common Optical Microscopy" (PDF). arXiv: 0904.2024 . Bibcode:2009arXiv0904.2024B.
  3. Remondino, F.; Menna, F. (2008). "Image-based surface measurement for close-range heritage documentation" (PDF) (PDF). The International Archives of the Photogrammetry. Retrieved 28 April 2017.
  4. Xu, S.; Georghiades, A.; Rushmeier, H.; Dorsey, J. (2006). "Image guided geometry inference". Third International Symposium on 3D Data Processing, Visualization, and Transmission (3DPVT'06) (PDF). 3D PVT Symposium. pp. 310–317. doi:10.1109/3DPVT.2006.81. ISBN   0-7695-2825-2. S2CID   2158034.
  5. Abel, R. L.; et al. (Aug 2011). "Digital preservation and dissemination of ancient lithic technology with modern micro-CT". Computers & Graphics (PDF). Elsevier. 35 (4): 878–884. doi:10.1016/j.cag.2011.03.001.
  6. Frame, M.; Huntley, J. S. (2012). "Rapid Prototyping in Orthopaedic Surgery: A User's Guide". The Scientific World Journal. 2012: 1–7. doi: 10.1100/2012/838575 . PMC   3361341 . PMID   22666160.
  7. Harjunmaa, E.; Kallonen, A.; Voutilainen, M.; et al. (15 March 2012). "On the difficulty of increasing dental complexity". Nature. 483 (7389): 324–327. Bibcode:2012Natur.483..324H. doi:10.1038/nature10876. PMID   22398444. S2CID   4368503.
  8. "Desktop Manufacturing". Make. Jan 2010. p. 73.
Listen to this article (3 minutes)
Sound-icon.svg
This audio file was created from a revision of this article dated 30 September 2023 (2023-09-30), and does not reflect subsequent edits.