 Hi, welcome. Welcome to a guide, a Blender Today special. It's a guide on node tools, a new feature that is coming to Blender 4.0, and who's better as a teacher than a developer that worked on it. So hi, Hans. Hi, I'm Hans. I'm one of the Blender geometry nodes developers. And what I focused on for 4.0 was node tools. So might as well get into it. Yes, so a quick recap, what are node tools? Is it related to geometry nodes? Because you use geometry nodes to build those tools, right? But in the future, it could be anything, right? Geometry nodes now is only for procedural modeling. So you don't get to actually change the data and see your changes and then build on something over and over. You have to just, there's the original, and then there's the results. So that's sort of limiting because it only works with a procedural workflow, not the destructive workflow. So instead of modifiers, we are going to be able to use tools. So this is where you use geometry nodes so far. So if you add a modifier, it comes connected to a node group. And the node group could do something like extrude. Oh, no. Search? Yeah. Could extrude the mesh. But see, if we go into edit mode, we don't have the result. We have to apply the modifier. And that's what you'd have to do so far if you wanted to build on what you did. And that's a huge pain. So instead, we have to delete the default cube. Oh, no. So there's this new context in the geometry node editor called tool. And you can add a new node group just like before. And by default, it does nothing just like before. To see it, you go into edit mode by default. And you can control that with which object type it affects and which mode it affects. And you see this little icon in the top right of the header. And these are called the uncategorized tools because they're not organized. And we'll get into that later. But they'll all show up here. And if we run the tool, you see it does nothing. If we make a quick delete. And this node group here is not linked to anything. I didn't have to have an object selected, right? Right. Yeah. So then it deletes everything. So that's the most simple node tool you could create. But let's say we wanted to do another simple thing and just add a cube. The same way we would use the Shift A menu and add a cube and then have another one. If we wanted to do that with a node group, we have all these primitive nodes in the geometry nodes. So primitive cube. Then we could do that. So then we have the join geometry node. Join geometry because that way it will preserve the existing original and the new. And if we join them together, run the tool, then we have two cubes in the exact same spot. So if we undo that, does it add it in the position of the cursor or the center or where? Thanks for asking, Pablo. So there's a few input nodes we have that are special for tools. And you can't use this in the modifier version of geometry nodes because modifiers can't depend on the 3D cursor. But we can use it in tools. So if we wanted to move this new cube to the 3D cursor, which we can place nicely oriented to the surface, that tool. So if we use the transform node, which people familiar with geometry nodes, this is one of the basic nodes you probably learn when you first start out. It's just moving something to another spot so it can say, hey, we want our cube to be at the 3D cursor. And let's rename it because that's too confusing. Cube. Cube. All right. And that's good. It's at the right spot. But what about the rotation? Like let's say we have a slanted face. Yeah, let's say we have a slanted face and we want it to be aligned. Then we need to plug in the rotation. But these are different types currently in Blender for the foreseeable release. So we have a special node to convert the rotations, rotation to Euler. I hope in 4.1 you won't need this node, by the way. It would. What would happen? This transform node would also have the same. The rotation socket? Yeah. We didn't quite get to fit that into 4.0. Is that something you could do automatically? Or it has to be? It would, yeah. This wouldn't hurt. So now if we run this, it'll be aligned. Ooh, nice. So the surface. Can you undo? Does it get to the undo system in Blender? Yeah, yeah. It mostly works. Mostly. I like how you're just in chaos, say, mostly. Yeah, maybe you don't have to get into that now. Bugs can be fixed still for 4.0. That's the idea. Let's say another nice thing is we could expose the size. So you can edit that afterwards in the redo panel. So if we add a group input there, and let's say we even want to edit the size only as one value. Now if we run it again, nope, get to that later. It's size 0 by default, which we can fix. Nice. Change the size. And let's say we want to also change the number of vertices. And this is something you can actually do with the cube primitive. There's no vertex toggle. So we're in the world of new features now. Let's make this. So this is already much better than the chip A cube. So advanced. So advanced. There you go. This is like a subdivision. Yeah, yeah, it's just a subdivision level. So there you go. That's a simple node tool. But you know, so when you add, if you use the regular Blender features and add a cube, it gets selected and everything else is deselected. So what if we want to do that for our new cube? It turns out there's nodes for that too. And they're just called set selection. So if we set selection, right? Oh, that's thanks. And this used to be there, right? This is not new only for tools. This is another node that's only for tools. So there are five nodes that are only for tools. You can use selections, the 3D cursor, and face sets. We'll get to face sets in a minute. But in the future, I'd hope there'd be way more. And the reason you can't access these in modifiers is that a selection is really a feature for the UI. If you don't want just like doing this sort of thing to change what happens in the modifier. So that's why there's this separation. So if we want to select the new geometry and then unselect the old geometry, so now let's test this out. So this is what it's doing is as soon as you run this, the original geometry gets the boolean. So this elected and then it joins it with the previously selected. Exactly. There we go. There you go. Yeah. Easy with that one because it keeps subdividing. That's amazing. So how can I share this with my friends and family and studio? So in that case, the node tool here is only here because it's not an asset. So the way we organize them, like we mentioned before, is with the asset browser. And we already have these few assets shipped with Blender, but we want to edit the ones in the current file. So if we make it catalog, and let's say we want to put this in the add menu, we make an add catalog and mark the tool as an asset. And here it's still in the unassigned menu, but it's an asset now. So to assign it to a menu, drag and drop. And here it is. So we just moved it to the same spot. But the cool thing is that also works with the shift A add menu because they're the same menu. So now you can do shift A. And any new primitive you create will be in that menu. That's awesome. So when do we replace the cube? We got the cube 2.0 in Blender. I mean, eventually you could, right? Like you could replace a sphere, the primitives with sort of this system because it would be destructive. But the difference is that those operators work in object mode. There's only edit mode for now. Are there plans to make it into other modes? In next release, next couple of releases will probably expose these in object mode, too. The reason we didn't was to make it a little safer because, at least now they're only exposed in edit mode. Makes the change smaller for now. It's baby steps. Yeah, but it also has consequences for the way Blender is developed, too. Because the way it works right now is you add a geometry node. And if you want to support the same thing in edit mode, you have to write the same code twice to some extent. But if we can expose everything with nodes and ship these nodes with Blender, that's sort of game changing for developers, too. Yeah, for the community, too. Like, eventually. But also because they don't use any space, right? So it's very, very light. What happened, though? Because this is a node group. What happens if you use this as a modifier? Or is it not possible at the moment? Is it getting nodes? Because we have the 3D, we can try it. So in order for it to show up in this menu, we have to turn, say, this is a modifier. It can be both, modifier and tools. It can be both, yeah. So then it will ideally... And the add menu. Oh, that's right, it was right there. So if you try, it'll say, like, hey, this 3D cursor node doesn't work in a modifier. If we remove these... There's one spark node. Yeah, that should be fixed. But it's adding a cube. So what you can do is use the same node group and put it inside of a tool and inside of a modifier. That's generally a better way to organize them. And the same the other way around. Can I turn a modifier into a tool? Yes, yeah, with the same toggles here. Yeah, nice. What is the modes and types there? So modes means this is only accessible in mesh edit mode, but it can also be... These can also support curves. And to clarify, that is the new curves type, which has this different icon rather than the old curves type. Modes is sculpt mode. So theoretically, we can add a cube in sculpt mode. Oh, that's edit mode, sculpt mode too. Oh. The 3D cursor doesn't necessarily work as well in sculpt mode though. Well, now we removed it also. Oh, okay. This whole thing is broken. Yeah, but you prepared a file, right? Yes, so there's a file with a few more examples and we can get into sculpt mode here. Delete all of this. Okay, let's get to it. I think this is a grid with a bunch of faces. One of the things people always ask for in sculpt mode is more ways to build face sets. So I made a little create Voronoi face sets node group, which is really pretty simple. It's just a few nodes, but it makes this pattern of face sets. You can change the scale. Wow. And change the offset. So this would probably be a lot more interesting on an actual sculpt, but a lot of the time you want to vary stuff per face sets and ways to generate them procedurally, sort of nice. So this is just taking the position and offsetting it a little bit and putting it through a couple nodes, texture nodes, and then putting it into the set face set node. Then another thing people always ask for with sculpt mode is a way to store face sets and save them and look at them later. Sort of what you could do with face maps? Yeah, which are no longer in blender. 4.0? 4.0. So one of the things you could do is save a face selection or save face sets for later. Guess it's already there. So there's another small group I have in here, which is just four nodes. So it's just storing the face sets in an attribute and you choose the name. So store face sets and now there's a face attribute of integers and that's here on the mesh. So we can change the face sets however we want and mess them up. They're like, no, I want the old face sets back. Load them. It's really not all that is? Yeah, so it's just store. And how do you set the face set? Like, I don't see it in this setup. Oh yeah, so. Ah, yeah, face. The other one is load. Ah, okay. And that one is to set an existing one. Yeah. Okay, and the other one you are getting, yeah. So then I could actually have two saved at the same time. Store face set, call it face set two. And then we could change that again. If the name matches, it would override the previous one. Because those are all just attribute names. Say face set two. I think I overwrote that before. Yeah. But anyway, so you can have as many face sets as you want. And they're just stored as attributes. So they'll be propagated in edit mode, even if I go and extrude these. I'll still be able to load them later on. Wow. Face sets load. Yeah, they're back. So it also lets us do funny things like access face sets in edit mode, which was sort of impossible before, but now that they're attributes, we can do funny things like, say, let's add curves around the edges of the face sets. So here it's just adding a bunch of curves. And maybe, oh, let's make this bigger. There. What? So we're blurring them a little bit. We're increasing, decreasing the resolution. And now this is just geometry that we can edit too. So it's all real. This is instructive. Yeah, we didn't need to apply the modifier or anything. Let's see. Oh, so we can just take a look at that one briefly. Create curves around face groups. So there's a bit more going on here. Okay. Walk me through it. I am a new. Okay, so we get this attribute and this is the face set attribute, the one we stored here for a while ago. That's an input of whatever. Yeah. This is the node doing all the hard work. So it's saying, okay, we have this face set in the middle and another face set. What are the edges that are between those two groups of faces? It says face group because you. That's the general name. So this, it doesn't have to be face sets. It could be something you define procedurally in a modifier, for example. Okay. Then we create like a wire mesh from those edges. And then we smooth it a little bit with a blur attribute node and this is just exposed as the default. And we only blur the ones that aren't at the endpoint. Okay. So like there's an endpoint here, for example, and here we don't want to like shrink the curve. Yeah. And then we're converting the mesh back to a, or no, we're converting the curve back to a mesh and joining it. And that's an important limitation here is that we can't just output the curves and expect them to be joined with the mesh because we're in mesh edit mode. Mesh edit mode can't contain curves and mesh at the same time. So that's something to keep in mind. This node, it's very important. All right. If we were to run this in other modes, you would... This should work in Sculpt mode too. Sculpt mode, yeah. Let's test that. Shouldn't say that. No, well, I mean... Okay. Sculpt mode, face sets. There we have some face sets to use. Yes. Have a bit fewer. Okay. And then I can change this to work in Sculpt mode too. Now, great. It's there. Hey, it cleared all the face sets, but I think that's to be expected. Yeah. Well, maybe. No, probably not. You would have to set, but is that a bug or is that something that needs to be added to this to set the face sets again? I'm gonna say that's a bug. Huh. Nice. I like to hear that. It's like, always assume it's a bug before. I should usually start there. Guilty until proven innocent. Wow. And now it hair too. This is hair curves. Yeah. So this is, I think, yeah. There's one more thing I wanted to show besides this, but we saw before all these hair nodes. And currently these are just modifiers. You can add them in the add modifier menu, but- This is what it was added back a few versions ago in 3.3, I think. Although the new thing is that you can see them here. Ah, nice. But if we go, so here I've just taken one of these node groups and wrapped it in a tool. And like the viewport percentage doesn't really make sense for a tool because this is really designed as a modifier. So I exposed all of the inputs except for that. And if we go into edit mode for this curve object, there's a new hair menu because this is put into the hair, right? Yeah, there it is. Duplicate hair. So if we run that, it's just giving us a whole bunch more. The same spot. And that's the same thing you can do as a modifier, but now I can directly edit the, without having to go and apply the modifier. And you don't even have to, you could have this interactive. That's the idea. I think I only have one more thing to show. Yeah. And that's in, let's say in edit mode. Yeah, it's the equivalent for storing and loading face sets, but for edit mode selection. So if we select the top face, you could say select store face selection. And now that's stored as an attribute and I could select something else and then go and load it again. And this is something people have wanted for ages too. It's people use vertex groups to store face selections. And the same something people ask is like, we have vertex groups and face, well, we use to have face maps, which you can override with this. Edge groups, something people ask, same thing. Yeah, so we could probably create an edge group node group here instead of in 15 seconds. Yeah, if we, oh. There's a curve. Yeah, the edge domain isn't supported yet in 4.0. Might be able to squeeze that in as a bug fix, but maybe not. I'd like to hear that too. But that would be a way to make edge groups to be their own edge groups. Because you can create an edge attribute here. Exactly. It's just that one node that doesn't support it. So technically. So all these limitations Bunder has or features that it doesn't have that would make your workflow a lot faster can be solved with nodes. And it's easy to share them with just one file. And then they're put into menus. So. And this, oh, you have a one more. That's a new deform menu. And then we're just. This is like a randomized operator, but made with nodes. So this is just a noise texture. Nice. Okay. That should replace the randomized because randomized is just random without an actual texture. And that would be. So the node group is fairly simple too. Just a noise texture scaled and moved a bit. And it works on just the selection. Amazing. Wow. Well, is that all? That's all I have. That's all you have. Well, I mean, that's kind of quite a lot. So, well, first of all, thanks for showing us this. It's pretty amazing. This is the very first release with these, with node tools. There are no tools that are shipping with Blender 4.0. No. Okay. They're all like people that are your own, your own. Sorry, but you have to make your own. But also it's a good experiment for the community. Well, a social experiment, I think to see what the community are building. And also which one of those could be later putting Blender itself, like built-in. We'll definitely be looking to do that, especially for new areas like curves, edit mode. There's a lot of functionality we need there. So, yeah. What's next for node tool? Well, besides adding edge support to the set selection. Next things are probably things like being able to access the transform of the view and then the mouse cursor position and maybe even modal tools that are more interactive. Because currently it's like you run the tool, maybe you can redo it with the redo panel, but you can't move the mouse and draw something. So that's really the goal. An interaction with active tools with the toolbar. Yeah. Maybe with the introduction of gizmos at some point. Yes. I heard, I heard, I saw some things there. So the future is bright. Especially for the modeling module, which hasn't seen many updates in some releases. This is bringing it back to life, basically. This modeling tools can just be notes that the community create. And then get at it. Awesome. Well, thanks for dropping by. Thanks for having me, Pablo. I've been wanting, it's pretty cool to be behind the Blender today desk. On the, yeah, it's not as impressive as it sounds, but thanks. We should do this more often. All right. All right. Nominate a developer that I should bring next. Oh, oh, oh. I think Falk should give a little demo of the new grease pencil geometry nodes integration in 4.0. 4.1. Let's not promise for 4.0, 4.1. All right, I'll give that in mind. Thanks for watching. See you. See you. Bye.