Skip to content

Release v3.2.0.29

Latest

Choose a tag to compare

@github-actions github-actions released this 15 Nov 10:23
df34d41

Autogenerated patch release v3.2.0.29
df34d41

OS Dev
Windows x64 (Visual Studio 2019) zip / pdb
Windows x64 (Visual Studio 2022) zip / pdb
Windows x64 (Visual Studio 2026) zip / pdb
Windows arm64 (Visual Studio 2026) zip / pdb
Windows x64 (clang-cl, Release only) zip / pdb
Windows arm64 (clang-cl, Release only) zip / pdb
Ubuntu 22 LTS x64 deb
Ubuntu 22 LTS arm64 deb
Ubuntu 24 LTS x64 deb
Ubuntu 24 LTS arm64 deb
Ubuntu 26 LTS x64 deb
Ubuntu 26 LTS arm64 deb
Linux vcpkg (glibc 2.28) x64 tar.xz
Linux vcpkg (glibc 2.28) arm64 tar.xz
macOS x64 (Intel) x64 pkg
macOS Arm (Apple Silicon) arm64 pkg
Emscripten multi-thread (web environment) zip
Emscripten single-thread (web environment) zip
Emscripten multi-thread Wasm64 (web environment) zip

What's Changed

API:

  • AABBTree from TriMesh: build the tree directly from a triangle soup with an optional region.
  • SaveSettings::solidColor is saved in OBJ (Kd) and binary STL (COLOR=), and loaded back from STL.
  • ImGui::Palette can hide the unit suffix of range limits, for palettes over unitless values such as curvature.

Meshes:

  • Decimation: touchBdVerts = false really keeps boundary vertices in place (including remesh with frozenBoundary, and in parallel decimation), and the tiny-edge fallback respects fixed vertices and the edges allowed to collapse.
  • CUDA: FastWindingNumber gave wrong results in every chunk after the first when the input was split by the memory limit; getCudaAvailableMemory no longer underflows when less than 128 MB is free.

Performance:

  • AABB tree build is 29-61% faster on one thread on every platform (bucket splits, block quickselect, SIMD on x64, Arm and wasm, read-ahead of the triangle walk), building exactly the same tree.
  • Boolean of a mesh without a cached tree builds a temporary tree of only the faces near the other mesh: up to 2x faster when a small tool cuts a big model.
  • MeshTopology::deleteFaces visits only the affected elements when few faces are deleted, which speeds up Boolean on big meshes.
  • Fewer heap allocations in Boolean and distance functions; half-edge records aligned to 32 bytes.

Python:

  • Fixed a crash on Python 3.8-3.11 with the Linux wheels: constructors, attribute and item assignments lost a reference to None until the process aborted with "none_dealloc".

Platforms and packages:

  • NuGet package published via Trusted Publishing.
  • Rust: build.rs copies the libraries next to executables with Cargo 1.100.
  • MSVC arm64: Box::include is no longer auto-vectorized into NaN-propagating fmin/fmax.
  • Web: fixed a possible deadlock of the command loop.

Documentation:

  • Rust and Java API reference is generated from the bindings sources.

Other:

  • Small improvements and bugfixes.

Commit: df34d41

Full Changelog: v3.2.0.3...v3.2.0.29