DiGeo (Differentiable Geometry) is a Python package for differential geometry in learning and optimisation applications on triangular meshes. Built on PyTorch and custom CUDA kernels, it provides differentiable exponential maps, parallel transport, and geodesic tracing as core operations. DiGeo also features high-level tools including geodesic convolutions, biharmonic distance, and Riemannian optimisers (gradient descent and L-BFGS). It supports batched inputs, single and double precision, and runs on both CPU and GPU.
Examples#
Partition complex meshes with Geodesic Centroidal Voronoi Tessellation and the Mesh-LBFGS optimiser.
Learn how MeshFlow trains a stationary vector field with differentiable exponential maps and biharmonic losses.
Explore the AGC U-ResNet architecture for dense vertex labeling on human meshes.
Citing DiGeo#
If you use DiGeo in your research, please consider citing the following paper:
@inproceedings{verninas2026disgeod,
title={Parallelised Differentiable Straightest Geodesics for 3D Meshes},
author={Verninas, Hippolyte and Korkmaz, Caner and Zafeiriou, Stefanos and Birdal, Tolga and Foti, Simone},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2026}
}