spherical_blue_noise

Crates.iospherical_blue_noise
lib.rsspherical_blue_noise
version0.1.1
sourcesrc
created_at2021-01-20 00:00:44.58507
updated_at2021-01-20 02:02:53.706756
descriptionBlue noise generator on a sphere.
homepage
repositoryhttps://github.com/nouvadam/spherical-blue-noise/
max_upload_size
id344198
size40,621
(nouvadam)

documentation

README

Spherical blue noise generator

Library for generating points with blue noise distribution on a unit sphere.

The underlying idea for this algorithm is:

  • First generate points on a sphere with random (white) distribution.
  • Then treat each point as physically, charged particle and apply to each one repulsive force from other particles.
  • With time, particles converges to the equilibrium that resembles blue noise.

Hence, the time complexity of this algorithm is O(N^2), where N is the number of points. (could be made faster by using octree, like in barnes-hut algorithm)

Visualization

plot

Code for this animation is available in the examples folder.

Example

use spherical_blue_noise::*;

let blue_noise_vec: Vec<(f32, f32, f32)> = BlueNoiseSphere::new(16, &mut rand::thread_rng()).into_iter().collect();
println!("{:?}", blue_noise_vec);

Reference

The basic idea is based on the paper:

Wong, Kin-Ming and Wong, Tien-Tsin. "Spherical Blue Noise", Pacific Graphics Short Papers, 2018, link

Commit count: 2

cargo fmt