Skip to content

Releases: adobe/lagrange

Lagrange Release v6.29.0

13 Dec 21:40
cc5c79a
Compare
Choose a tag to compare

Infrastructure

  • πŸ—οΈ GCC 13 compilation fix
  • πŸ“Œ Update ImGui
  • πŸ—οΈ Various warning fixes

Core module

  • 🎨 Add SurfaceMesh support for remove_degenerate_facets and compute_mesh_covariance
  • 🐍 Add python binding for orient_outward and thicken_and_close_mesh

Poisson module

  • 🎨 Support colored point cloud

Lagrange Release v6.28.0

15 Nov 06:49
1ad95ef
Compare
Choose a tag to compare

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() as mesh.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_similarity
    • split_long_edges
    • compute_pointcloud_pca
    • orient_outward

Lagrange Release v6.27.0

23 Oct 22:57
ffec583
Compare
Choose a tag to compare

Python Module

  • πŸ“ŒUpdated numpy to >=1.25
  • πŸ“ŒRemoved colorama dependency from build requirements

Core Module

  • ✨Added SurfaceMesh::get_counterclockwise_corner_around_vertex and SurfaceMesh::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.h header with trim_by_isoline and extract_isoline

Poisson Module

  • 🎨Faster multi-threaded mesh generation
  • πŸ“ŒUpdated PoissonRecon dependency

Polyscope Viewer

  • ✨Added polyscope mesh viewer. mesh_viewer executable in the core module examples.

Lagrange Release v6.26.0

26 Sep 15:23
1d18765
Compare
Choose a tag to compare

Infrastructure

  • πŸ— Update CMake sanitizer script
  • πŸ— Fix Xcode linker warning

Core Module

  • 🎨 Add SurfaceMesh support for
    • resolve_nonmanifoldness
    • resolve_vertex_nonmanifoldness
    • remove_short_edges
    • thicken_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_mesh and lagrange::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.strip option to pyproject.toml

Lagrange Release v6.25.0

06 Aug 22:22
5bdff7d
Compare
Choose a tag to compare

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

23 Jul 22:47
9700da9
Compare
Choose a tag to compare

Infrastructure

  • πŸ“Œ Updated libigl
  • πŸ“Œ Updated OpenSubdiv from 3.4.4 to 3.6.0

Core Module

  • remove_duplicate_vertices: Added boundary_only option
  • compute_vertex_valence: Added induced_by_attribute option
  • Added public-facing find_matching_attribute(s) functions
  • Topology/orientation:
    • Added is_oriented helper function to check for consistent winding edges
    • Added compute_vertex_is_manifold and compute_edge_is_oriented to compute per-element topology/orientation information
  • weld_indexed_attribute: Added epsilon tolerance options
  • io::LoadOptions: Added stitch_vertices option (e.g. when loading glTF)

Python Module

  • Improved python stub generation

Subdivision Module

  • New EdgeAdaptive refinement option
  • Added max_edge_length option 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

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.