Skip to content

Releases: adobe/lagrange

Lagrange Release v6.23.0

30 May 22:30
c370b1d
Compare
Choose a tag to compare

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

01 May 14:58
fa7ac42
Compare
Choose a tag to compare

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 for select_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

04 Apr 16:17
fff2d84
Compare
Choose a tag to compare

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

13 Mar 05:33
38be0f8
Compare
Choose a tag to compare

Minor release to upload arm64 macOS wheels for Lagrange's Python bindings.

Lagrange Release v6.20.0

08 Mar 16:58
f55620c
Compare
Choose a tag to compare

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 and AttributeFilter object
  • Possible filters:
    • included_attributes (name or id)
    • excluded_attributes (name or id)
    • included_usages (bitfield)
    • included_element_types (bitfield)
  • lagrange::cast() now supports a AttributeFilter 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

09 Feb 02:29
ef5bfcf
Compare
Choose a tag to compare

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 with dimension != 3
  • transform_mesh() now supports 2D meshes
  • lagrange::invalid<T>() now returns inf 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

22 Dec 12:08
b0a868a
Compare
Choose a tag to compare

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 and save_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

17 Nov 22:04
587f6ab
Compare
Choose a tag to compare

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

22 Oct 12:29
dca0f5d
Compare
Choose a tag to compare

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 to ARTIFACTORY_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 and SurfaceMesh::create_attribute
  • Add lagrange::cast support for casting SurfaceMesh of different scalar and index types
  • Add SurfaceMesh support to remove_topologically_degenerate_facets (triangle mesh only) and remove_duplicate_facets

Python module

  • Add optional shared parameter to SurfaceMesh.attribute
  • Migrate build backend to scikit-build-core
  • Fix reference count leak
  • Update logger binding

Lagrange Release v6.15.0

27 Sep 17:16
ab40520
Compare
Choose a tag to compare

Core Module

  • Added support for blocker elements in compute_components. Deprecated compute_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.