@Erindale , another tip 😁: when you were checking to see if any selection were too small you didn’t have to separate the mesh (which is some i try to avoid. [messes up my indices, attributes, extra compute time, etc]). what you could do is the less well known node family called the "face groups to boundary edges" and "boundary edges to face groups". You first use the selection as a face group which you convert to boundary edges and then you convert it back; this gives you an ID per selection island, which you could usr with the accumulate field etc.
Probably the most informative video on geometry nodes ever. I decided to finally learn them and so far this has given me every answer I was looking for when it comes to Geonodes basics
Correction: Accumulate Field node's "Total" output does not tell you how many elemtns have been counted, it returns the sum total of whatever values it has counted up. When the Value is 1 as in mine, that means it added 1 per element which is why I worded it that way.
Your Boolean NOT is going to be the inverted selection but you still need to evaluate the mask everywhere. The selection sockets on Set Position, Store Named Attribute etc do limit the computation of the node operation just to the selection but, unfortunately, you can't get around evaluating where the mask actually is.
This video is full of points to learn which I've learnt just some of them so far. and by every time reviewing it I learn new thing, thank you for sharing this stuff.
Thank you so much for this. Both for excellently bridging the gap between a lot of other geometry node tutorials and Being Actually Useful, and also for using the word 'indices' repeatedly! Seriously, I had a use-case I'd been trying to get geometry nodes to work for me on for a while and every time I tried I watched some introductory tutorial, went to have a play, and got nowhere and gave up - and it was always down to being able to actually pick apart the mesh to do the work on the right edges. I've been going back to it while watching this and it's already 90% of the way to where I need it.
That’s great to hear! Thank you so much. This is one of those areas that’s just not sexy so a lot of people don’t want to talk about it but it’s got to be one of the most important things to know when working procedurally. Well done getting your project on track!
The tutorial was amazing as always, but finding out the most common and still yet least spoken issue and making a tutorial for it was even more brilliant! great job and thanks a lot dear Erin :)
@@Erindale I still watch all your videos in hopes to get that aha moment some day. Thank you for putting out quality contents for free. I'll definitely be purchasing your Simulation nodes course once I get the hang of this.
@@hereb4theendthis stuff fits squarely into networked muscle memory, so what you'll want to do is go from the top down. Understand the broadest purpose of geometry nodes, and then understand the broadest purpose of the different categories of them, and then look at a bunch of things people have done with them, focusing on the results. Then without even knowing exactly what all the nodes are, you have a framework for what you have and haven't seen done, and where you'll most likely find the components you're looking for to get the effects you want, along with the names of some of the ones people use all the time like instance on points and join geometry. Then it's a matter of drilling some stuff into your head over and over until you might not realize how much progress you made, so if you get imposter syndrome or feel like you're not doing anything, it might help to keep objective progress reports. I sometimes feel like I haven't done a lot, but then I remember when I was even clunkier, and all the surrounding circumstances I tend to not factor in as much as I should, and I build a little confidence and get my head back in gear
Thank you! Yeah it took me some time to get fluent with geo nodes and I realised that it's really all down to being confident in what selection you're making
Me too! I'm making a model of a prehistoric animal that had a lot of fins and was stuck trying to get it to just extrude the parts that fins are supposed to grow from.
Really great video. Just to note that for the 'expand selection' part, the Blur Attribute also does the job when you put it through a Vector Math (Ceiling) node, so no need for the Repeat Zone. (or you can multiply instead of ceiling for a more circular expansion).
grand. selections are an area where I seem to invent new struggles every time. this is super valuable and I'm sure I will trigger a few hundred plays in the near future. thanks for sharing!
Great Tutorial. Thank you! To be honest, your tutorials keep pushing me to the limits, so I always need to watch them at least two times. Once I get it, it's really satisfying...
Gold. First, I'm so happy that I've managed to figure out a lot by myself, but there are things that couldn't be possible without you and other authors on YT. Mostly because of terminology. The math itself is not that hard, but learning the names of math ops, as a kid, in Croatian still gives me headaches when learning GN watching the tuts English. It's a lot easier for me to build node systems for terrains because I am not limited by numbers that much and that's where my brain has all the artistic freedom it needs, and, basically, I often make tools from my experiments and happy accidents. Anyway, for the 100th time - thank you.
I'm going through this again and thinking how you, as an educator, would have a special place in the world of architecture. Maybe even as an architect. I know you had that sort of content in the past, but maybe getting more specialised in that area is even better than focusing on games/cg market/industry. Just a thought.
Wished I watched this waaaaaay sooner! really love this, the way you explained and went through this was great -- didn't even feel like a 1 hour video. Been following your other tutorials as well and have been trying to learn bit by bit through different use cases but really glad to have come across this as a general knowledge tutorial which I feel is incredibly helpful also once you start moving into more specific use cases where tutorials might not be available for.
Great video. Figuring out certain things about geometry nodes -- selections, how to conceptualize working on fields and operating on them with some precision -- has been the biggest hurdle so far. This helps.
Thank you, thank you, thank you! I am leaning Geo Nodes and up until 40th min I could understand and replicate almost everything from memory, but after that it become much much harder for my level - anyway will go systematically with you other tutorials and resources and try again in few weeks.
wahooo, I have zero knowledge in programming. But this course is just master class. Thanks a lot ! This base will let us learn geometry node. Great explanation, considering I'm French native speaking. again Thanks !!
Awesome tutorial. This is something what I was looking for. Giving a general information that can be used for problem solving instead just solving one problem. I'd like to see more tutorials like this in the future. This helps a lof for people like me who wants a deeper and behind the screen understanding for the nodes and math in general. I'd like to know more about the topology nodes as well. I'd like to know how you switched the connected socket from 'x' to 'z' so fast at 23:24.
a really concise roundup here thanks... i think it mostly just clicked for me now prob the last tutorial i need (he says) the docs on these are so bad (literally almost 0 examples, just a small description, if you're lucky a "hint"), so this is great
Great tutorial, this is not a very intuitive way to work but with practice, I can see myself using this. I really hope that GN developers make things easier in the future !
@Erindale at least when I used it, if you compare greater than 0 and you converted it to a float, I haven't maxed out before blender slowed down significantly. and yes, the iteration matches the steps perfectly. it uses topology to smooth, so smoothing depends on topology density and always follows the topology
Thanks Erindale, Your videos are really helping me do things impossible to achieve with built in modifiers. I hope you make a series about UV mapping especially mapping a "curve to mesh" geometry which uses a cyclic curve, I've been looking all around the web for a working solution but all of them work only in simple cases.
Try searching for it on my discord. It’s definitely something that’s been solved by a few of us. Fundamentally you want to create geometry that matches the topology in terms of face corners and then just transfer by index from one to the other.
@@Erindale I've tried this approach but the flat none cyclic curve results in 1 extra column of mesh indices compared to cyclic mesh. I'll definitely join the community and look for a solution. See you there.
@@Erindale I've tried this approach but the flat none cyclic curve results in 1 extra column of mesh indices compared to cyclic mesh. I'll definitely join the community and look for a solution. See you there.
It's hard going but I think I'm starting to get the hang of the concepts. I like the way it teaches the fundamentals, not just press this, press that but explains the thinking behind it. But I'm a long way from being able to do it on my own, maybe one day!
Thanks for the video! Ive been trying to work out if you can take a selection and transform it, ie move it, scale it and deform it. I'm aware all a selection is is a a 'True' or '1' against a vertex (or face etc) . So moving a selection means moving the value to the next vertex in a given direction. I know that if you want to move a selection, you're best to do it when your setting up the selection (i.e. if you're creating a selection with the raycast node). But it would be very useful to be able to take a defined selection and transform it. The only example of this type of transform I can see is the expand/contract operation covered in the video (others like higgsas have also implemented) It's hurting my brain trying to work out if its possible to do this, as your moving values across a mesh rather than moving the mesh itself! 🤯🤯
With mesh topology nodes you should be able to check if the neighbour is selected or not and change the current selection state based on that. The issue is that you’re going to need to do a bunch of selection-specific weights to make sure you’re checking against the correct neighbours for that specific selection on that specific topology… good luck 🥹
@Erindale that sounds horrific. haha! I had a vision of creating selections, using Boolean operators to 'shape build' the selections, then move / deform the built selections as a final step (tweak). Looks like this final step is going to be limited to expand/contract (I'm not mentally capable of implementing your suggestion). Appreciate the response! 🤝👌
Hey Erindale! Great tutorial and I learned a lot. Thank you very much! I have a question regarding selecting the UV Seam. I'm trying to select the UV seam to use it to split the edges in GN. My setup is basically getting the UVmap attribute from the group input and then run it through an evaluate on domain node with data type as vector and domain as points and then send it to a compare node and compare the UVmap original vector with the new evaluated one with a compare node with the Element-wise mode and Not Equal operation and capture the result from the compare node with a capture attribute node set to Boolean Data Type and Face Corner as Domain and use it as the selection for the Split Edges node. So far it seems to work in selecting the seam if the seam is going through a full loop cut but if it’s a partial loop cut it seems like it doesn’t select the final edge of the seam and it stays welded. I tried many different ways but I couldn’t get to select that last edge. Any idea how to get around this issue? Thanks in advance.
This is kind of a hack and it won’t be as performant as purely doing it via data, however, if you capture the original positions, split all the edges, set the positions to the UV map locations, merge by distance, and then set the position back to that original position, you’ll have the split edges where the seams have split the UV islands
Hey, great topic and deep dive. I noticed the pile of books behind you and since im a huge fan of 7 habits of highly effective people, i wondered what the rest of the books are.
In this stack I have Building a Second Brain by Tiago Forte which I definitely recommend. Also Deep Work and So Good They Can't Ignore You (by Cal Newport), The Freelance Manifesto (Joey Korenman), Eat That Frog (Brian Tracy), and Getting Things Done (David Allen)
Hi, I've done loads of geo nodes tutorials and I've found this to be by far the most useful (and as you said foundational), thank you. On completion of the final Flatten Region Exercise, I'd like to have a selection of just the flattened regions (on the final mesh) so I can instance on just these regions (trees, buildings, that sort of thing). I've had a go and failed, tried Sample Nearest, this selected the entire mesh. I know I would succeed using Raycast (by using 'Is Hit' with rays from the final mesh to the mesh islands (the flattened regions) displaced along the Z). Id like to avoid this way in order to keep the method general as I don't want it to break if I change the mesh size, orientation etc. Was wondering if there was a simpler/more elegant solution that sprung to mind? thanks.
Thanks so much! What I would do is capture the selection attribute before flattening the regions. That way you have it essentially fixed in a point in time. You can use this captured attribute after they’re flattened
Thank you! I think that GN is a amazing tool, but people at Blender foundation should start thinking about a more intuitive way of working with data. In my opinion lists should be the way to go. For example, Grasshopper for Rhino is just way easier to manipulate your data.
It’s a different methodology and both Houdini and grasshopper (which is essentially a pythonic data flow) were considered. Once you’re fluent with GN you’ll find that a lot of things work a lot better and more intuitively because you’re specifically not needing to work with the data yourself. It’s handled inherently in the workflow
Hey, @@Erindale. Thanks for your feedback! Yeah, I think I'm trying to figure out GN logics with a pythonic dataflow in my mind, as you said. I think it make things a little harder, but I'll figure it out with time. By the way, your tutorials are helping a lot! Thanks!
Is there a way to use multiple vertex groups so that I can cycle through defined sets of geometry? (I’m trying to adapt a setup that just breaks a mesh up based on each face to use larger pieces that are more representative of how the object might come apart) - I’ve knife projected the pattern I want onto it so creating the groups might be a bit laborious, but at least I’ll get the result I intend 😅
I would name your vertex groups with integers like 0, 1, 2, 3 etc. Something very simple like that. Then have a node group that has an integer on the front. Inside, plug that integer into a value to string node, then the string into a named attribute node. That'll let you cycle through the groups. If you want a more complex name then you could use an index switch node and plug multiple different strings into it and cycle through that way
Great tutorial as always, thank you for that. I have a question - why does the float to integer node even exist when the exact same operations can be done with the regular math node? Is it more lightweight, or is it something else?
Integers are not susceptible to float rounding errors. It's easy to think of numbers as numbers like how we see them but computers have to do some trickery to actually store them. That's why on the compare node when it's set to float, equals, there's an epsilon value. Asking a float when it equals exactly itself will often fail due to some small decimal part being different. Integers also take less memory to store so it can be an efficiency gain, especially on very dense geometry
The vast majority are the same, and all should still work. There may be some optimisations you can do with new nodes though. A lot of curve topology nodes and little hacks with the accumulate field node for example
Hey Erindale! Great tutorial and a lot of info. Thank you very much! I'm currently trying to make nodes for converting text objects to Neon Geometry. And stuck on the Neon ends. Which have to be bent backward from the letter plane. Main issue after i;ve deleted segment by using Endpoint Segment node for defining that segment. I have to move the ends backward. That is not a problem too with Set Position + Endpoint Segment nodes. But I also need to move that ends straight under the next points at the curve to make a straight angle between ends and letter plane. And I can't catch that, how do I get the location of the next points and use it for the positions of the ends. I'm a beginner here and might I've chosen the wrong way?
One potentially easy option would be to convert to mesh without a profile so you have an edge, use the extrude mesh node to extrude back as far as needed and then convert to curve to continue. You could even use the filet curve node to round that corner to the extrusion
Thank you Erindale! Many ways, and some of them are not so oblivious at my level. Looks like I have to learn the basics better. Then I will see.@@Erindale
Another superb tutorial, thank you. Using the Normal method, with either a Direction or Dot Product comparison, I can select lines (/faces) of latitude on a sphere or torus - but I can't figure out how to adapt that to select lines of longitude. Any ideas?
Take the normal, multiply by (1,1,0) to negate the difference in vertical direction and then normalize so each band has the same vector on it. The you can compare against a horizontal vector to make the selection
excellent as always - but what is the difference between a 'float to integer' node and math node set to floor? don't they both just truncate the thing (by which I think I mean chop off the bits after the decimal point)?
The difference is how the data is literally stored in memory. Floats have floating point precision error so it just depends on your requirements. Functionally they’re so similar that if often doesn’t matter. Storing as integers will be more optimised
My intuition tells me that you're a good guy but, I feel like I can only understand about 20% of your presentation. But I can appreciate that one can do powerful things with this Martian math. I have a background in traditional descriptive geometry which predates the computer age. Forgive me.
Make sure that you are connecting your viewer automatically with the hotkey so that it makes the right kind of socket. You see when I first drop on the white noise node that it shows black because it had been previewing an integer before. Then I recreate the connections on the float (grey socket) and then click again to get to the color (yellow socket)
Warning about selection using Indices: The devs warn not to do this. Their backend is whack, and when they make edits to nodes, it could result in completely different indexing. I have an 18,000 node model that uses selection by indexing exclusively... and Each version of blender breaks at least 3 nodes... The one that pretty much made me quit using blender: Split Edges worked perfectly... and Hans went and redid it so that it *RANDOMLY* reindexes the *entire* model for no reason. When I asked him not to... he added notes to the documentation not to use indexing as selection. -_- Purposefully breaking nodes just rubbed me the wrong way to the point of losing all motivation to work on any Blender related project. Years of work... broken by someone else... on purpose. (He didn't purposefully break my node, but he did purposefully change the node to explicitly rearrange indexes, which breaks any nodegroup that uses index as selection... and refused to care that it broke years of work.)
Indices in Blender have always been a bit hit and miss. If you ever did anything with python building meshes outside geometry nodes you'll have run into the same problems.
@Erindale , another tip 😁: when you were checking to see if any selection were too small you didn’t have to separate the mesh (which is some i try to avoid. [messes up my indices, attributes, extra compute time, etc]).
what you could do is the less well known node family called the "face groups to boundary edges" and "boundary edges to face groups". You first use the selection as a face group which you convert to boundary edges and then you convert it back; this gives you an ID per selection island, which you could usr with the accumulate field etc.
Huh I did not realise there was a boundary edges to face group node now 🙌
@Erindale I'm thinking about how many nodes you used and how two nodes could probably replace almost the whole thing 😄
This video is pure gold in the form of zeros and ones travelling through the internet!
Probably the most informative video on geometry nodes ever. I decided to finally learn them and so far this has given me every answer I was looking for when it comes to Geonodes basics
one of the best, if not THE best, yet underrated, advanced yet prescinded geometry nodes tutorial. So very useful and valuable info! Thanks erin!!!
32:17 - "Just a little bit of esoteric knowledge..." The very _best_ kind of knowledge there is!
Correction: Accumulate Field node's "Total" output does not tell you how many elemtns have been counted, it returns the sum total of whatever values it has counted up. When the Value is 1 as in mine, that means it added 1 per element which is why I worded it that way.
Is it possible to force blender´s geometry nodes to NOT calculate specific regions?
@@blendcreator exactly in that boolean math where erindale showed and told you can use them by ENGLISH there is a NOT option ;)
Your Boolean NOT is going to be the inverted selection but you still need to evaluate the mask everywhere. The selection sockets on Set Position, Store Named Attribute etc do limit the computation of the node operation just to the selection but, unfortunately, you can't get around evaluating where the mask actually is.
This video is full of points to learn which I've learnt just some of them so far. and by every time reviewing it I learn new thing, thank you for sharing this stuff.
Thank you so much for this. Both for excellently bridging the gap between a lot of other geometry node tutorials and Being Actually Useful, and also for using the word 'indices' repeatedly!
Seriously, I had a use-case I'd been trying to get geometry nodes to work for me on for a while and every time I tried I watched some introductory tutorial, went to have a play, and got nowhere and gave up - and it was always down to being able to actually pick apart the mesh to do the work on the right edges. I've been going back to it while watching this and it's already 90% of the way to where I need it.
That’s great to hear! Thank you so much. This is one of those areas that’s just not sexy so a lot of people don’t want to talk about it but it’s got to be one of the most important things to know when working procedurally. Well done getting your project on track!
The tutorial was amazing as always, but finding out the most common and still yet least spoken issue and making a tutorial for it was even more brilliant! great job and thanks a lot dear Erin :)
Haha thank you 😁
You legend. This is the single best geo nodes tutorial I have seen and I wish I had it years ago.
I use to think that I'll never get a grasp of Geometry nodes. But after watching this, I'm now certain of it.
😂😭
@@Erindale I still watch all your videos in hopes to get that aha moment some day. Thank you for putting out quality contents for free. I'll definitely be purchasing your Simulation nodes course once I get the hang of this.
@hereb4theend I recommend joining my discord server so you can ask people directly when you run into issues. It'll help accelerate you
@@hereb4theendthis stuff fits squarely into networked muscle memory, so what you'll want to do is go from the top down. Understand the broadest purpose of geometry nodes, and then understand the broadest purpose of the different categories of them, and then look at a bunch of things people have done with them, focusing on the results. Then without even knowing exactly what all the nodes are, you have a framework for what you have and haven't seen done, and where you'll most likely find the components you're looking for to get the effects you want, along with the names of some of the ones people use all the time like instance on points and join geometry. Then it's a matter of drilling some stuff into your head over and over until you might not realize how much progress you made, so if you get imposter syndrome or feel like you're not doing anything, it might help to keep objective progress reports. I sometimes feel like I haven't done a lot, but then I remember when I was even clunkier, and all the surrounding circumstances I tend to not factor in as much as I should, and I build a little confidence and get my head back in gear
The nodes are more scared of you than you are of them
Selections… the topic i most need for GN! Many thanks.
Thanks! I think this is going to help a few people out here
You are officially the best. Others abide our questions, you stand alone.
Thank you so much
oh shit this was exactly what i was looking for, for one of my projects. thanks a lot!
No one explains this complex node stuff better than you erin..
Thank you! Yeah it took me some time to get fluent with geo nodes and I realised that it's really all down to being confident in what selection you're making
Me too! I'm making a model of a prehistoric animal that had a lot of fins and was stuck trying to get it to just extrude the parts that fins are supposed to grow from.
Really great video. Just to note that for the 'expand selection' part, the Blur Attribute also does the job when you put it through a Vector Math (Ceiling) node, so no need for the Repeat Zone. (or you can multiply instead of ceiling for a more circular expansion).
grand. selections are an area where I seem to invent new struggles every time. this is super valuable and I'm sure I will trigger a few hundred plays in the near future. thanks for sharing!
That's great to hear! I see a lot of people struggling with selections, both beginners and professionals. You are very much not alone
@@Erindale thanks, glad the devs added a way to visualize selections a few versions back. Paired with this video, I should be able to get up to speed
you deserve a million subscribers
Thank you 🙏
Been waiting for a tutorial on geometry nodes that goes over selections for quite some time now, Thank you!
❤Jeeesus criest this is the BIBLE for starting work on geonodes... you are a hero. thanks a lot!!
As always , you're the only boss of the Geo nodes . 😊
Thanks so much
I could learn so much from you man, this was more than enough to properly introduce fundamentals for geometry nodes! Keep up the great work!
Thanks for the brilliant tutorial, I did not realise the subtle power of the accumulate field node until I watched this, cheers!
Yeah it's amazing! A lot of advanced setups use it
I had many selection questions, you answered them all, and added lots more to consider. Excellent tutorial! Cheers!
Glad to hear it!
Great Tutorial. Thank you! To be honest, your tutorials keep pushing me to the limits, so I always need to watch them at least two times. Once I get it, it's really satisfying...
I’m happy they’re useful to you!
Gold. First, I'm so happy that I've managed to figure out a lot by myself, but there are things that couldn't be possible without you and other authors on YT. Mostly because of terminology. The math itself is not that hard, but learning the names of math ops, as a kid, in Croatian still gives me headaches when learning GN watching the tuts English. It's a lot easier for me to build node systems for terrains because I am not limited by numbers that much and that's where my brain has all the artistic freedom it needs, and, basically, I often make tools from my experiments and happy accidents. Anyway, for the 100th time - thank you.
I feel very lucky that I learned maths through Blender. I only really have the visual understanding of the functions. I’m glad the contents useful!
I'm going through this again and thinking how you, as an educator, would have a special place in the world of architecture. Maybe even as an architect. I know you had that sort of content in the past, but maybe getting more specialised in that area is even better than focusing on games/cg market/industry. Just a thought.
Great video. I will definitely be returning to this for review for my projects in the future.
Wished I watched this waaaaaay sooner! really love this, the way you explained and went through this was great -- didn't even feel like a 1 hour video.
Been following your other tutorials as well and have been trying to learn bit by bit through different use cases but really glad to have come across this as a general knowledge tutorial which I feel is incredibly helpful also once you start moving into more specific use cases where tutorials might not be available for.
Thank you! Yeah as much as I love making the specific tutorials, it can be difficult to extract the general lesson as a learner
Great video. Figuring out certain things about geometry nodes -- selections, how to conceptualize working on fields and operating on them with some precision -- has been the biggest hurdle so far. This helps.
Thanks for this! Seeing what’s harder for people to grasp is very useful for me making content
Thank you, thank you, thank you! I am leaning Geo Nodes and up until 40th min I could understand and replicate almost everything from memory, but after that it become much much harder for my level - anyway will go systematically with you other tutorials and resources and try again in few weeks.
This has really turned on a lightbulb in my mind. I've learnt so much, thank you
I’m glad! Good luck
Many thanks! these kind of videos that compile methods are easy to get back to
wahooo, I have zero knowledge in programming. But this course is just master class. Thanks a lot ! This base will let us learn geometry node. Great explanation, considering I'm French native speaking. again Thanks !!
Good luck with your learning!
Thank you! This is an incredibly useful walk through of how selection works!
Glad it's useful!
Awesome tutorial. This is something what I was looking for. Giving a general information that can be used for problem solving instead just solving one problem. I'd like to see more tutorials like this in the future. This helps a lof for people like me who wants a deeper and behind the screen understanding for the nodes and math in general. I'd like to know more about the topology nodes as well.
I'd like to know how you switched the connected socket from 'x' to 'z' so fast at 23:24.
Alt+S cycles the input noodle through the sockets
Super useful tutorial. Had to watch a few times and keep Geo nodes open on Blender to try selection tools at the same time.
This is definitely something worth learning well
Thank you for this incredibly informative video! NOW I feel like I’m starting to get it. I can’t wait to check out your courses
Thanks! Enjoy!
Excellent tutorial! That was extremely helpful and gave me solutions to some frustrations I'm having learning geometry nodes. Thank you!
I’m glad it helped!
a really concise roundup here thanks... i think it mostly just clicked for me now prob the last tutorial i need (he says)
the docs on these are so bad (literally almost 0 examples, just a small description, if you're lucky a "hint"), so this is great
i was looking for tutorials on this and Boom! this was posted minutes before i typed in my search A Big thank you!!
Nice! The secret art
This is wonderful! Thank you very much for sharing your knowledge while explaining the thinking behind the choices. I've learnt a lot from you!
Absolute gold video
Great tutorial, this is not a very intuitive way to work but with practice, I can see myself using this. I really hope that GN developers make things easier in the future !
Erin Is my blender node HEROO!!!! thanks for uploading your videos bro :) awesome :)
This is great, I love the breakdown of how/why things are working the way they do.
Thank you, glad you like it!
I really hope they will add a list node and list methods soon, great tutorial again! very grateful
There's definitely been some murmurs around that but I don't see it happening soon 🥲
Gonna send people this way for geometry node tips this is super useful reference material thank you :)
Super good, must watch video!
Thank you, enjoy
You're an absolute legend
I don't think I can thank you enough for this tutorial it's so helpfull
Glad to hear that!
@Erindale , Quick tip. use the blur attribute node for expanding selections. no loops needed 😉
I mention it but the iteration count correspond perfectly to the expansion steps?
@Erindale at least when I used it, if you compare greater than 0 and you converted it to a float, I haven't maxed out before blender slowed down significantly. and yes, the iteration matches the steps perfectly. it uses topology to smooth, so smoothing depends on topology density and always follows the topology
(To be clear, I haven't maxed out selection expansion at all even after blender slows down)
Thanks Erindale, Your videos are really helping me do things impossible to achieve with built in modifiers.
I hope you make a series about UV mapping especially mapping a "curve to mesh" geometry which uses a cyclic curve, I've been looking all around the web for a working solution but all of them work only in simple cases.
Try searching for it on my discord. It’s definitely something that’s been solved by a few of us. Fundamentally you want to create geometry that matches the topology in terms of face corners and then just transfer by index from one to the other.
@@Erindale I've tried this approach but the flat none cyclic curve results in 1 extra column of mesh indices compared to cyclic mesh.
I'll definitely join the community and look for a solution. See you there.
@@Erindale I've tried this approach but the flat none cyclic curve results in 1 extra column of mesh indices compared to cyclic mesh.
I'll definitely join the community and look for a solution. See you there.
I learn tons of new stuffs about geonode in your video,thanks a lot,by the way,I'm a big fan of you from China
Thank you so much!
Thanks so much Erindale, always wondered about selection in geo nodes. Very useful!
My pleasure!
Oh wow @somartist you also do blender besides painting?
yes, I always been a secret 3d artist too, and it comes in handy for various projects I have :D@@edwinluthfisaputra107
This is going to be super useful thank you!
Thank you!
It's hard going but I think I'm starting to get the hang of the concepts. I like the way it teaches the fundamentals, not just press this, press that but explains the thinking behind it. But I'm a long way from being able to do it on my own, maybe one day!
It’s all just practice and repetition. The foundations will all start clicking together ✌️
非常有意义的示教,GN第一事,选择要操作的内容。太赞了👍👍👍👍👍
Thanks so much!
你会说中文,你是如何理解教程的?
@@danialsoozani 我是中国人😁即便只是看视频,也毫无问题,演示的图形本身就是非常明确的语言!
I love you man, I love you...
friend you really explain very, very well thank you very much for sharing your knowledge God take care of you
Thank you!
Wait this video for a long time! Really thanks
Every other geometry node youtuber is playing checkers and you’re playing chess holy cow
Thanks for the video!
Ive been trying to work out if you can take a selection and transform it, ie move it, scale it and deform it. I'm aware all a selection is is a a 'True' or '1' against a vertex (or face etc) . So moving a selection means moving the value to the next vertex in a given direction.
I know that if you want to move a selection, you're best to do it when your setting up the selection (i.e. if you're creating a selection with the raycast node).
But it would be very useful to be able to take a defined selection and transform it. The only example of this type of transform I can see is the expand/contract operation covered in the video (others like higgsas have also implemented)
It's hurting my brain trying to work out if its possible to do this, as your moving values across a mesh rather than moving the mesh itself! 🤯🤯
With mesh topology nodes you should be able to check if the neighbour is selected or not and change the current selection state based on that. The issue is that you’re going to need to do a bunch of selection-specific weights to make sure you’re checking against the correct neighbours for that specific selection on that specific topology… good luck 🥹
@Erindale that sounds horrific. haha! I had a vision of creating selections, using Boolean operators to 'shape build' the selections, then move / deform the built selections as a final step (tweak). Looks like this final step is going to be limited to expand/contract (I'm not mentally capable of implementing your suggestion). Appreciate the response! 🤝👌
Thank you sooo much this is exactly what I was looking for. No really
Thank you so much! This tutorial was extremely helpful. 😺
Great lesson -- thanks for sharing.
Insane tutorial.
Great explanation.
Hozier of the Blender world. I will not elaborate
I think this might be the one video that will make everything click! 100x (Y)
I hope so!
Hey Erindale! Great tutorial and I learned a lot. Thank you very much!
I have a question regarding selecting the UV Seam. I'm trying to select the UV seam to use it to split the edges in GN. My setup is basically getting the UVmap attribute from the group input and then run it through an evaluate on domain node with data type as vector and domain as points and then send it to a compare node and compare the UVmap original vector with the new evaluated one with a compare node with the Element-wise mode and Not Equal operation and capture the result from the compare node with a capture attribute node set to Boolean Data Type and Face Corner as Domain and use it as the selection for the Split Edges node. So far it seems to work in selecting the seam if the seam is going through a full loop cut but if it’s a partial loop cut it seems like it doesn’t select the final edge of the seam and it stays welded. I tried many different ways but I couldn’t get to select that last edge. Any idea how to get around this issue? Thanks in advance.
This is kind of a hack and it won’t be as performant as purely doing it via data, however, if you capture the original positions, split all the edges, set the positions to the UV map locations, merge by distance, and then set the position back to that original position, you’ll have the split edges where the seams have split the UV islands
@@Erindale This will work for now. Thank you so much.
first time seeing ur tutorial on my laptop (instead of my phone)... Holy fuck thats a huge cursor...
Go back to your phone 😭
@@Erindale dude my phone was dead i couldn't wait to watch ur video so i just used my laptop instead ahahaha
Hey, great topic and deep dive. I noticed the pile of books behind you and since im a huge fan of 7 habits of highly effective people, i wondered what the rest of the books are.
In this stack I have Building a Second Brain by Tiago Forte which I definitely recommend. Also Deep Work and So Good They Can't Ignore You (by Cal Newport), The Freelance Manifesto (Joey Korenman), Eat That Frog (Brian Tracy), and Getting Things Done (David Allen)
I've not read them all but they're my motivators when I fall off the horse
Suzanne from procedural nodegroup... how come?? You saved somehow the original vertex positions to values? or or or what? :)
Yeah no clever shortcuts, I just copied all the vertex positions into a node group 😂 still no idea why she wasn't included in the mesh primitives
Hi, I've done loads of geo nodes tutorials and I've found this to be by far the most useful (and as you said foundational), thank you.
On completion of the final Flatten Region Exercise, I'd like to have a selection of just the flattened regions (on the final mesh) so I can instance on just these regions (trees, buildings, that sort of thing).
I've had a go and failed, tried Sample Nearest, this selected the entire mesh. I know I would succeed using Raycast (by using 'Is Hit' with rays from the final mesh to the mesh islands (the flattened regions) displaced along the Z). Id like to avoid this way in order to keep the method general as I don't want it to break if I change the mesh size, orientation etc.
Was wondering if there was a simpler/more elegant solution that sprung to mind? thanks.
Thanks so much!
What I would do is capture the selection attribute before flattening the regions. That way you have it essentially fixed in a point in time. You can use this captured attribute after they’re flattened
10/10 thank you so much for this!
this is great, thank you!
very useful~ good. thank you
Thank you!
Thank you! I think that GN is a amazing tool, but people at Blender foundation should start thinking about a more intuitive way of working with data. In my opinion lists should be the way to go. For example, Grasshopper for Rhino is just way easier to manipulate your data.
It’s a different methodology and both Houdini and grasshopper (which is essentially a pythonic data flow) were considered. Once you’re fluent with GN you’ll find that a lot of things work a lot better and more intuitively because you’re specifically not needing to work with the data yourself. It’s handled inherently in the workflow
Hey, @@Erindale. Thanks for your feedback! Yeah, I think I'm trying to figure out GN logics with a pythonic dataflow in my mind, as you said. I think it make things a little harder, but I'll figure it out with time. By the way, your tutorials are helping a lot! Thanks!
Thanks Erindale! Legend.
I have a question... how would you grow a selection on a curve/edge? The technique you showed only seems to work on faces.
Use a blur attribute node and ceiling the output. Each blur step will walk one more element
Is there a way to use multiple vertex groups so that I can cycle through defined sets of geometry? (I’m trying to adapt a setup that just breaks a mesh up based on each face to use larger pieces that are more representative of how the object might come apart) - I’ve knife projected the pattern I want onto it so creating the groups might be a bit laborious, but at least I’ll get the result I intend 😅
I would name your vertex groups with integers like 0, 1, 2, 3 etc. Something very simple like that. Then have a node group that has an integer on the front. Inside, plug that integer into a value to string node, then the string into a named attribute node. That'll let you cycle through the groups. If you want a more complex name then you could use an index switch node and plug multiple different strings into it and cycle through that way
@@Erindale ahh yes, so simple, this is why I’ll always struggle with programming 😅😂
Nice one, that’ll get me on the road 🙌🤘🙏
Great tutorial as always, thank you for that.
I have a question - why does the float to integer node even exist when the exact same operations can be done with the regular math node? Is it more lightweight, or is it something else?
Integers are not susceptible to float rounding errors. It's easy to think of numbers as numbers like how we see them but computers have to do some trickery to actually store them. That's why on the compare node when it's set to float, equals, there's an epsilon value. Asking a float when it equals exactly itself will often fail due to some small decimal part being different. Integers also take less memory to store so it can be an efficiency gain, especially on very dense geometry
@@Erindale Thanks a lot, that cleared it up for me.
This is fantastic. Is there any changes to these methods in 4.2?
The vast majority are the same, and all should still work. There may be some optimisations you can do with new nodes though. A lot of curve topology nodes and little hacks with the accumulate field node for example
excellent
Thank you!
Thank you... So much ❤❤❤❤
Hey Erindale! Great tutorial and a lot of info. Thank you very much!
I'm currently trying to make nodes for converting text objects to Neon Geometry. And stuck on the Neon ends. Which have to be bent backward from the letter plane.
Main issue after i;ve deleted segment by using Endpoint Segment node for defining that segment. I have to move the ends backward. That is not a problem too with Set Position + Endpoint Segment nodes. But I also need to move that ends straight under the next points at the curve to make a straight angle between ends and letter plane. And I can't catch that, how do I get the location of the next points and use it for the positions of the ends.
I'm a beginner here and might I've chosen the wrong way?
One potentially easy option would be to convert to mesh without a profile so you have an edge, use the extrude mesh node to extrude back as far as needed and then convert to curve to continue. You could even use the filet curve node to round that corner to the extrusion
Thank you Erindale!
Many ways, and some of them are not so oblivious at my level. Looks like I have to learn the basics better. Then I will see.@@Erindale
Another superb tutorial, thank you. Using the Normal method, with either a Direction or Dot Product comparison, I can select lines (/faces) of latitude on a sphere or torus - but I can't figure out how to adapt that to select lines of longitude. Any ideas?
Take the normal, multiply by (1,1,0) to negate the difference in vertical direction and then normalize so each band has the same vector on it. The you can compare against a horizontal vector to make the selection
@@Erindale Thanks - bit strange!?! , but that works well enough!!
Vid is great 👍 but what about any inner parts like a bottle?
You could use raycast to see if you will shoot out into empty space or hit the other inside face
nice tutorial :)
excellent as always - but what is the difference between a 'float to integer' node and math node set to floor? don't they both just truncate the thing (by which I think I mean chop off the bits after the decimal point)?
The difference is how the data is literally stored in memory. Floats have floating point precision error so it just depends on your requirements. Functionally they’re so similar that if often doesn’t matter. Storing as integers will be more optimised
@@Erindale thanks Erin - six minutes to reply to a question on a four month old video is very impressive :)
I can't seem to get around comprehending the accumulate field node.. What's the idea behind it? 🤔
It's a sum loop. It will look at the attribute on each mesh element and add it up in order. Johnny Matthews' has a good video on it (he made it)
You are amazing! Are you a mathematician?
Nah I learnt everything from Blender!
My intuition tells me that you're a good guy but, I feel like I can only understand about 20% of your presentation. But I can appreciate that one can do powerful things with this Martian math. I have a background in traditional descriptive geometry which predates the computer age. Forgive me.
Geometry Nodes is one of those tools that takes a bit of mental gymnastics to get into but once you crack it, it’ll feel much more intuitive
@25:36 - How do you make each island have a different color? Mine are all grayscale...
Make sure that you are connecting your viewer automatically with the hotkey so that it makes the right kind of socket. You see when I first drop on the white noise node that it shows black because it had been previewing an integer before. Then I recreate the connections on the float (grey socket) and then click again to get to the color (yellow socket)
@@Erindale It worked - thank you very much.
🔥🔥🔥
How would you store a selection made with an empty cumulatively as the empty is moved around?
Using simulation nodes and adding the selection to the current named attribute and storing it with the same name
Thank you! @@Erindale
my viewer node turns off whenever I select the empty.
how can I keep viewing it?
Make sure you pin the node tree as the viewer is disabled when the node tree is not in focus
@@Erindale thank you!
So many hotkeys were used, yet I can't see key press :'(
Yeah this was while Screencast Keys addon was not working with the new Blender version
🙏
Why isn't the Edge Angle node called Face Angle?
OK, I've just realised the answer to my question. It's the angle at an edge (at the junction of two faces)...
Bloody good, by the way.
Warning about selection using Indices: The devs warn not to do this.
Their backend is whack, and when they make edits to nodes, it could result in completely different indexing.
I have an 18,000 node model that uses selection by indexing exclusively... and Each version of blender breaks at least 3 nodes...
The one that pretty much made me quit using blender: Split Edges worked perfectly... and Hans went and redid it so that it *RANDOMLY* reindexes the *entire* model for no reason. When I asked him not to... he added notes to the documentation not to use indexing as selection. -_-
Purposefully breaking nodes just rubbed me the wrong way to the point of losing all motivation to work on any Blender related project. Years of work... broken by someone else... on purpose. (He didn't purposefully break my node, but he did purposefully change the node to explicitly rearrange indexes, which breaks any nodegroup that uses index as selection... and refused to care that it broke years of work.)
Indices in Blender have always been a bit hit and miss. If you ever did anything with python building meshes outside geometry nodes you'll have run into the same problems.
This guy has the same demeanor as Jenny Nicholson, in multiple ways.