How to Instance on Points in Blender Geometry Nodes

Instancing objects onto points using Blender's Geometry Nodes is a powerful, non-destructive method for scattering assets like grass, rocks, trees, or repetitive mechanical parts across a surface. This step-by-step guide explains how to generate points on a base mesh, attach an external object or collection to those points, and apply randomized scale and rotation for a natural, procedural look.

1. Set Up the Base Geometry

  1. Select the base object (e.g., a plane or landscape mesh) where you want instances to appear.
  2. Switch to the Geometry Nodes workspace or open the Geometry Node Editor in your current layout.
  3. Click the New button at the top of the Geometry Node Editor to create a new modifier node tree. You will see a Group Input connected to a Group Output.

2. Generate Points on the Mesh

To place objects on the surface, you need points distributed across the faces of your geometry.

  1. Press Shift + A and search for Distribute Points on Faces.
  2. Place this node between the Group Input and Group Output nodes.
  3. Choose your distribution method:
    • Random: Places points purely by density.
    • Poisson Disk: Distributes points with a guaranteed minimum distance between each point to prevent overlapping.

3. Add the Instance on Points Node

  1. Press Shift + A and search for Instance on Points.
  2. Place this node between the Distribute Points on Faces node and the Group Output.
  3. Connect the Points output from the Distribute Points on Faces node to the Points input of the Instance on Points node.

4. Assign the Instance Object

  1. Press Shift + A and search for Object Info (or drag an object directly from the Outliner into the Geometry Node Editor).
  2. In the Object Info node, select the object you want to duplicate.
  3. Set the mode to Relative so the instance retains proper spatial relationships.
  4. Connect the Geometry output of the Object Info node into the Instance input of the Instance on Points node.

(Note: If you want to instance multiple different objects, use a Collection Info node instead, check Separate Children, and enable Pick Instance on the Instance on Points node.)

5. Randomize Rotation and Scale

To avoid a uniform, artificial look, add variation to the instances.

  • Random Scale:
    1. Add a Random Value node (Shift + A > Utilities > Random Value).
    2. Set the data type to Float.
    3. Set a Min value (e.g., 0.5) and a Max value (e.g., 1.5).
    4. Connect the Value output to the Scale input of the Instance on Points node.
  • Random Rotation:
    1. Add another Random Value node and set its type to Vector.
    2. For a flat-ground scatter, set the Z-axis rotation range from 0 to 6.283 (representing 360 degrees in radians).
    3. Connect the Value output to the Rotation input of the Instance on Points node.

6. Display the Original Mesh

By default, the Distribute Points on Faces node replaces the original base geometry. To keep the ground mesh visible alongside your instances:

  1. Add a Join Geometry node (Shift + A > Geometry > Join Geometry) before the Group Output.
  2. Connect the original Geometry output from the Group Input node into the Join Geometry node.
  3. Connect the Instances output of the Instance on Points node into the Join Geometry node as well.