September 16, 2026

Release v3.1.4.297

Summary

Updates

This release adds alpha-shape reconstruction and shrinkwrap for point clouds, ships setup guides for C++, C, C# and Python that were rewritten and verified end to end, brings Windows on ARM support to every language binding, reworks MeshLib’s precise predicates on exact arithmetic, and splits the Python distribution into full and headless packages.

From points to surfaces: alpha shapes, shrinkwrap, cameras

The headline of this release is a set of tools for turning raw points into usable geometry:

  • findAlphaShape — recover a surface from a point cloud, with the level of detail controlled by a single radius parameter. The search was optimized hard: sorted and pruned neighbours, merged coincident points, and a fast in-sphere tester.
  • shrinkwrap — move every vertex of one mesh onto the closest point of another. The standard way to transfer a clean, controlled topology onto scanned or noisy geometry.
  • meshToDensePointCloud — turn a mesh into a point cloud dense enough that no ball of a given radius fits through it.
  • Camera-based reconstruction — build a mesh from the points a single camera sees, denoise its depth, and strip the stretched faces left by depth discontinuities.

Setup guides, rewritten and verified

Getting MeshLib into a project should not be the hard part. The C++, C, C# and Python setup guides were rewritten and then actually executed end to end on a clean machine before shipping. Each one now has a “Verify your installation” step and a Troubleshooting section, so a failed install tells you which step broke instead of leaving you guessing. New alongside them: a page on switching to MeshLib from other geometry libraries.

Windows on ARM, end to end

MeshLib now supports Windows on ARM in every language: C++ and C developer distributives, Python wheels, the C# NuGet payload, and MRCuda on CUDA 13.4. UI and 3D rendering on the platform are experimental so far.

Precise predicates, rebuilt ⚡

The geometric predicates that robust boolean and triangulation operations stand on were reworked from the ground up: the exact answer is computed first, and symbolic perturbation runs only on a genuine tie. A custom fixed-width big-integer arithmetic replaces Boost, making inCircle, inSphere, orient3d, segmentIntersectionOrder and the new ccwAroundLine both faster and correct on inputs where they used to overflow. If your pipeline works with extreme coordinate ranges, this is the release to re-test it on.

Meshes and performance

  • Boolean — cutMesh no longer counts intersected edges cumulatively per contour, which made large cuts very slow.
  • Planar triangulation and hole filling — fixed collinear and coincident contour points; fill plans and planar hole filling now work in mesh space.
  • rayBoxIntersect accelerated with SIMD for NEON and Wasm, with the SSE path optimized as well, plus faster Delone edge flips and sweep-line triangulation.
  • Smaller binaries across the .deb, vcpkg and Python packages.

Python and packaging

  • The Python distribution is now split into meshlib and meshlib-core. meshlib-core is headless — no viewer, no rendering — which is what you want for servers, containers and serverless functions.
  • Wheels for Windows arm64, and a new Ubuntu 26.04 build target built and tested with GCC 16.
  • OpenCTM updated to fix heap overflows on crafted .ctm files, reported by S9S. Applications that load untrusted .ctm input should update.

Downloads

Binaries for Windows x64 (Visual Studio 2019, 2022, 2026) and new: Windows arm64 (Visual Studio 2026), Ubuntu 22 / 24 / 26 LTS (x64 + arm64), Linux vcpkg (glibc 2.28, x64 + arm64), macOS Intel and Apple Silicon, and Emscripten (single-thread, multi-thread, multi-thread Wasm64).

Full changelog, including the new API, deprecations and every fix: GitHub release v3.1.4.297.