Repository navigation
This is the first GitHub release since v0.6.3, so it includes the changes introduced across both the v0.7 and v0.8 development cycles.
Highlights
- Weight-first power diagrams. Power/Laguerre tessellations can now be computed directly from mathematical
weights=, while the existingradii=representation remains supported. - Unified forward results. Spatial and planar
compute(...)now use the commonTessellationResultAPI, with stable access to sites, IDs, cell measures, empty cells, representation metadata, diagnostics, and normalization. - Canonical inverse API. Separator inverse fitting now lives under
pyvoro2.inverse/pyvoro2.inverse.separator, with explicit graph, gauge, Laplacian, realization, active-set, provenance, and report diagnostics. - Substantial correctness and safety hardening. v0.8 adds certified periodic nearest-image handling, mandatory native-safe duplicate detection, stricter input validation and ownership, guarded native container construction, severity-complete tessellation diagnostics, atomic active-set final states, and source-bound inverse observations/results/reports.
- More robust inverse solvers. The separator objective, hard-constraint handling, ADMM proximal solve, numerical reductions, final quadratic certification, and dense/sparse solver/backend semantics were audited and corrected for difficult binary64 cases and explicit failure reporting.
- Python 3.14 and expanded binary distributions. Official wheels are provided for CPython 3.10–3.14 on manylinux x86_64, Windows AMD64, macOS x86_64, and macOS arm64, together with a source distribution.
- Release and packaging hardening. CI now validates source installs, wheels, the sdist round trip, no-SciPy installations, notebooks, documentation, native sanitizer checks, metadata, and the complete license/notice payload.
Migration from v0.6.3
The temporary compatibility API introduced during the v0.7 transition has now been removed. In particular, pyvoro2.powerfit, broad top-level separator exports, historical separator aliases, PlanarComputeResult, and planar return_result= are no longer part of the v0.8 API.
Use the canonical APIs under pyvoro2.inverse and pyvoro2.inverse.separator. For forward computation, output='cells' remains available when the historical raw cell-list form is desired.
Notes
v0.8.0 is primarily a stability, correctness, API-cleanup, and distribution-quality release following the larger API expansion developed for v0.7. It intentionally does not add the planned prescribed-cell-measure or mixed-inverse solvers; those remain future development work.
For the complete technical history, migration details, and known limitations, see CHANGELOG.md and docs/project/release-notes-v0.8.md.