Releases: adobe/lagrange
Releases · adobe/lagrange
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
- 🎨
SurfaceMesh
support 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_SET
to 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_buffer
to retain isolated vertices - 🎨 Added static asserts to enforce correct SurfaceMesh and Attribute typing
- ✨ Added
cast_attribute
- ✨ Added
compute_seam_edges
- 🎨
mesh_subdivision
example uses this to improve mesh subdivision
- 🎨
- ✨ Added
compute_greedy_coloring
Python bindings
- 🐍 Refactor
create_attribute
python binding - 🐍 Added
cast_attribute
python 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.py
Check basic mesh statistics
Lagrange Release v6.20.1
Minor release to upload arm64 macOS wheels for Lagrange's Python bindings.
Lagrange Release v6.20.0
Infrastructure & Bugfixes
- 🚧 Fix nightly wheel version to include date
- 🚧 Fix timeout in GitHub actions CI
- 📖 Add related files in SurfaceMesh header
- 📖 Fix Doxygen grouping for core utilities functions
- 🐛 Fixed bug in
chain_edges
for complex edge networks
Python Bindings
- 🐍 Add missing binding for
compute_uv_distortion
- 🐍 Add missing binding for
AttributeShrinkPolicy
- 🐍 Add pythonic API for functions that take an option struct
- ✨ Relax
Attribute.data assignment
to also take python list - ✨ Relax
Attribute.insert_elements
argument to allow python list - 📖 Add missing docstrings for various types
- 📖 Add docstring for all utility and clean up functions docstrings
Core Module
- New
filter_attributes()
function andAttributeFilter
object - Possible filters:
included_attributes
(name or id)excluded_attributes
(name or id)included_usages
(bitfield)included_element_types
(bitfield)
lagrange::cast()
now supports aAttributeFilter
input filter- New
lagrange::scene::cast()
helper function
Scene and IO
- Added support for glTF-style scene extensions
- By default, extensions use a Json-like representation
- Optionally, use converters to load user types
Lagrange Release v6.19.0
Infrastructure
- Added CMake option to enable/disable threads with WASM
- Update StackWalker + sscache build
- Enable all modules in GitHub actions
- Fix Asan and Tsan issues in CI
- Enable core/io module without RTTI
- Updated Happly to compile without RTTI
Core module
- Bug fix in chain edges
- Bug fix in
combine_mesh()
on meshes withdimension != 3
transform_mesh()
now supports 2D mesheslagrange::invalid<T>()
now returnsinf
instead of max for floating point types- Added
eigen_to_surface_mesh()
conversion function - Added missing Python binding for
compute_dijkstra_distance()
Scene module
- Add scene-to-mesh and mesh-to-scene conversion
- Add python binding
IO module
- Support point cloud loading from
.ply
files - Update TinyOBJ to support large polygon facets
- Update
load_mesh()
with correct aggregation of meshes with transforms
Subdivision module
- Add
SurfaceMesh
support - Add support for sharp edges, vertices and holes
- Add support for limit surface interpolation and limit normal computation
- Add support for interpolating vertex/indexed attributes such as UV/color etc.
- Add python binding
Lagrange Release v6.18.0
Continuous Integration
- Added StackWalker on Windows for crash debugging
- Fixed AddressSanitizer on Windows
Dependencies and Infrastructure
- Updated nlohmann_json recipe to avoid an issue when used from Lagrange as a dependency
- Updated tbb to v2021.11.0
- Updated Catch2 to 3.4.0
- Updated OpenVDB to v11.0.0
- Added ufbx dependency
- Add flag to enable/disable wasm threads
- Adds an error message when using Xcode 15.0 with the new linker
Core Module
- Fixed issue in topology computation with isolated vertices
- Fixed
weld_indexed_attribute
- Fix bug when chaining complex edge loops
Scene Module
- Added
Scene
datastructure
IO Module
- Added
load_mesh_fbx
,load_simple_scene_fbx
- Added:
load_scene
,load_scene_gltf
,load_scene_assimp
,load_scene_fbx
,load_scene_obj
- Added
save_scene
andsave_scene_gltf
- Point cloud support in .ply load
Python Bindings
- Added support for Python 3.12
- Updated nanobind to v1.8.0
- Added simplified bindings to
image
module - Added python bindings to the new
Scene
datastructure - Added python bindings to all the new scene IO functions
Lagrange Release v6.17.0
Infrastructure and Dependencies
- CMake updates:
- More robust handling of BUILD_SHARED_LIBS (enabled CMP0077 and CMP0126)
- Fixed soname and install behavior for MKL and Arpack
- Min CMake version bumped to 3.25
- Fix floating-point issues in unit test for Xcode 14+
- Minor compile fixes for C++20
- Fix UBSan issues
- In core module with lagrange::safe_cast()
SurfaceMesh Updates
- Fix
combine_meshes()
for hybrid meshes (e.g. quad dominant) - 5x speedup in
remove_duplicate_facets()
- Fix corner merging in tangent/bitangent computation to match mikktspace
unify_index_buffer()
now supports edge attributes- New tag
AttributeUsage::Position
- New
transform_mesh()
function to apply affine transform to a mesh- Transformations applied based on usage tag (Position/Normal/Tangent/Bitangent)
IO Module
- Fix loading of property lists in .ply
Lagrange Release v6.16.0
Infrastructure and dependencies
- Update boost to 1.82.0 and leverage upstream boost cmake setup
- Add support for .netrc in CMake setup
- Rename CMake variable
LAGRANGE_ARTIFACTORY_KEYFILE
toARTIFACTORY_KEYFILE
- Add
LAGRANGE_FMT_EIGEN_FIX
(off by default) to bypass MSVC C1001 compiler error
Core module
- Improve value attribute support in
unify_index_buffer
andSurfaceMesh::create_attribute
- Add
lagrange::cast
support for castingSurfaceMesh
of different scalar and index types - Add
SurfaceMesh
support toremove_topologically_degenerate_facets
(triangle mesh only) andremove_duplicate_facets
Python module
- Add optional
shared
parameter toSurfaceMesh.attribute
- Migrate build backend to
scikit-build-core
- Fix reference count leak
- Update logger binding
Lagrange Release v6.15.0
Core Module
- Added support for blocker elements in
compute_components
. Deprecatedcompute_bordered_components.h
- Improved performance of
is_vertex_manifold
. - Added new
DisjointSetsWithSize
class for union-find
Python Bindings
- Added support for copy of SurfaceMesh:
.__copy__
,.__deepcopy__
, and.clone
methods.