-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating

Taking Blender to the Next Level
By :

In this section, we will be creating our very first basic scene using Geometry Nodes. You will learn how to add the Geometry Nodes modifier to your base mesh and how to instance an object onto each vertex of your base mesh. We will look at some of the nodes that you can use to manipulate these instances such as Position, Scale, and Rotation. Additionally, you will learn how to randomize certain attributes, and we will also take a look at the different types of attributes and how they are used.
Let's begin by creating a new Blender project.
Let's begin by creating our base mesh. For this example, we will be creating a plane object and applying the Geometry Nodes modifier to it. Then, we will use this plane object to distribute instances of another object across it:
Now, let's scale our plane.
Figure 1.4 – Applying the scale to your plane
Figure 1.5 – The scale of the plane set to 1/1/1
Now, let's open the Geometry Nodes workspace by clicking on the tab at the top of the Geometry Nodes interface. You will now see the Geometry Nodes workspace split into three main views: the 3D Viewport window (in the upper-right corner), the Spreadsheet window (in the upper-left corner), and the Geometry Node Editor window at the bottom. Perform the following steps:
Figure 1.6 – The Geometry Node Editor
Congratulations! You have created your first Geometry Nodes setup! You will see two nodes that have been added automatically: the Group Input node and the Group Output node.
It's important to note that your data will always flow from the Group Input node on the left-hand side to the Group Output node on the right-hand side. Everything between these two nodes will modify our geometry.
Before we start adding any nodes to our node setup, we need something to use as our instance object. So, let's create a mesh that we can use:
In the next section, we will use this Icosphere node as an instance object.
Let's begin adding some nodes! In this section, we will look at how you can add new nodes to the node tree and how to distribute your instance object across your base mesh:
With your Icosphere instance out of the way and your plane selected, you should now see two nodes in the Geometry Node Editor. If you don't see any nodes, make sure that the Geometry Nodes modifier is selected or has been highlighted in the modifiers panel on the right-hand side:
Figure 1.7 – The Geometry Nodes modifier
Figure 1.8 – Your node tree should now look like this
Nodes that change attributes should almost always be placed before the Point Instance node, as the points are not referenced after this node.
Note that your plane object has disappeared in the 3D Viewport window! The reason for this is that we have not yet specified an instance object for our Point Instance node.
Let's do this now:
Figure 1.9 – The Point Instance node
Now, let's take a look at what has happened in the 3D Viewport window:
Figure 1.10 – Instances are placed on each vertex of the plane
As you can see, we now have four Icosphere instances. Ignore the original Icosphere instance that we moved off to the side – you can even hide it if you want. The reason we see four Icosphere instances is that our plane has four vertices. It's creating an instance on each vertex. Let's increase the number of vertices by subdividing our plane. We can do this right inside the Geometry Node Editor as there is a Subdivide node that we can use.
The Subdivide node will increase the number of points or vertices on our base mesh. Let's examine how we can use it in our scene:
Figure 1.11 – Your node tree should now look like this
Notice that you now have nine Icospheres in your scene. The reason for this is that our plane now has nine vertices because of the Level 1 Subdivide node.
3
. Now you should see a total of 81 Icospheres because we have increased the number of vertices on our plane to 81:Figure 1.12 – Increasing the number of vertices will increase the number of instance objects
Now, let's change the scale of our Icospheres – there is a node for that, too! Let's add a Point Scale node:
Figure 1.13 – Your node tree should now look like this
Additionally, you can search for nodes without needing to know where to find them. When you press Shift + A to bring up the nodes menu, click on the Search option at the top and type in the name of the node you are looking for.
Notice that on the Point Scale node, you have access to three different numbers: X, Y, and Z. This is called a vector as it's a set of three numbers. Change one of the numbers by clicking on it and dragging sideways. You will see how the scale of your Icospheres changes according to the axis you scale on. Let's change the Type setting from Vector to Float.
We have now set the scale of our instance objects using the Point Scale node. In the next section, we will look at the different types of attributes available in Geometry Nodes.
Let's take a moment to look at the different types of attributes and data types that you will see:
true
or false
.The most commonly used attributes are Position, Scale, and Rotation (these are all vector-based as they consist of three numbers, which each correspond to the three axes of X, Y, and Z). However, there are also a few others that we will look at in later chapters.
Let's look at how we can rotate our objects. To do this, we will need a new node called Point Rotate. Let's add it to our tree:
Figure 1.14 – Your node tree should now look like this
You will see that the Point Rotate node uses a Vector data type because you can rotate using the different X, Y, and Z axes.
Click and drag the values next to the different axes to see how your Icospheres rotate in your scene. Please note that the difference between Object and Point is that Object will rotate every point in the local space of the object, while Point will rotate every point in its local space as specified by its Rotation attribute.
Next, let's take a look at how to change the position of our objects. For this, we need the Point Translate node. Let's add it now after our Point Rotate node:
Figure 1.15 – Your node tree now looks like this
Our scene still looks very uniform and a bit boring; however, Geometry Nodes allows you to easily randomize your attributes! Let's see how we can randomize the Scale attribute of our Icospheres. For this, we will need a node called Attribute Randomize.
Let's add it now:
Figure 1.16 – The Attribute Randomize node
This node is slightly more complex, as we can choose which attribute it will randomize and how it will influence the current attribute values.
Let's examine how we can randomize the Scale attribute.
We can use the Attribute Randomize node to randomize different attributes. Let's see how we can randomize the Scale attribute of our instance objects:
The default data type value is set to Float, which means we use one number for all three axes, which will result in a uniform scale.
Figure 1.17 – The Attribute Randomize node
Now we have much more control over how our instances will be scaled. We can adjust the minimum and maximum values for all three X, Y, and Z axes.
Figure 1.18 – The 3D Viewport window showing non-uniform scaling because of the vector
0
and the Max value to 1
. Notice that some of the Icospheres are not being displayed or might be very tiny. This is because we're using the Replace/Create operator, which means we're choosing a value between 0
and 1
and replacing the current Scale attribute with this new number. Note this value can be 0
, which will result in some Icospheres with a scale of 0
, making them disappear.Now we are adding our random value to the current Scale attribute, which will not result in Icospheres with a scale of 0
. Other operators you can use are Multiply and Subtract, which work in a similar way to the Add operator.
Let's randomize the position of our Icospheres!
This time, we're going to duplicate our Attribute Randomize node and reuse it for the Position attribute:
Figure 1.19 – The Attribute Randomize node
Let's configure the node as follows:
position
into the box. Please note that attribute names are case sensitive:Figure 1.20 – Your node tree should now look like this
-10
and Max value to 10
. This will randomize our Icospheres' positions from -10
, -10
, and -10
to 10
, 10
, and 10
in world space:Figure 1.21 – The 3D Viewport window showing the randomized positions
Let's randomize the rotation of our Icospheres. For this, we will again duplicate our Attribute Randomize node and place it on the right-hand side of the position Attribute Randomize node:
Figure 1.22 – The Attribute Randomize node
Let's configure this node as follows:
Figure 1.23 – Your node tree and scene should now look like this
0
and the Max value to 10
:Figure 1.24 – The 3D Viewport window showing randomized rotations
It's very easy to change your instance object into something else. Let's do that now.
Start by creating a new instance object in our scene. For this, we will be adding a Suzanne object:
Figure 1.25 – The Point Instance node
Now, let's take a look at what happened in the 3D Viewport window:
Figure 1.26 – Updated instances in the 3D Viewport window
You can also mute or deactivate certain nodes to see exactly what they do. This is good practice for troubleshooting your node tree. To do this, highlight the node or nodes you want to mute and press the M shortcut.
Now, let's mute our three Attribute Randomize nodes:
Figure 1.27 – Muting nodes by selecting them and pressing M
Observe how your scene will update instantly! You can unmute/reactivate these nodes again by selecting them all and pressing M again.
Congratulations! You have now created your first basic scene using Geometry Nodes. Please save your project now, as we will continue to work on it during the next section.
Change the font size
Change margin width
Change background colour