Skip to content

Iolo-Jones/DiffusionGeometry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Diffusion Geometry

Data-driven calculus, geometry, and topology on point clouds.

Diffusion Geometry is a Python framework for computing differential geometry on discrete data. By reformulating calculus in terms of heat diffusion, this package allows you to perform robust geometric analysis on noisy point clouds, graphs, and non-manifold singularities without requiring a mesh.

This software implements the methods described in the paper Computing Diffusion Geometry (Jones & Lanners, 2026).

Installation

pip install -e .

Dependencies

  • numpy: Numerical computing.
  • scipy: Scientific computing and sparse matrices.
  • opt_einsum: Optimized Einstein summation.
  • scikit-learn: Nearest neighbor search and utilities.
  • pytest: (Optional) For running tests.

Quick Start

Compute the gradient of a function on a noisy point cloud:

import numpy as np
import diffusion_geometry as dg

# 1. Load Data (e.g., a noisy torus)
# shape: (n_points, 3)
points = np.load("torus_points.npy")
values = points[:, 2]  # Scalar signal (e.g., height)

# 2. Initialize Geometry
model = dg.DiffusionGeometry.from_point_cloud(points)

# 3. Create a Function
f = model.function(values)

# 4. Compute Calculus Operations
grad_f = f.grad()            # Returns a VectorField
laplacian_f = f.laplacian()  # Returns a Function

# 5. Spectra of geometric Laplacians (on 1-forms / vector fields)
hodge_eigenvalues, hodge_eigenvectors = model.laplacian(1).spectrum()

connection_laplacian = model.levi_civita.adjoint @ model.levi_civita
connection_eigenvalues, connection_eigenvectors = connection_laplacian.spectrum()

Reference

If you use this software in your research, please cite:

@article{jones2026computing,
  title={Computing Diffusion Geometry},
  author={Jones, Iolo and Lanners, David},
  journal={arXiv preprint arXiv:2602.06006},
  year={2026}
}

@article{jones2024diffusion,
  title={Diffusion Geometry},
  author={Jones, Iolo},
  journal={arXiv preprint arXiv:2405.10858},
  year={2024}
}

About

The code for "Computing Diffusion Geometry" (2026).

Resources

Stars

118 stars

Watchers

5 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors