soft-anisotropic-diagrams

A kernels package providing CUDA + Metal ops for soft anisotropic Voronoi diagrams: rasterization, jump-flooding (JFA) initialization, gradient-based site optimization (Adam), densification, and pruning.

Install / load

from kernels import get_kernel

voronoi = get_kernel("blanchon/soft-anisotropic-diagrams")

# Now use the exposed ops:
img   = voronoi.render_voronoi(...)
sites = voronoi.init_candidates(...)
voronoi.run_jfa(...)

Exposed ops

Rendering & initialization

  • render_voronoi — rasterize a (soft) anisotropic Voronoi diagram from a set of sites
  • init_candidates — uniform candidate site initialization
  • init_gradient_weighted — gradient-magnitude-weighted candidate initialization
  • run_jfa — Jump Flooding Algorithm for nearest-site assignment
  • precompute_site_data — per-site precomputation used by the renderer

Optimization

  • compute_gradients_tiled — tiled gradient accumulation against a target image
  • adam_update — fused Adam step on site parameters
  • update_candidates — candidate refinement step
  • radix_sort_pairs — GPU radix sort used by the pipeline

Densification / pruning

  • compute_site_stats
  • compute_densify_score_pairs
  • compute_prune_score_pairs
  • write_split_indices
  • split_sites
  • prune_sites

Metrics

  • compute_psnr
  • compute_ssim

Build variants

Prebuilt for:

torch platform
2.8 linux x86_64 / cuda 12.6, 12.8, 12.9
2.8 macOS aarch64 / metal
2.9 linux x86_64 / cuda 12.6, 12.8, 13.0
2.9 macOS aarch64 / metal
Downloads last month
-
kernels
voronoi
cuda
metal
pytorch