Get the latest Blender, older versions, or experimental builds.
Stay up-to-date with the new features in the latest Blender releases.
Access production assets and knowledge from the open movies.
Documentation on the usage and features in Blender.
Latest development updates, by Blender developers.
Guidelines, release notes and development docs.
A platform to collect and share results of the Blender Benchmark.
The yearly event that brings the community together.
Support core development with a monthly contribution.
Perform a single donation with more payment options available.
Theory - Basics
Example - Rock Generator
Theory - Data Structure
Example - Simple Rock Scattering
Theory - Fields
Example - Advanced Rock Scattering
Example - Tree Generator
Theory - Attribute Propagation
Example - Grass Tuft Generator
You can join Blender Studio for €11.50/month and get access to all of our training & film content instantly!
May 16th, 2022
Join to comment publicly.
I am taking the GeoNodes and Procedural Texturing classes simultaneously. I always knew you were an expert node master, but I am so surprised and delighted at what a great teacher you are! Your theory is clear and the practical examples are spot on. It's unusual to find someone who understands such difficult concepts yet is able to clearly explain it step by step. Thank you! Thank you!
@Benjamin Bass Thanks a lot! :)
Wow. My brain feels bigger. :)
BUFT - Blender Unified Field Theory :)
This is brilliant. Up until this point I have followed alot of tutorials and hands-on examples, with frustration. Everything falls to place after watching this. Wish this was the first thing anyone ever told me about geometry nodes. Perhaps this is because I have software background instead of art/content creation. Suddenly, I have made several geometry nodes graphs now, within days of watching this. Thanks.
@Stefan Karlsson I'm glad to hear that!
What a fantastic explanation!. Thank you so much!
Great video, thank you. I love that you dig into the how and why of geometry nodes.
Really enjoying the course so far, very well structured. On a completely separate note, what software do you use for your hand drawn visuals and video editing? If I ever end up making an explainer video of any sort, I'd like to use your approach!
@Jakub Dano I'm glad you're enjoying it! I use Krita for drawing the graphics and the Blender VSE for editing the video. But you can really replace that with any other software for drawing and video editing, to be honest.
Thank you so much for this explanation, it really demystifies a lot around the functioning of Geometry Nodes and also feels like a great design on Blender's side with a lot of flexibility.
As a software engineer, I understand the fields as C# delegates or just function building and passing in general. As you said, it is Instructions not actual results that you create when patching a Field. It's amazing how transparently the interface deals with this.
Is this unique to Blender or do other similar systems, such as Houdini, use this approach?
@magnet.cz Very glad to hear this, especially since I've been involved in the development process. I haven't really used much other software for these kinds of things myself. As far as
I understand there is a workflow like this in houdini as well. Houdini is definitely still more powerful in general and provides more different workflows, but we're getting to a good spot with Blender nodes.
Very nice, I will probably need to watch this a few times to have my head wrap it around... So let me see if I understood it a bit, fields are kinda like functions in a program, and the geometry is kinda like the object, the functions can only be performed on data's that the object holds?
@Andre Kling David yes, that's pretty much it :)
can I make water with geometry nodes
@Jamison Simulation is not yet part of what geometry nodes can do. But you can certainly create water-like effects with geometry nodes and some animated noise textures
@Simon Thommes ok thank you
@Simon Thommes do have a video or link that I could go to to find out how
@Jamison It really depends on the effect you are going for, but I don't have any links, sorry
@Simon Thommes ok (:
On 5:00, when there's another Grid geometry - does noise texture base on actual (plane) geometry and then noise offset is calcullated based on it, while in SetPosition node we apply that offset (calculated on Plane geometry) to Grid geometry ?
I'm a dummy, sorry, it's clearly explained later in the video
@Yevtushenko Oleksandr No worries, I’m glad it’s clear now!
hey Simon Thomas I have been working on fluid and I hit a problem do you now any body I can talk to for trouble shooting?
@Jamison You could head to blender.chat . In the #everything-nodes, or the #support channel there are usually people around to help out with questions. However there is also a lot you can do to make your questions easily understood, so others can help out.
At one point you say that the index of the vertex is a derived field, computed from the actual vertex data. That seems quite odd to me...wouldn't the index of a vertex be inherent to the spreadsheet data (i.e., what row we're in) and not need to be computed by any algorithm (like normal vectors or face angles would)?
@Nathan Carter I think you misunderstood what I was trying to say, maybe I didn't make it clear. It is not calculated by an algorithm. My point was just that this data is derived, so not directly stored as an attribute. It is not actual data, stored as an integer, it is just implicit in the data.
What even is a field? A bunch of vector coordinates? Does the noise texture come with vector coordinates or something? Confusing video. I'm just trying to understand how the noise texture is manipulating the geometry at the start of the video. The set position node goes from moving around the entire mesh and then concentrating on each individual vertice, the noise texture somehow giving a list of coordinates for each vertice to move only using the color output.
@John Doe Well that question is exactly what I'm trying to answer with this video. Have you watched the previous videos leading up to this? If not I suggest you do. Understanding the concept of attributes helps a lot with understanding fields.
Fields itself don't contain any actual per-element data on the geometry, they exist without the context of a geometry as references to certain attributes, like e.g. the point position. The values resulting from the field only actually are calculated whenever the field is used/evaluated in the context of a geometry, where the references of attributes are replaced with the actual attributes themselves to result in the vectors that move the points in the example of the set position node.
But a field does not have to even contain a reference to an attribute at all and it can be more than that and even reference further opterations. All of this is only evaluated whenever the field is used. Any it is evaluated for each element of the mesh that the operation which needs to evaluated is affecting.
All of this is also explained in the video in different words, I hope it helps to have it explained slightly differently. It's an abstract concept. I tried to present it in a way that is not confusing.
@Simon Thommes Yes, I understand attributes are just bits of data to characterize an element under a domain for a component, like vertices and their positions in the 3D viewer. From what I can understand, the Set Position node is moving each vertice uniformly using the vector coordinate swatches. I understand that using a noise texture will assign random vector coordinates to each position attribute of the elements, overriding the uniformity. However, when plugging in the noise texture using the color output, I'm just confused on how it's moving the vertices in anything but the z direction since those colors are pure black and white (grayscale). I sort of understand what is meant by a field, the noise texture being calculated according to the geometry being used by the current node that it has been plugged into, which is perfectly demonstrated when moving the geometry around in the 3D view while the noise texture updates itself in real time like a tri-planar projection.
@John Doe I see what the issue is now. The color output of the noise texture is not in fact grayscale, it's a different grayscale noise for each RGB component. And, whenever possible, Blender does implicit conversion between data types. So the RGB vector is directlky used as the offset vector. If you were to use the grayscale Fac output of the noise texture. The implicit conversion would use the same texture for all vector components.
This has nothing to do with fields but with how Blender does implicit conversion for data types in the node editors.
Thank you for creating this informative video. As a beginner in Blender, I found the theoretical explanations to be useful, but I believe that incorporating more practical examples would be even more helpful. There are still many subjects that I find unknown and complicated to understand by only looking at the spreadsheet. Therefore, I suggest including more real-life tasks in your future tutorials. Thank you again for your effort in providing valuable content.
@Martynas Narkus The idea was to split this up into condensed informative videos and practical examples. Have you checked those out as well? There are two example videos in this chapter. Of course, for practical example it's the more the better, and here I only have a limited amount, but that should give you a good foundation to also experiment yourself and have a better understanding when watching other practical examples on here or for example on youtube.
@Simon Thommes Hi, thank you for your quick response.
@Simon Thommes Hi, thank you for your quick response. I did watch all, just what I looking for is to fully understand how to apply all theories into practice and actual examples of nodes roadmap. Follow the tutorial and do what you want it is 2 different skill sets. In my case, I definitely need to see many technically correct different node structures then I definitely will get the pattern and could apply it to my own needs.
I don't understand T_T But I will carry on learning and hopefully rewatch this later after I've become more knowledgeable.
Ok, in programming, well C++, you can pass references. Does this mean the left leaf on the graph of a field is what is being referenced from the right most node that has a geometry socket, a reference from it's geometry? @6:07 the Set Position node is referencing the position, (from the Position node), of it's incoming geometry socket. Then that value is passed to each of the nodes in between before giving a value to Set Position.
Anywhere in the repo you can suggest I look at so I might get a better understanding? Please and thank you. I am appreciating your videos a lot.
@Ken Jinks What you're saying is right, the actual data flow only happens within the geometry operations through the solid lines and round sockets. The field only passes around references, which depend on the context that the field is evaluated in. The evaluation is the crucial step to understand to see where the data actually comes from.
You can force the evaluation of a field by writing it to a geometry with the Capture Attribute or Store Named Attribute node.
Store Named Attribute
@Simon Thommes thanks!
For me the plane is just moving positions on the grid instead of morphing the plane itself. Note sure why. Note: I am using Blender 4.0
@Frederick William Bramich V I''m not sure what you mean by 'moving positions on the grid'. By changing the position attribute of the points, so moving the points individually, you should get a deformation of the plane.
I started your course last night and now want to continue but I can only get the Basics Lesson. How do I get to the entire course?
@Chris DeCarlo Once you subscribed you should have access to everything. Maybe try clearing the cache in your browser (?)
If you subscribed and keep having issues it's best to reach out via the related contact channel: https://studio.blender.org/contact/
How do I get the entire course?
The creators who share.