For decades now the standard workflow for creating 3D models and scenes has been the use of editing tools to make changes to objects in real time using a viewport to see the changes being made. Now a new workflow has arrived that is not only visual in its approach but also procedural. That workflow is Geometry Nodes.
To begin using the geometry nodes system open up a new project and then locate the Geometry Nodes workspace tab in the header of the Blender UI and click to open the workspace. Here you will have access to a 3D viewport to view the visual results, a spreadsheet to view the data, and a node editor to build your own node systems.
It can be difficult to know exactly where to start when it comes to using geometry nodes, but don’t worry because this guide is the perfect place to help you get started by creating your first node tree and understanding the basic concepts of the geometry node system.
How Node Systems Work In Blender
With the introduction of geometry nodes, we can now use nodes for free different work flows. We can either use them to create objects, create materials, or edit rendered images and animations.
There are some notable changes between each workflow, but the basis for how to use nodes remains the same.
In the case of geometry nodes, we will typically have two nodes to start with. These are Group Input and Group Output.
You may notice though that your current setup if you go to the geometry nodes workspace, has no nodes at all. This is because we have not activated the node system. So press the New button at the top of the geometry nodes editor to create a new note tree.
The group input node stores the original data from the mesh to which our geometry node is applied. You will notice that it has a single property known as geometry and a little green dot by the side. This green dot is what is used to connect nodes together.
There will be a line or noodle that connects this geometry output to the geometry input of the group output node. The group output node is used to visualize the changes made by the note tree. So the group input, in this case, is used to provide the original data. We would then add nodes to make changes to that original data, and those changes would be made visible by connecting them to the group output.
Adding Nodes To A Node Tree
We can add nodes in a similar way to adding objects in the 3D viewport. The add menu is located in the header menu for the geometry nodes editor, and it can also be accessed by using the hotkey Shift + A while the cursor is positioned within the editor.
From this menu, we will be able to first choose the type of node that we wish to add. Hover over the node type to reveal a second menu that lists the actual nodes for that type.
In our example, we will hover our cursor over geometry to reveal its menu. You will notice that these menus can be split into smaller sections, such as here with the geometry menu that has a second list for nodes that directly affect the attributes of our geometry.
For now, the simple one to pick is Transform, so left-click and then the menu will close with the node appearing at the location of the mouse cursor.
To position the node, hover it over the single noodle and the noodle will become highlighted. Left-click again to confirm the position for the transform and it will connect to the node tree at that point.
The transform node will now be an active part of the setup and if we begin to manipulate the values within this node we can view the changes within the 3D viewport.
By the way, an alternative way for adding new nodes is to go to the add menu and then
Removing Or Deleting Nodes Form Our Node Tree
Sometimes You may want to remove a node from the system or even delete it entire if you no longer plan to use it.
Deleting a node requires you to first select that node. The selection here works the same as does for objects in the 3D viewport, when you click on a node it will appear highlighted. You can click and drag to move nodes even when they are attached via the noodles.
To delete them though all you need to do is select the node and then press either the X or DEL keys to delete that node.
Note that this will also delete any noodles that were connected to that node. But what if we wanted to delete our transform node but keep the noodle in place.
If we use the hotkey Control + X, we can delete our selection and then reconnect the noodle to the nodes on either side of the selection.
The Control + Z hotkey is used as Blenders universal undo shortcut and allows us to reverse this if we deleted it in error.
To detach a node from our setup but not delete it, hold down the Alt key on your keyboard and then click and drag the selection to detach and move.
The Structure Of The Node
All nodes follow the same structure in terms of how they are built, so once you understand how one node is built you will also know how the other nodes are constructed.
Using the transform node as our example, we start at the top with the label for that node. This label will have a set color based on the type of the node. For nodes that focus on geometry, the color of the label will be bright green.
The default name of the label will be the name of the node itself, but if you press the N key to open up the side panel, you can create a custom label for the selected node.
Pro tip: it is recommended to label each of your nodes based on what they are being used for.
Also within this top section is a little arrow that you can press to minimize a node within your shader editor. This will not detach any of the noodles that are connected to the said node, but it will simply hide all of the values that that node uses. This can be useful for cleaning up your node setup.
Another way to minimize your nodes is to use the H key, which is the universal hotkey for hiding elements in Blender.
If you only want to hide the values within your nodes that are not being used by other nodes, in other words, they are not being connected via noodles, then you can use the shortcut Control + H to hide all of the parameters that are not connected.
With our transform node, if we were to use Control + H, we would be able to hide the transforms for the translation, rotation, and scale values, but the geometry input would remain visible.
The main body of the node houses the various parameters of the node that can be used to either pass through information or edit that information using a combination of values and fields.
The order of the parameters is always the same, with the outputs appearing on the nodes’ left side first, and then the inputs appearing on the right side below the outputs.
Some nodes, such as the capture attribute node, have drop down menus wedged between the outputs and inputs of the node.
These menus can hold different types, domains, or properties that change the overall effect that the node has on the system.
For example, the capture attribute node allows you to define the domain that an attribute may be stored in, such as the point, edge, or face domain. Not all nodes have these menus though but all of them will have at least one input and/or one output.
The Group Input And Group Output Nodes?
The two nodes that will be created every time you create a new node tree are the group input and group output nodes, and each can play an important role in your node set up.
The main purpose of the group output node is to display the result of our tree in the 3D viewport I place of the original geometry.
If you do not have this node, anything that we do within our node system will not be displayed on our main model and therefore the group output node is the single most important node to have in your setup, which is why it is one of the two nodes introduced whenever a new node tree is created.
The group input node stores the geometric data from the original model so that you can use that data as the starting point for your node tree.
It is also used for exposing parameters of your node system that you wish to edit using the geometry nodes modifier found in the modifiers tab.
Some artists will use the group input node multiple times in their setup when they want to expose multiple parameters, so as to keep the structure looking clean.
What Versions Have Geometry Nodes?
Because geometry nodes is one of the newer toolsets available in Blender, older versions of the software may not have geometry nodes available. The oldest version that has geometry nodes built in is version 2.90.
However, this version could be considered as the Ground Zero of the geometry nodes system. Once Blender reached version 3.0, the geometry nodes system underwent a significant change in its approach to create and procedural models.
The old attribute based system which requires you to chain multiple attribute nodes together to create models as was replaced by a field system.
This field system allows procedural modeling to operate in a similar way to texture creation using the node editor. This makes it a lot easier for artists of all levels to use.
An Example Of A Full Node System
Let us now take a look at a full node system that uses numerous nodes to create a new output. Below we have an image of a set up that uses various nodes to create the basic shape of a house with a slanted roof.
This is a basic example compared to many node trees that you create but the principles are all visible here. Starting With the basic cube, we use a transform node to scale the building to double the width on the X axis.
That data is then sent to an extrude mesh node, but to define which fae is extruded, we need to use a field function.
For the field, we use the position node to call the position attribute and then isolate the selection using the separate XYZ node and connecting it to the selection input.
This means that the extrude mesh node will only affect vertices that have a Z value greater than 0, as no math nodes have been used to define otherwise.
Then we reduce the offset scale to reduce the extrusion to an acceptable length.
To create the slanted roof we then introduce a scale elements node. To isolate the scaling to the Y-axis we change the scale mode property from Uniform to Single Axis and then set the value to 0, 1, 0 so that it only scales on the Y.
We only want to use it for the top part of the extruded mesh, so connect the top output with the selection input and then adjust the scale value for the control.
This gives us a final result of a building where we can control the dimensions of the building along with the scale and shape of its roof.
What’s more, by connecting these values to your group input node you can edit them in the geometry nodes modifier from the Properties panel.
The Best Place To Learn Geometry Nodes?
Geometry nodes differ from the traditional form of modeling as it acts as a system that the artist can control to both create and change the models in their scenes. The best way to learn this system is by using our own.
The Blender boot camp is an educational resource dedicated to teaching Blender and Blender alone. The geometry nodes boot camp is our tailor made course to learning the node system from the ground up.
If you are looking for the best resources to get you started though, we are offering our free geometry nodes starter kit, which contains our beginners guide to geometry nodes along with our procedural building asset pack and geometry nodes terminology cheat sheet.
Learn More About Geometry Nodes From These Articles
We hope that you find this article useful for accessing the geometry nodes system. If you want to learn more about how you can use geometry nodes, then check out these articles listed below.
- What Is The Best Version Of Blender For Geometry Nodes
- How To Access Geometry Nodes In Blender
- Using The Group Input And Group Output Nodes
- How To Use The Position Attribute In Geometry Nodes
- Controlling The Selection Of Your Geometry With The Set Position Node