Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@ jobs:
name: ${{ needs.check_version.outputs.version }}
prerelease: ${{ needs.check_version.outputs.prerelease }}
allowUpdates: true
# Auto-populate the release body with the merged PRs since the
# previous tag (curated highlights live in CHANGELOG.md).
generateReleaseNotes: true
artifacts: "./artifacts/**/*"
token: ${{ secrets.GITHUB_TOKEN }}
- name: Publish to PyPI
Expand Down
70 changes: 70 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Changelog

All notable, user-facing changes to the `libigl` Python bindings are recorded
here. The project loosely follows [Semantic Versioning](https://semver.org) and
version numbers match the [PyPI releases](https://pypi.org/project/libigl/#history).

> Historical note: releases up to and including 2.6.2 were published to PyPI
> without matching git tags or GitHub releases (see #235). Starting with 2.6.3,
> pushing a version bump to `main` automatically creates the git tag, the GitHub
> release, and the PyPI upload together (#313). The 2.6.3 section below therefore
> folds in changes first shipped in the tag-less interim 2.6.2 release, i.e. it
> covers everything since the last tagged release, 2.6.1.

## 2.6.3 — 2026-08-31

### Added

New function bindings:

- **Distances & closest points:** `simplex_simplex_squared_distance`,
`point_simplex_squared_distance`, `offset_surface`.
- **Rotations / ARAP:** `polar_svd3x3`, `fit_rotations`.
- **Quad meshes:** `quad_planarity`, `planarize_quad_mesh`, `quad_edges`.
- **Curves & mesh topology:** `ramer_douglas_peucker`, `path_to_edges`,
`connect_boundary_to_infinity`, `smooth_corner_adjacency`,
`per_face_normals_stable`, `resolve_duplicated_faces`, `vertex_components`,
`is_vertex_manifold`, `is_intrinsic_delaunay`.
- **Remeshing:** `triangle.remesh_at_points`.
- **Winding numbers & distance fields:** `swept_volume`,
`swept_volume_bounding_box`, `swept_volume_signed_distance`,
point-cloud and pre-built-tree support for `fast_winding_number`,
`lipschitz_octree`, `unique_sparse_voxel_corners`, and an edge→vertex (`E2V`)
output for sparse `marching_cubes`.
- **Ambient occlusion:** core `ambient_occlusion` binding.
- **Solvers & energies:** `active_set`, `boundary_conditions`,
`harmonic_integrated_from_laplacian_and_mass`, Hessian and Hessian-energy
operators, and cross-field bindings.
- **Bounding boxes:** oriented-bounding-box functions, `bounding_box_diagonal`.
- **Curves & predicates:** cubic Bézier evaluation and roots, additional
`igl::predicates` bindings, `igl::spectra` bindings, and
`lexicographic_triangulation`.
- **Misc:** `centroid`, a `face_areas` overload taking intrinsic edge lengths,
and an optional `seed` parameter for `random_points_on_mesh`.

### Changed

- Bumped the bundled libigl to
[`f68f01c2`](https://github.com/libigl/libigl/commit/f68f01c23ac82351e2543ce8c529b6d4c89fdf16).
- `cycodebase` distance queries can now reuse a prebuilt AABB tree / precomputed
bases for fast repeated queries.
- Releases are now cut by pushing a version bump to `main`, which tags the
commit and creates the GitHub release and PyPI upload in one step (#313).

### Packaging / CI

- Added CPython 3.13 wheels.
- Switched the Linux CI builds to Clang to fix a 2.6.1 performance regression.
- Bumped `pypa/gh-action-pypi-publish` to 1.13.0.

## 2.6.2 — PyPI only

Interim release published to PyPI on 2025 without a git tag or GitHub release.
Its changes are folded into the 2.6.3 entry above.

## 2.6.1 — 2025-05-15

Last release before this changelog was introduced. See the
[git history](https://github.com/libigl/libigl-python-bindings/commits/2.6.1)
and the [PyPI release history](https://pypi.org/project/libigl/#history) for
earlier changes.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ build-backend = "scikit_build_core.build"

[project]
name = "libigl"
version = "2.6.3.dev5"
version = "2.6.3"
description = "libigl: A simple C++ geometry processing library"
readme = "README.md"
requires-python = ">=3.8"
Expand Down
Loading