Creating a Rotating Object Array in Blender with Geometry Nodes

Creating a Rotating Object Array in Blender with Geometry Nodes

Today I’ve been learning how to create an array of objects with a rotation offset using Geometry Nodes instead of Python, which I’ve used in the past. I split the task into two parts: creating the array and applying the offset to the rotation of each object.

Create the Array

  1. Select your base object (mine is a cube).
  2. Go to the Geometry Nodes workspace.
  3. Click "New" to add a Geometry Nodes modifier to the object.
  4. Add a Grid node.
  5. Add an Instance on Points node.

The Grid node creates the points, and the Instance on Points node places your base object on those points.

You should have the following set of nodes with these values:

Apply Rotation Offset

  1. Add an Index node.
  2. Add a Math node set to Multiply.
  3. Add a Math node set to Add.

Connect the nodes as shown:

  • The Index node gives each object a unique ID number that increases by one for each object.
  • The Multiply node (value: 0.020) scales the index to prevent drastic rotation offsets.
  • The Add node adds an animated driver: frame / 75, which sets a slow rotation using the frame count as the iterator.

Here's how it looks: