pyvoro2: 2D/3D Voronoi and power/Laguerre tessellations with periodic topology and inverse power fitting

Read full text
Authors: Ivan Yu. Chernyshov
Cited by: 2

Abstract

pyvoro2 is a scientific Python package for computing Voronoi-type tessellations in two and three dimensions. It provides Python bindings to the C++ library Voro++ for standard Voronoi tessellations and weighted power/Laguerre tessellations, together with a NumPy-oriented interface intended for scientific computing and reproducible geometry workflows. The package supports 3D boxes, orthorhombic cells, and triclinic periodic cells, as well as a dedicated pyvoro2.planar namespace for 2D rectangular and rectangular-periodic domains. In addition to full tessellation, pyvoro2 provides point-location and ghost-cell queries, explicit periodic neighbor-image shifts, diagnostics, and normalization utilities for reproducible topology and graph analysis. A central feature of pyvoro2 is inverse power fitting. For fixed sites and selected pairwise separator observations, pyvoro2 can resolve and validate bisector constraints, fit power weights from fraction or position data under configurable convex models, report contradictory hard constraints, check which candidate pairs are geometrically realized in the resulting power tessellation, and iteratively refine a self-consistent active set. These tools support both 2D and 3D workflows, including periodic settings, and are designed for constructing globally consistent power-diagram surrogates from local interface data. Version 0.6.3 corresponds to the GitHub v0.6.3 release and the matching PyPI release. This Zenodo record archives that exact software snapshot for citation and reproducibility. The package vendors an upstream Voro++ snapshot; pyvoro2-authored code is distributed under the GNU Lesser General Public License v3.0 or later, while vendored third-party components retain their own licenses.

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
21 March 2026
Language
EN