Releases: adobe/lagrange
Releases · adobe/lagrange
Lagrange Release v6.39.0
Infrastructure
- 🏗️ Compilation fixes for Xcode 26
- 🏗️ Fix CMake sanitizer setup for MSVC
- 📌 Update earcut.hpp dependency to
f36ced7 - 📌 Update cpptrace to 1.0.4
- 📌 🐛 Update PoissonRecon dependency to fix a memory allocation bug
Core Module
- 🎨 Add overload to
SurfaceMesh::delete_attributeto accept id as input
IO Module
- 🐛 Throw error when saving float/double texture to glTF file
- 📖 Add explicit warning when loading glTF without explicit stitching behavior
- 🎨 Add new
LoadOptions::quietto silence IO related log messages - 🎨 Update STL mesh load to not stitch vertices by default for consistency with other formats
Solver Module
- ✨ Add support for Spectra-based sparse eigenvalue solver
[generalized_]selfadjoint_eigen_[largest|smallest]()in C++lagrange.solver.eigsh()in Python (follows a similar API toscipy.linalg.eigsh())
Texproc Module
- 🐛 Fix out-of-bound access in rasterization code
- 🐛 Add checks to ensure number of channels consistency
- 🐍 Update
texture_from_multiview.pyto accept list of render images + ensure output uses .exr - 🐛 Fix vertical flip in
geodesic_dilationcode introduced in v6.38.0 - 🐛 Fix image transpose issue in Python bindings
- 🐍 Add
geodesic_dilation.pydemo
Geodesic Module
- ✨ New geodesic module to compute single-source and point-to-point geodesic distance
- Added
GeodesicEngine[...]class for repeated computation - Choice of algorithm between DGPC, MMP and Heat
- Two methods available:
single_source_geodesic()andpoint_to_point_geodesic()
- Added
Polyddg Module
✨ New polyddg module that implements most of the operators from this paper:
De Goes, F., Butts, A., & Desbrun, M. (2020).
Discrete differential operators on polygonal meshes.
ACM Transactions on Graphics (TOG), 39(4), 110-1.
Documentation
- 📖 Docstring updates for scene module
- 📖 Update
voxelize_meshexample code to read/write .vdb files - 📖 Fixed typos and grammar in comments with Copilot
Python Bindings
- 📌 Updated scikit-build core to 0.11.6
- 📌 Updated sphinx and autoapi
- 🏗️ Set upper-bound to Python <3.14 due to nanobind uncertainty
- 📖 Fixed generated Sphinx documentation due to refactored stub files
Full Changelog: v6.38.0...v6.39.0
Lagrange Release v6.38.0
Infrastructure
- 🏗️ New CMake option
LAGRANGE_PROPAGATE_WARNINGS - 📌 Update Catch2 to v3.10.0
- 📌 Update WindingNumber to v0.3.15
- 🏗 Enable
\Z7flag in MetaBuild for debug build
Core module
- 🏗️ Replace
M_PIwithlagrange::internal::pi - ✨ Add
compute_facet_circumcenter - ✨ Add
compute_facet_vector_area - 🐍 Add
SurfaceMesh.edgesin python binding - 🎨 Update
point_triangle_squared_distanceandpoint_segment_squared_distanceto be dimension independent
IO module
- 🐛 Bug fix in directory creation when saving obj file
Texproc module
- 🐛 Add check for flipped UV triangles
- 🗑️ Cleanup geodesic dilation code
BVH module
- 🎨 Refactor AABB as a stand-alone class
- 🎨 Add support for
TriangleAABBTree - 🎨 Update
EdgeAABBTree - 🎨 Add python binding for
TriangeAABBTreeandEdgeAABBTree
Documentation and other updates
- 📌 Update Doxygen and CSS version
- 📌 Update website dependency
- 💄 Update code format for the entire repo
- 📖 Improve texproc documentation
- 🏗️ Add explicit ref to Doxygen comments
- 🏗️ Remove doxygen autolink
- 📖 Update python doc strings
- 🐛 Fix python stub generation
Lagrange Release v6.37.0
Infrastructure
- 🏗️Improved DLL copies with CMake. This fixes some Jenkins failure cases.
- 🏗️Improved code-coverage.cmake. Prevents overwriting job pools configurations for downstream projects, improves cross-platform support, and adds configuration options.
- 🏗️Run patchelf on downloaded MKL to prevent linking issues.
- 🐛Fixed ODR issues.
- 📌Updated MshIO to v0.1.0
- 📌Updated miniz from 2.2.0 to 3.0.2
Core Module
- 🎨Improved stability in
remove_duplicate_vertices(), it now keeps vertices order if possible
Python Bindings
- 🏗️Moved all nanobind includes to a single file
<lagrange/python/binding.h>to avoid potential ODR violations. - 📖Updated
pyproject.tomlto haveurls.documentationandurls.repository - 📌Updated nanobind to v2.9.2. This adds support for in-place updates to dicts, lists, etc., such as
my_dict["key"] += 1
Scene Module
- 🐛To fix a mutable element issue in python bindings, changed Scene types from
std::vector<T>tolagrange::SafeVector<T>which is an alias forstd::vector<std::shared_ptr<T>>when compiled for python bindingsstd::vector<T>otherwise, unchanged from before
- 🎨Updated
Scene::far_planeto be optional - ✨Added camera matrix utilities in
<lagrange/scene/scene_utils.h>Eigen::Affine3f camera_view_transform(const Camera& camera, const Eigen::Affine3f& world_from_local)Eigen::Projective3f camera_projection_transform(const Camera& camera)
Solver Module
- ✨New
solvermodule! It manages dependencies across platforms and provides aliases for solver wrappers. Currently contains<lagrange/solver/DirectSolver.h>
Texture Signal Processing
- ✨New
texprocmodule! It provides texture-space operations such as filtering (smoothing, sharpening), stitching, compositing.
Lagrange Release v6.36.0
Infrastructure
- 🏗️ Add export macros for filtering module
- 🏗️ Minor CMake cleanups
- 📌 Update cpptrace to 1.0.3 and removed StackWalker
Core Module
- 🎨 New
is_closed()function for SurfaceMesh - 🎨 Support degenerate polygons in
compute_weighted_corner_normal() - 🎨 Support for indices shared across vertices in
weld_indexed_attribute() - 🐛 Fix out-of-bound bug in
split_edges()for 2D meshes
IO Module
- 🎨 Added
save_simple_scene_obj()- Supports multiple nodes and instances
- 🎨 Added
save_scene_obj()- Supports uvs, materials, and multiple nodes and instances
- 🏗️ Changed io tests to write to a designated output directory (build/tmp)
- 📖 Improved Python documentation in
ioandscene - 🎨 New
scene_convertexample
BVH Module
- ✨ New
weld_vertices()function for SurfaceMesh
Volume Module
- 🎨 Added
sample_vertex_normal()to sample normals from VDB grid
Lagrange Release v6.35.0
Infrastructure
- 🏗️ Add existence check in
get_data_pathandget_data_folderfor loading unit test assets
Core and IO modules
- 🎨 Indexed attribute support for saving in MSH format
- 🐛 Throw exception for unsupported format in
load_sceneandload_simple_scene - 🐛 Bug fix in
split_triangle - 🐛 Bug fix in
map_attribute - 🎨 Add centroid-fan support in
triangulate_polygonal_facets - ✨ New
split_facets_by_materialfunction
Filtering module
- 🎨 Support smoothing of multi-channel attribute
Lagrange Release v6.34.0
Infrastructure
- 🏗️Fixes for shared library mode
- 🏗️CMake fixes (openblas, special-assimp preset)
- 🏗️Wasm fixes, and enabled wasm unit tests
- 🏗️Open-source script fixes
- 🐍Python: Set OSX deployment target to 13
Lagrange Release v6.33.0
Infrastructure
- 📌 Updated pyproject.toml and script dependencies
- 📌 Updated vcpkg baseline to point to 3di registry
- 🏗 Fix compatibility with CMake 4
- 🏗 Fix MKL setup for open-source Python wheels
- 🏗 Compilation fixes for wasm support
Core module
- 🎨
compute_tangent_bitangent: option to keep existing tangent attribute - 🐛 Respect triangulate option in all lagrange::io function
- 🐛 Recreate output attribute when search yields a mismatch (e.g. wrong type or num channels)
- 🐛 Robustness improvement in
unflip_uv_triangle - 🐛 Bug fix in
compute_uv_distortion
Filtering module
- 🎨 Add option to smooth vertex positions directly
- Previously smoothing was done on normals, followed by a vertex fitting step
- ✨ Scalar attribute smoothing
- 🎨 Use non-MKL solver for open source python wheel
Lagrange Release v6.32.3
Trigger python wheel release.
Lagrange Release v6.32.2
New release to publish previously broken Python wheels.
Lagrange Release v6.32.1
Add missing filtering module in pyproject.toml