MeshLib Documentation
Loading...
Searching...
No Matches
Third-Party Dependencies

List of dependencies

MeshLib is modular by design. Our goal is to provide only what you need, so you can avoid what you do not and keep your project lightweight. The only mandatory module is MRMesh. All others are optional.

Below is a summary of all modules and their dependencies, so you can see what each requires before including it in your build

Module Task Required modules Optional?
MRMesh Core geometry - No, Mandatory
MRIOExtras Input/Output MRMesh Yes
MRSymbolMesh Text-to-mesh MRMesh Yes
MRPython Python MRMesh Yes
MRVoxels Volumetric MRMesh Yes
MRCuda GPU acceleration MRMesh and MRVoxels Yes
MRViewer Rendering and user interface MRMesh, MRVoxels, MRSymbolMesh and MRIOExtras Yes

MRMesh

MRMesh is our core module, handling geometry operations. Since it is mandatory, its dependencies are required for every build.

Name Description License
Boost C++ Libraries - provides free peer-reviewed portable C++ source libraries Boost Software License
Eigen a C++ template library for linear algebra MPL2
spdlog very fast, header-only/compiled, C++ logging library MIT
fmt a library providing a fast and safe alternative to C stdio and C++ iostreams MIT
gtest Google Test - C++ testing and mocking framework BSD-3-Clause
tiff provides support for the Tag Image File Format (TIFF) MIT
jsoncpp manipulating JSON values, including serialization and deserialization MIT
libzip libzip - reading, creating, and modifying zip archives BSD-3-Clause
zlib A Massively Spiffy Yet Delicately Unobtrusive Compression Library zlib
minply a simple and fast parser for PLY files MIT
oneTBB simplifies the work of adding parallelism to complex applications Apache-2.0
phmap fast and memory-friendly hashmap and btree containers Apache 2.0
expected implementation of std::expected with functional-style extensions CC0-1.0
Mbed TLS a C library that implements cryptographic primitives Apache-2.0 or GPL-2.0-or-later

MRIOExtras

MRIOExtras adds support for the input and output of additional file formats (e.g., glTF, STEP, PDF). It requires MRMesh and includes:

Name Description License
libHaru free, cross platform, open source library for generating PDF files zlib
libjpeg-turbo is a JPEG image codec that uses SIMD instructions BSD-3-Clause, IJG (Independent JPEG Group)
libpng library for use in applications that read, create, and manipulate PNG libpng2
opencascade open-source full-scale 3D geometry library LGPL-2.1
tinygltf is a header only C++11 glTF 2.0 MIT
OpenCTM the Open Compressed Triangle Mesh file format zlib/libpng
LAZperf alternative LAZ implementation for C++ and JavaScript Apache 2.0
libe57format library for reading & writing the E57 file format Boost Software License
tinyxml2 an efficient, C++ XML parser zlib

MRSymbolMesh

MRSymbolMesh is our module responsible for text-to-mesh conversion operations. As such, it requires MRMesh plus:

Name Description License
FreeType a freely available software library to render fonts GPL-2.0, FTL(BSD like)

MRPython

MRPython enables Python bindings and embedded Python scripting for MeshLib. It depends on MRMesh and:

Name Description License
python3 is a high-level, general-purpose programming language. PSF
pybind11 a library that exposes C++ types in Python and vice versa BSD-3-Clause

MRVoxels

MRVoxels provides functionality for volumetric operations. It depends on MRMesh plus:

Name Description License
OpenVDB efficient manipulation of sparse, time-varying, volumetric data discretized MPL2
gdcm C++ library dedicated to reading/parsing and writing DICOM medical files BSD

MRCuda

MRCuda enables GPU-accelerated algorithms using NVIDIA CUDA. Here, you need MRMesh, MRVoxels, and:

Name Description License
CUDA GPU-accelerated libraries, debugging and optimization tools, a C/C++ compiler, and a runtime library CUDA License

MRViewer

MRViewer is MeshLib’s module for rendering and UI. It handles window creation, input, and GUI elements. It needs MRMesh, MRVoxels, MRSymbolMesh, MRIOExtras, and:

Name Description License
glad GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs MIT
GLFW library for OpenGL, OpenGL ES and Vulkan development on the desktop zlib
Dear ImGui a bloat-free graphical user interface library for C++ MIT
Curl for People Curl for People - a simple wrapper around libcurl MIT
clip cross-platform C++ library to copy/paste clipboard content MIT
hidapi is a Simple library for communicating with USB and Bluetooth HID devices on Linux, Mac, and Windows HIDAPI, BSD-3-Clause, GPL-3.0
Fontawesome is the Internet's icon library and toolkit, used by millions of designers, developers, and content creators Fontawesome License
NotoSans is a global font collection for writing in all modern and ancient languages OPEN FONT