Blue Noise Particle Proposal

It was suggested I create a topic here for a feature proposal that I intend to implement for myself;

What I was proposing was porting my Blue Noise Particles plugin (https://github.com/BorisTheBrave/blue-noise-particles) to be fully integrated with blender.

What is it: A new “Distribution” for particles (to add to blender’s supported distributions: Jittered, Random, Grid). Here are some pictures that give a pretty good idea what it looks like.

Why: Blue noise (also called poisson disk sampling) looks similar to random sampling, but the particles are never too near or too far from each other. It’s great for organic distributions such as vegetation.

Why not in python: Large parts of the particle system are not controllable from python which has lead to a number of limitations and code duplication. Additionally, generation can be performance intensive for large numbers of particles.

Proposed implementation: My plugin works by generating 5 times the needed particles using a random distribution, then decimating the results in a particular way (with a kd-tree and priority queue). So it’s basically a filter on the existing function, which I believe should be achievable. This would be my first contribution to blender source, and I’m a bit rusty on C, so it’s by no means a done deal.

My main questions are:

  1. Would this be accepted?
  2. Is the particle system code stable enough it’s worth my time adding features?

I’d particularly like an answer from @jacqueslucke, as I understand Particles will be affected by the Everything Nodes project.

11 Likes