Geometry Nodes – Generic Particle System

On:

|

,

|

You ever need to use Geometry Nodes for an effect that doesn’t work well with the basic particle system?

You ever get tired of building the same god damn particle system in Geometry Nodes any time you want to emit points and then instance objects on those points?

SAY NO MORE!

Instances following direction of velocity.
Instances pivoting around a chosen axis with random initial rotation.
Instances colliding, avoiding, and attracting towards objects.

I created a simplified version of the base particle system that features:

  • Points on surface and conversion of mesh to volume.
  • Point generation with density and lifetime controls.
  • Choice of various primitives, as well as individual objects and collections as instances.
  • The ability to assign a material to the instances.
  • The ability to realize instances, as well as make them merge into one another by converting them into an SDF Grid. This is the same principle as my globules effect.
  • General movement controls, as well as position noise, velocity variation and loss over time, and instance rotation towards vector of travel.
  • Collision, repulsion, and attraction forces with object and collection options, as well as radius and strength controls.
  • Instance rotation, as well as random rotation and angular velocity. Also allows rotation of instances to always face camera, which is handy for billboard effects.
  • Several named attributes that can be used for shaders:
    • age: how old the particle is
    • lifetime: how long the particle can live for
    • collision: whether the particle has collided or not
    • id: index of particle
    • parsize: how big the particle is
    • vectorvelocity: vector of particle travel
    • randomvalue: a random value between 0 and 1 per instanced object

*When using the Attribute node in Shader Nodes, make sure you pay attention to its type. Use “Geometry” for when you realize instances, and use “Instancer” when you are keeping the particles as instances. You can only access attributes on instances if the Attribute node is configured this way.

User Interface

Here’s a quick look at what the user interface looks like. I tried to make it as user friendly as I could, so it’s all labeled, almost everything has a tooltip, and it’s all plugged into the Group Input so you never have to enter the Geometry Nodes window.

It’s not perfect, but it performs fairly well thus far. I think there are lots of effects where the basic particle system works better, like when you need to make use of Blender’s built-in forces. This is generally better for more complex geometry instances, or when you want your instances to merge into each other through a mesh-SDF-mesh conversion process.

If you wish to bake the results, make sure you go into the Geometry Nodes view, since Blender doesn’t have an exposable bake button for geonodes yet. The bake node is the very last one on the far right.

*Note: For Blender 5.1 and on! Make sure you update your Blender before using.

Posted by

in

,

Leave a Reply

Your email address will not be published. Required fields are marked *