Releases: adobe/lagrange
Releases · adobe/lagrange
Release list
Lagrange Release v6.30.0
Infrastructure
- 📌 Removed support for TBB 2020
- 📌 Updated imgui_fonts to support CPM
- 📌 Update nanoflann to 1.6.3
- 📌 Update PoissonRecon to 18.60
- 🏗️ Compile fix in
extract_boundary_loopsfor VS2019 (16.6.2) - 🐍 Replaced conda with uv for Python environment setup.
Core Module
- 🎨 Use Delaunay split for quad -> tri
- 🎨 New attribute cast policy. Avoid remapping
invalid<>()for non-indices - 🐛 Fixed barycentric coordinates in
split_edges - 🐛 Fix shared lib dynamic cast issue in legacy mesh
- 🐍 Python bindings for
extract_boundary_loops,extract_boundary_edges
IO Module
- 🐛 Improve STL parsing in
stitch_mesh
Poisson Module
- 🎨 Poisson:
poisson_recon.pyscript to enable PSR from command line - 🎨 Poisson: added support for
samples_per_node
Python Bindings
- 🎨🐍 Add
__repr__()method for easy inspection of scene elements in python
Lagrange Release v6.29.0
Infrastructure
- 🏗️ GCC 13 compilation fix
- 📌 Update ImGui
- 🏗️ Various warning fixes
Core module
- 🎨 Add
SurfaceMeshsupport forremove_degenerate_facetsandcompute_mesh_covariance - 🐍 Add python binding for
orient_outwardandthicken_and_close_mesh
Poisson module
- 🎨 Support colored point cloud
Lagrange Release v6.28.0
Miscellaneous
- 📌 Updated nanobind to 2.2.0
- 🐛 [IO] Fix indexing issue in FBX attribute loading
Python Bindings
- 🐍 Python nightly debug wheels (
pip install lagrange-nightly-debug -i <index>) - 🏗️ Python 3.13 support
- 🏗️ Fix Assimp symbol issue with debug wheels
- 🏗️ Updated cibuildwheel in GitHub Actions
- 🎨 Bindings for
SurfaceMesh::stripped_copy()asmesh.clone(strip=True) - 🎨 Added missing binding for
select_facets_in_frustum.
Core Module
- 🎨 Add option to reorient facets when applying negative transforms in
transform_mesh() - 🎨 Added SurfaceMesh support and Python bindings to the following functions:
select_facets_by_normal_similaritysplit_long_edgescompute_pointcloud_pcaorient_outward
Lagrange Release v6.27.0
Python Module
- 📌Updated numpy to
>=1.25 - 📌Removed colorama dependency from build requirements
Core Module
- ✨Added
SurfaceMesh::get_counterclockwise_corner_around_vertexandSurfaceMesh::get_clockwise_corner_around_vertex - 🎨Improved performance of
is_vertex_manifold - 🐛Fixed race condition in
resolve_nonmanifoldness - ✨Added optional FPE (floating point exception) support
- ✨Added SurfaceMesh support to
marching_triangles - ✨Added
isoline.hheader withtrim_by_isolineandextract_isoline
Poisson Module
- 🎨Faster multi-threaded mesh generation
- 📌Updated PoissonRecon dependency
Polyscope Viewer
- ✨Added polyscope mesh viewer.
mesh_viewerexecutable in the core module examples.
Lagrange Release v6.26.0
Infrastructure
- 🏗 Update CMake sanitizer script
- 🏗 Fix Xcode linker warning
Core Module
- 🎨 Add SurfaceMesh support for
resolve_nonmanifoldnessresolve_vertex_nonmanifoldnessremove_short_edgesthicken_and_close
- 🎨 Support integer attributes in
weld_indexed_attribute - 🐛 Fix tangent computation for non-manifold meshes
- 🎨 Spatially-coherent mesh reordering with
reorder_mesh(improves cache-friendliness)
IO Module
- 🎨 Enable FBX support in loading scene.
- 🎨 Add support for saving/loading scene to/from stream in C++
- 🐍 Add python binding
- 🐛 Support arbitrary vertex scalar type when loading ply format
Poisson Module 🎉
- ✨ Poisson Surface Reconstruction (new module!)
- Exposed options:
- Interpolation weight
- Confidence weight
- Dirichlet boundary
- Color interpolation
- Export sampling density
Volume Module
- 🎨 Add option to generate normal in
lagrange::volume::volume_to_meshandlagrange::volume::field_to_mesh_marching_cube
Python Module
- 📌 Update nanobind to v2.1.0
- 🏗 Fix stubgen for submodules and return types
- 🏗 Fix mypy warnings
- 📖 Fix python doc to avoid misinterpreting “@”
- 🐍 Fix memory bug in python binding of
SurfaceMesh.create_attribute - 🎨 Refactor and add literal support for
SurfaceMesh.create_attribute - 📖 Add
install.stripoption topyproject.toml
Lagrange Release v6.25.0
Infrastructure
- 🏗️ Cleaned up MSVC folders
Core Module
- 🎨 Added metadata helper methods to SurfaceMesh
auto id = mesh.create_metadata("metadata", "something");mesh.get_metadata(id) == "something";mesh.set_metadata(id, "東西");
- 🐍 And Python binding!
mesh.metadata["author"] = "🐶"assert mesh.metadata["author"] == "🐶"
UI Module
- 🐛 Fixed if-else event emitter logic due to EnTT update
Lagrange Release v6.24.0
Infrastructure
- 📌 Updated libigl
- 📌 Updated OpenSubdiv from 3.4.4 to 3.6.0
Core Module
remove_duplicate_vertices: Addedboundary_only optioncompute_vertex_valence: Addedinduced_by_attributeoption- Added public-facing
find_matching_attribute(s)functions - Topology/orientation:
- Added
is_orientedhelper function to check for consistent winding edges - Added
compute_vertex_is_manifoldandcompute_edge_is_orientedto compute per-element topology/orientation information
- Added
weld_indexed_attribute: Added epsilon tolerance optionsio::LoadOptions: Addedstitch_verticesoption (e.g. when loading glTF)
Python Module
- Improved python stub generation
Subdivision Module
- New
EdgeAdaptiverefinement option - Added
max_edge_lengthoption to control target edge length - Added a python script example and revamped C++ cli example
- Properly set sharp edge and sharp vertices in example programs
Lagrange Release v6.23.0
Infrastructure
- 📌 Update Spdlog to 1.14.1
- 📌 Update OpenSubdiv to 3.6.0
- 📌 Update Nanobind to 2.0.0
- 📌 Update Tracy to 0.10
- 📌 Enable Blosc/Zlib with OpenVDB (toplevel builds)
- 🏗 Wasm compilation fixes
Python Module
- 📌 Update Nanobind to 2.0 and stub support
- 📖 Support for lagrange.version
- 📖 Set line-length to 100 for ruff/black
- 🎨 Delete attribute by id
Lagrange Release v6.22.0
Infrastructure
- 🏗️ Escape space in paths when copying dll with CMake
- 🏗️ Download CPM with CMake at configuration time.
- 🏗️ Nightly build fixes
- 📌 Update EnTT to 3.13.2
- 📌 Update Nasoq to avoid compiler and address sanitizer warnings
Core module
- 🎨
SurfaceMeshsupport forselect_facets_in_frustum🎉 - 🎨 Add edge attribute support in
remap_vertices
IO module
- 🐛 Avoid PLY mesh loading failure due to narrowing type cast
- 🐛 Fix bug related to facet and corner normal when saving in OBJ format
- 🎨 Expose additional mesh load options in Python
Scene module
- 🎨 Add writable reference in simple scene in scene module
Python module
- 🐍 Add texture extraction script
Lagrange Release v6.21.0
Infrastructure
- 🏗️ CMake: Targets use
FILE_SETto install header files - 🏗️ CMake + MetaBuild: Export symbols when compiling as dll
- 🏗️ Support arm64 macOS in open-source CI
- 🐛 Fix for Apple clang 15.0.0
Dependencies
- 📌 Updated scikit-build-core to v0.8.2 (for python bindings)
- 📌 Updated tinygltf to v2.8.21
- 📌 Updated imgui to v1.90.4
Core Module
- 🎨 Updated
unify_index_bufferto retain isolated vertices - 🎨 Added static asserts to enforce correct SurfaceMesh and Attribute typing
- ✨ Added
cast_attribute - ✨ Added
compute_seam_edges- 🎨
mesh_subdivisionexample uses this to improve mesh subdivision
- 🎨
- ✨ Added
compute_greedy_coloring
Python bindings
- 🐍 Refactor
create_attributepython binding - 🐍 Added
cast_attributepython binding
Lagrange scene and IO
- 🐛 Allow obj loader to load mesh without facets
- 🎨 Added
scene::add<T>(…)methods - 🎨 Changed image datastructure
- 🐍 Improved scene python bindings
- 🐍 Added python bindings for
scene::Value
Lagrange python scripts
- 🐍 Lagrange python package now ships with commonly used scripts:
meshstat.pyCheck basic mesh statistics