How to Scatter Objects with Blender Geometry Nodes

This article provides a step-by-step guide on how to scatter objects across any surface in Blender using the Geometry Nodes modifier. You will learn how to set up the basic node network, distribute points on a mesh, instance your chosen objects onto those points, and randomize their scale and rotation for a natural, realistic appearance.

Step 1: Prepare Your Scene and Create a Geometry Node Group

Before starting, ensure you have two things in your scene: the target surface (the mesh you want to scatter objects onto, such as a plane or terrain) and the source object (the item you want to scatter, such as a rock, tree, or grass blade).

  1. Select your target surface mesh.
  2. Navigate to the Geometry Nodes workspace at the top of the screen.
  3. Click the New button in the Geometry Nodes editor to create a new modifier.

You will see a default network consisting of a Group Input node connected to a Group Output node.

Step 2: Distribute Points on the Surface

To scatter objects, you first need to generate points across the surface of your target mesh.

  1. Press Shift + A, search for Distribute Points on Faces, and place it in the editor.
  2. Connect the Geometry output of the Group Input node to the Mesh input of the Distribute Points on Faces node.
  3. Change the distribution method from Random to Poisson Disk. This option prevents scattered objects from overlapping by allowing you to set a minimum distance between points.

Step 3: Instance Objects onto the Points

Now that you have points, you must replace those points with your source object.

  1. Press Shift + A, search for Instance on Points, and place it to the right of the distribution node.
  2. Connect the Points output of the Distribute Points on Faces node to the Points input of the Instance on Points node.
  3. Drag your source object from the Blender Outliner directly into the Geometry Nodes editor. This action automatically creates an Object Info node.
  4. On the Object Info node, check the Relative box.
  5. Connect the Geometry output of the Object Info node to the Instance input of the Instance on Points node.
  6. Connect the Instances output of the Instance on Points node to the Geometry input of the Group Output node.

Step 4: Join the Original Surface Mesh

At this stage, your original surface mesh will disappear, leaving only the scattered instances. To make the surface visible again:

  1. Press Shift + A and search for the Join Geometry node.
  2. Place the Join Geometry node right before the Group Output node.
  3. Connect the original Geometry output from the Group Input node directly into the Join Geometry node.
  4. Connect the Instances output of the Instance on Points node into the Join Geometry node as well.

Step 5: Randomize Rotation and Scale

To make the scattered objects look realistic, you should randomize their rotation and scale so they do not look identical.

  1. Press Shift + A and add a Random Value node. Set its data type dropdown to Vector.
  2. Connect the Value output of this node to the Rotation input of the Instance on Points node. Set the Max X and Y values to 0 and the Z value to 360 (or 6.283 in radians) if you only want to randomize the rotation on the vertical axis.
  3. Add another Random Value node and set its data type to Float (or Vector if you want non-uniform scaling).
  4. Connect this Value output to the Scale input of the Instance on Points node. Adjust the Min and Max values to control the size variation of your scattered objects.