The centroidal Voronoi tessellation (CVT) has found versatile applications in geometric modeling, computer graphics, and visualization, etc. In this paper, we first extend the concept of CVT from Euclidean space to spherical space and hyperbolic space, and then combine all of them into a unified framework – the CVT in universal covering space. The novel spherical and hyperbolic CVT energy functions are defined, and the relationship between minimizing the energy and the CVT is proved. We also show by our experimental results that both spherical and hyperbolic CVTs have the similar property as their Euclidean counterpart where the sites are uniformly distributed with respect to given density values. As an example of the application, we utilize the CVT in universal covering space to compute uniform partitions and high-quality remeshing results for genus-0, genus-1, and high-genus (genus>1) surfaces.

Guodong Rong, Miao Jin, Xiaohu Guo, "Hyperbolic Centroidal Voronoi Tessellation", in Proceedings of ACM Symposium on Solid and Physical Modeling (SPM 2010), pp. 117-126, Haifa, Israel, September 2010.

Errata in "Hyperbolic Centroidal Voronoi Tessellation" [1]:

The original definition of hyperbolic CVT energy (equation (8) in [1]), and the corresponding proof of Lemma 2 (Appendix B in [1]) are not correct:

In our latest journal version [2], we have corrected the hyperbolic CVT energy as:

Note that the main difference is that: instead of using sinh^{2}(d^{H}(p,s_{i})) in the integral, we use cosh(d^{H}(p,s_{i})). Remember the distance in hyperbolic space is d^{H}(p,q)= cosh^{-1}(<p,q>_{M}). So cosh(d^{H}(p,q))= <p,q>_{M}. Since <p,p>_{M}=-x^{2}-y^{2}+z^{2}, cosh(d^{H}(p,q)) has the same dimension (i.e. square of length) as its Euclidean counterpart (d^{E}(p,q))^{2} used in the traditional CVT energy definition. The hyperbolic CVT energy convergence is proved in Lemma 7 of the journal version [2].

Since sinh(x) and cosh(x) are both monotonically increasing functions when x≥0, so luckily the L-BFGS energy optimization method still works for the CVT energy with sinh^{2}(d^{H}(p,s_{i})) in [1]. The reason is that if the CVT energy with sinh^{2}(d^{H}(p,s_{i})) decreases, the CVT energy with cosh(d^{H}(p,s_{i})) will decrease as well, and vice versa.