Our Innovative Algorithms

Mesh Healing

Mesh healing is a critical process to prepare mesh for further use in the 3D pipeline, ensuring that mesh models are watertight, error-free, and suitable for applications such as s...

Discover more

Mesh Offsetting

Mesh offsetting enables the precise expansion or contraction of a 3D mesh surface, crucial for applications requiring exact wall thickness and custom surface control, like 3D print...

Discover more

Collision Detection

Collision detection serves as a fundamental concept in computational geometry. In this capacity, it focuses on determining whether two or more objects intersect. Understandably, be...

Discover more

File Formats

With MeshLib’s flexible file format support, users can seamlessly integrate 3D models into various workflows for further processing and analysis.

Discover more

3D Boolean

3D boolean operations are essential for creating complex shapes and forms that would be difficult or time-consuming to model from scratch using traditional modeling techniques.

Discover more

Mesh Boolean

The term ‘Mesh Boolean operations’ refers to a particular set of manipulations that professionals apply to pairs of versatile 3D objects for the purpose of reshaping their geometri...

Discover more

Point Cloud to Mesh

Point cloud triangulation is the process of triangulating a point cloud— a set of 3D points captured by LiDAR or other scanning technologies—into a continuous triangular mesh.

Discover more

Mesh Simplification

Mesh simplification (aka mesh decimation) is, for all intents and purposes, a technique aimed at reducing the number of triangles in 3D models.

Discover more

Mesh Triangulation

Mesh triangulation is a technique that swiftly converts point clouds into triangle meshes. In many cases, this process relies on pre-existing vertex normals to guide processes.

Discover more

CT Reconstruction

CT 3D reconstruction is the process of converting a series of 2D CT scans captured from different angles into 3D volumes. In practice, it suggests combining multiple X-ray images t...

Discover more

ICP: Iterative Closest Point

Iterative Closest Point (ICP) is, effectively, an algorithm that aligns two given 3D datasets. It takes a source object, i.e., a point cloud or a mesh, and estimates a rigid transf...

Discover more

3D Viewer

3D Viewer SDK is MeshLib’s plug-in rendering and UI layer. Written entirely in modern C++, this compact Viewer engine opens a window, draws your geometry, and presents a ribbon-sty...

Discover more

Mesh Smoothing

Mesh smoothing refers to a group of algorithms, some iterative and some none-iterative, designed to reposition vertices in a 3D model to reduce noise and improve surface quality. W...

Discover more

3D Volume Rendering

Volume rendering is a potent technique for visualizing volumetric data—that obtained from scanning—by mapping each voxel’s density to specific colors and opacities. In this fashion...

Discover more

Mesh to SDF

Signed Distance Fields (SDFs or distance volumes) are scalar fields most often stored as 3D voxel grids. Each voxel here records the shortest or unsigned or signed distance to a ta...

Discover more

Mesh Intersection

Mesh intersection computes the exact common volume shared by two polygonal models. Its potential, is applied to 3D data processing, computational geometry, and computer graphics. N...

Discover more

Fill Holes in Meshes

Filling holes in a mesh is a function that lets you correct topological defects, predictably known as holes. These defects are essentially missing regions where a continuous surfac...

Discover more

Three main 3D data representations

Yellow 3D scan of a dinosaur head rendered as a manifold triangle mesh
Mesh - triangles assembled in manifold surfaces
Voxels Iso Surface Features (
Voxels (drawn as Iso Surface) – 3D raster image
point cloud processing
Point cloud -unordered set of 3D points

Mesh algorithms

Collisions

Finds colliding faces of two meshes in realtime.

Two intersecting torus meshes with the red collision curve marked

Distances

Finds minimal signed/unsigned distance between two meshes in realtime.

distance emasure meshlib features
Two interlocking ring meshes with a signed distance value measured between them

Free form deformation

Applies free form transformation to mesh or finds best free form transformation to fit given points. Grey points – reference grid of free form transform (resolution is customizable)

Free Form Deformation Before meshlib features
Before
Freeform Deformation After meshlib features
After

Laplacian deformation

It modifies a surface region following the movement of some fixed points in this region, and preserving curvature in other points Read area – deformed area (a few points were fixed on forehead)

Laplacian Deformation Before meshlib features
Before
Laplacian Deformation After meshlib features
After

Fill/Stitch Hole(s)

Triangulates a hole in mesh, or stitch two holes with a tunnel. Different metrics could be used for triangulation.

Crocodile mesh with a hole outlined in red on its back before repair
Before
fill holes after Meshlib features
After
Stitch Holes Before meshlib features
Before
Crocodile mesh with the hole stitched and closed after repair
After

Mesh Decimation

Decimation or simplification is reached by reducing the number of triangles, while preserving the overall initial shape and most prominent features.

MeshLib contains the fastest and best quality implementation among other open-source libraries. Also MeshLib has parallel decimation for gigantic (~10M triangles) meshes.

Dinosaur head scan with a dense noisy triangle mesh before decimation
Before
Dinosaur head mesh reduced to larger triangles after decimation
After

Shortest Geodesic
(surface) path building

The task is to find the shortest path between two points along the surface. The implementation is very fast and robust allowing its application in real-time editing:

Iterative Closest Points

ICP is for finding the best aligning transformation (from some transformation group, e.g. the group of all rigid transformations) for two meshes.

Two separated tooth fragments before ICP alignment
Before
Aligned tooth fragments forming one continuous mesh after ICP
After
Detached tooth chip beside the main mesh before ICP alignment
Before
Tooth chip aligned onto the main mesh after ICP, surfaces in two colors
After

Tunnels fixing

MeshLib can detect and fix tunnels on surface. Here on the left a thin tunnel is detected, a cut is made, each side of which is filled with a disc-like patch to get a topological sphere on the right:

Torus mesh with a thin tunnel pinched at the top before fixing
Topological torus
Torus mesh after the thin tunnel is cut and patched with discs
Topological sphere

3D Boolean Operations

MeshInspector contains two implementations of 3D Boolean operations :

  • Voxel-based, that first converts closed meshes in 3D raster image (voxels), then makes the operations, and then converts it back. Any self-intersections are supported in input meshes, and are automatically fixed in output.
  • Direct mesh-based operations , which can work even with not-closed meshes and supports various input degeneracies. The main advantage over voxel-based mode is higher performance and extreme precision not limited by the size of one voxel.
Pink dinosaur mesh intersecting a yellow-green sphere
Sphere and Dino
Translucent sphere with the dinosaur mesh visible inside it
Sphere – Dino (transparent)
The same translucent sphere seen from the other side of the dinosaur
Sphere – Dino form other side

Partial Offset

Offset selected part of mesh only and produce single component mesh as result.

Scanned figure model with red highlighted areas chosen for offset
Red faces are selected
Scanned figure after offsetting the highlighted areas into one solid
Mesh with offset of selected parts

Segmentation by curvature

The task is to select a mesh region, separated from other mesh parts by a high curvature boundary (or some other metrics, including custom ones), given 2-3 points on the boundary.

The picture demonstrates segmentation of crests.

Each one is segmented by two points picked on its base

Dragon head mesh with orange crest spikes segmented by curvature
MeshInspector Distance Compare panel showing deviation colors on a crank model

Compare with Precision

Effortlessly compare two models side by side, meticulously examining the surface distances. This innovative feature allows you to inspect the quality of your printed 3D model against the original CAD design. Identify even the slightest deviations and ensure your project meets the most stringent standards.

Distance map algorithms

Distance Map from mesh

Depth map from some plane to mesh.Could be visualized in grey-scale image:– Black pixels of distance map – farthest– White pixels – closest

Yellow crocodile mesh used as the source for a depth map
Before
Greyscale distance map of the crocodile with the nearest points white
After

Distance Map from contours

It presents field of distances in contours plane from each pixel, to contours closest point.Can be signed or unsigned. Zero value corresponds to input contour points

Closed crocodile outline drawn as the input contour on a dark plane
Input contour
Distance field around the crocodile outline rendered in greyscale
Signed distance map.Inner points have negative value white – the most “inner” point
Signed distance map of the same contour with the inner area white
Unsigned distance map. Inner points have positive value white – the most “inner” point

Distance Map iso-lines

Finds iso-line contour on distance map of any kind.

Mesh – distance map visualization
Red line – input contour
Blue lines – iso-lines

Yellow distance map surface with input contour and iso-lines drawn as dashes

Distance Map merge

Merge min, max or subtraction of distance maps

First distance map surface with a small dashed closed contour
Distance map A
Second distance map surface with a large curved contour drawn on it
Distance map B
Merged distance map keeping the intersection as a small closed contour
Merge Maximum (intersection)
Merged distance map keeping the union as one wide contour
Merge Minimum (union)

Voxel-based algorithms

Voxels

Voxel object presents 3D grid in space (visualized via Iso surface). The Picture demonstrates dense voxels and its slice.

Yellow skull mesh beside a slice window showing its voxel cross-section

Semi-automatic segmentation

The picture demonstrates separation of tooth from the skull voxels.

Skull voxels with one tooth selected in color and a slice window

CT-Reconstruction algorithm

CT-Reconstruction algorithm implementation allows you to obtain dense volumes (voxel data) from a number of radiograph images. Voxel data generated by CT-Reconstruction

Skull voxel volume reconstructed from radiographs with an axial slice

Point cloud algorithms

Points Sampling

Sampling – algorithm for taking representative subset of points. Uniform and grid sampling are implemented.

Dense red crocodile point cloud with every captured point shown
All points
Crocodile point cloud after uniform sampling keeps fewer red points
Sampled points

Points Triangulation

Creating mesh from point cloud

Yellow point cloud of a horned ram before triangulation
Ram point cloud converted into a triangulated mesh with visible edges

Other features

MeshInspector Scene panel listing scene objects in a hierarchy tree
3D Viewer: Hierarchical object model for scene description
MeshInspector toolbar menu with options to rename, reorder or remove objects
3D Viewer: History stack
MeshInspector View menu listing viewport layouts and camera presets
3D Viewer: Feature search
Two orthographic viewports showing the same model with axes
3D Viewer: Customizable viewports
Alligator head mesh shaded with a green to orange gradient
Visualization Features
MeshInspector Python console running a script beside a model view
Python scripting

Join MeshLib Dev Community!

Book a Call