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 sitesinit_candidates— uniform candidate site initializationinit_gradient_weighted— gradient-magnitude-weighted candidate initializationrun_jfa— Jump Flooding Algorithm for nearest-site assignmentprecompute_site_data— per-site precomputation used by the renderer
Optimization
compute_gradients_tiled— tiled gradient accumulation against a target imageadam_update— fused Adam step on site parametersupdate_candidates— candidate refinement stepradix_sort_pairs— GPU radix sort used by the pipeline
Densification / pruning
compute_site_statscompute_densify_score_pairscompute_prune_score_pairswrite_split_indicessplit_sitesprune_sites
Metrics
compute_psnrcompute_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