 Okay, so now we have divisions along our grid. All right, so this each one of these particular primitives here represents Wood Plank that we're going to extrude out and we're going to detail and stuff like that, okay? But what I want to do now is I want to actually send this through another another loop because on each one of these particular Rows I actually want to offset the wood planks. I don't want, you know, these guys to be completely lined up with each other All right, so let's take a look at how to do that. This is going to introduce a new concept with our for each loop here, and that is the create meta-import node All right, so this node actually contains quite a bit of useful information when it comes to Using these for loops and you'll find that you're going to start using them a ton Okay, especially when you get in a procedural like randomization of things because we need some sort of value that moves through time Okay, so before I go too much farther with that whole concept. Let's talk about this a little bit more All right, so we have this meta data node now Okay, and if we were to come down to the geometry spreadsheet All right, so if you don't have that open you can always hit the little plus button right here it's a new pain tab type and You can then select the geometry spreadsheet and it'll pop up in whatever pain that you did that in, okay? But if we go into that geometry spreadsheet, we hit this little button right here. This is the detail view All right, this is an attribute that we can actually attach to each particular object a full object all right, but this in this case I have the meta data node selected and you could see it has some useful information on it all right So it has this iteration Attribute and it has this num iteration attribute Okay, so and if I were to go and set this to single pass and then select that meta Data node you can see the iteration is set to zero So one thing I want to do is I want to watch this move here when I move the slider down here But you notice that when I select a new node All right, it changes the view the scope What and what attributes I can see because these attributes are basically tied to wherever they are in the stream of nodes Okay, so I want to be able to just look view this data, so I'm gonna hit this little pin button right here Okay, and then select that Block in note there and you can see now our iteration is changing. There's some value. That's moving through time All right, plus we also get this num iteration so we can see how many iterations we have total inside of all this entire loop Okay, so very useful information what I'm going to do next is come in here and name this So I'm going to call this the main loop All right and very important to name these guys because you're gonna end up when your network start to get bigger You're gonna end up with a lot of these metadata nodes So you want to be able to reference them and know what kind of know which loop it is for so I'm gonna call this the main loop Okay, so our next task in here Let me turn off this single pass here. Our next task is to offset these guys So I want to randomly offset each row. All right, and that'll offset all these planks from each other But it'll make sure that it's still tiles left and right Okay, so to do that what I'm gonna do is drop down the transform node So I hit tab all right started typing in transform and now I have this transform node So I'm gonna wire it into our network that we're building up here And what I want to do is come up to the translate So now if I were to add value in this X direction you could see that all of my Rows are moving together and that's not what I want. What I want to do is I want to use this main loop I want to use the information in here this iteration value Okay, so I want to pull that information in so how do we do that? Well, we have to use another expression function called the detail function So because this is a detail attribute. So what I want to do is start typing out detail parentheses and this time I have to use a string Okay, and that's because I don't have this data coming into this input So I need to reference this node. So I'm gonna type two quotation marks and type in dot dot forward slash And then type in main loop And that gets us up and out of this node and now we can reference any node that's in this space that relative space there So main loop Okay, and then I'm gonna put a column in there and then you can see in the Attela sense help here We want another string. Okay, so you can see down the examples. It's looking for a node And then it's looking for an attribute name and then the component mask for that Okay, so the the attribute name is this down here this iteration Okay So let's put into quotation marks because it's expecting a string and we're gonna type in iteration And then we're gonna put another comma and then we just want the first component because it is only a size of one over here All right, meaning it's just a single value It's not a vector or an array of values kind of thing. All right So once we do that you'll notice that we are moving over one each time All right, we get this nice stair-stepped look, but that's not really what I'm going after I actually want to randomize this. All right. Well, this will work Just fine. It's a little still a little too uniform for my liking. And so what I want to do is I want to randomize this Okay, so this what we can do is we can put it inside of a ran function All right, so I'm taking this whole detail expression function and putting it inside of a random function There we go. So now we're getting a little bit offset But now what I want is the ability to control how intense that offset is. All right So this is fine This random function is great because it returns a value between zero and one for us or negative one and one All right. And what I want to do is I actually want to Give it a new range. I want to take that new range. All right, and I want to expand it into User-defined values. Okay, so I'm going to type in fit another expression function And you can see that we're taking in a bunch of floats. All right, so we have the current number, which is this this random detail Result. All right, we have our old minimum our old maximum and our new minimum and our new maximum. All right, so I'm going to type all this in here for you guys so you can see so I'm going to say Comma zero to one. So that's our old minute max. All right, so this random function return zero to one Okay, and then I want to remap it to a value of let's say negative four to four and then put in our final parentheses You there you can see that it pushes it in and out much farther All right, what's great about this once we get later into the course here We'll expose these values up to our HD a currently it's not an HD a but we'll expose those values up here So we can just change it at the root level I'm making it really fast and really efficient All right, so there we go. We just learned how to use the main loop How to access the information from it and how to randomize our offsets? So now we get something a little bit more natural when it comes to these wood planks All right, so let's move on to the next lecture and just keep detailing these out