Skip to content

Lagrange Release v6.49.0

Latest

Choose a tag to compare

@qnzhou qnzhou released this 05 Oct 18:48
Immutable release. Only release title and notes can be modified.
c6f2517

Dependencies

  • πŸ“Œ Update earcut to f25bc76 for Delaunay refinement.
  • πŸ“Œ Update scikit-build-core to 1.1.0.

Build & CI

  • πŸ› Repair nightly sanitizer presets: Fix test environments and GPU-driver leak handling
  • πŸ—οΈ Halve open-source Unix CI to 9 jobs; improve compiler caching: Retain ASan / TSan coverage; bound heavy dependency compilation.
  • πŸ—οΈ Keep Python CI on 3.13; omit pyexr tooling on 3.14.

Python Bindings

  • 🐍 Expose chain_edges for directed and undirected edge chaining.
    • Required keyword-only directed flag selects the chaining mode.
    • Returns loops / chains; supports edge-index output and explicit loop closure.
  • 🐍 Expose extension build mode through lagrange._ndebug: Reports whether the extension was compiled with NDEBUG.

Core Module

  • 🎨 Add a Delaunay polygon-triangulation scheme: Lawson edge flips remove near-collinear earcut slivers; C++, Python, and JS/WASM.
  • πŸ› Fix std::format formatter detection for join views: Remove libc++ include-order dependence and support its formattability probes.

Remeshing Module

  • πŸ› Fix intermittent deadlock in remeshing_im: Synchronize optimizer requests to prevent lost condition-variable wakeups.

Occlusion Culling

  • πŸ”₯ Redesign remove_occluded around graded visibility measures.
    • Area-aware AO sampling and confidence-based early ray retirement.
    • Re-filter at a new threshold without retracing rays.
    • Breaking API changes for all facets functions; legacy instance functions deprecated.

Geodesic Module

  • ✨ Add flip-to-geodesic engine GeodesicEngineFlip. (#1898)
    • Approximate point-to-point distances and paths via edge flips.
    • C++ and Python; optional geodesic::geometrycentral component.
    • Configurable path shortening and Algorithm::FLIP.

IO & Mesh Repair

  • πŸ› Fix point-cloud loading with vertex stitching and attributes: Avoid assertion failures with stitch_vertices=true.
  • πŸ› Avoid sliver triangles when resolving T-junctions: Use split_triangle for triangle meshes; retain polygonal-input fallback.
  • ✨ Add PCD point-cloud read / write support.