- Open 1–8 meshes or a multi-layer MeshLab project.
- Compare meshes in a linked camera grid or a single overlay view.
- Normalize every Grid mesh independently for easier shape comparison.
- Run Distance to Reference and Double Layer analyses with color overlays.
- Choose the Reference mesh, assign uniform colors, and control layer visibility.
- Force double-sided rendering for open or inconsistently wound surfaces.
- Save reusable camera poses with tags and screenshots.
- Render comparison grids from the command line.
| Linked Grid | Overlay |
|---|---|
![]() |
![]() |
| Inspect each mesh in its own synchronized viewport. | Inspect all visible layers in one viewport. |
Open files from Finder, drag them into the window, or use Open in the
toolbar. Supported mesh formats are .obj, .ply, .stl, .off, and
embedded .glb.
# Open one or more meshes
open build/dist/meshcompare.app --args reference_gt.obj candidate.obj
# Open one MeshLab project
open build/dist/meshcompare.app --args comparison.mlpThe first mesh whose name contains gt becomes the initial Reference. If no
mesh matches, Mesh Compare uses the first imported mesh.
Requirements: CMake 3.18+, Qt 5.15, a C++ toolchain, and the platform OpenGL
SDK. MeshLab/VCGLib sources are vendored in third_party/.
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=/path/to/Qt/5.15
cmake --build build --target meshcompare --parallelThe macOS bundle is written to:
build/dist/meshcompare.app
Run the test suite with:
cmake -S . -B build -DBUILD_TESTING=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failureRender an .mlp project to a PNG without opening the application window:
build/dist/meshcompare.app/Contents/MacOS/meshcompare \
--render-grid comparison.mlp \
--output-dir ./renders \
--size 2048x1152 \
--coloring distanceUse meshcompare --help for camera, saved-pose, coloring, and output options.
Mesh Compare owns its workspace, UI, analysis, camera library, and diagnostics. The vendored MeshLab viewport engine is isolated behind a renderer adapter; the legacy MeshLab window, docks, filters, and editing tools are not packaged.
See docs/architecture.md for implementation details.
See LICENSE.txt.


