Skip to content

Releases: adobe/lagrange

Lagrange Release v6.30.0

Choose a tag to compare

@evastgh evastgh released this 06 Feb 19:36
e201c5e

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_loops for 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.py script 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

Choose a tag to compare

@qnzhou qnzhou released this 13 Dec 21:40
cc5c79a

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

Choose a tag to compare

@jdumas jdumas released this 15 Nov 06:49
1ad95ef

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

Choose a tag to compare

@HasKha HasKha released this 23 Oct 22:57
ffec583

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

Choose a tag to compare

@qnzhou qnzhou released this 26 Sep 15:23
1d18765

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

Choose a tag to compare

@evastgh evastgh released this 06 Aug 22:22
5bdff7d

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

Choose a tag to compare

@jdumas jdumas released this 23 Jul 22:47
9700da9

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

Choose a tag to compare

@jdumas jdumas released this 30 May 22:30
c370b1d

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

Choose a tag to compare

@qnzhou qnzhou released this 01 May 14:58
fa7ac42

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

Choose a tag to compare

@HasKha HasKha released this 04 Apr 16:17
fff2d84

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