 Hola community, welcome to the first video from the Blender Studio in 2021. This one is for Fields. What is Fields? Why are Fields? Jump to Nodes Fields. This is something entirely new that's came to Blender 3.0 that took the first ideas we had for Jump to Nodes and changed it upside down and made it more complex, a bit more flexible, a bit more complicated in some ways but hopefully overall it works better and it's easier for people to learn how to use. And that's what we're here for. That's what we're here for. So you wrote a blog post last month actually. Last month Jack was here, Jack Luke, and he was working with Hans Goody on a prototype for this concept of Fields. Before we had what we're calling pure data flow-centric approach, which you have the geometry and every node will just operate into the geometry and then with the fields that is that some nodes can operate into the geometry, let's call them jump to nodes while other nodes are just passing along functions to be then processed and evaluated in those other nodes. And this changes a lot, this changes how we read old files, so we expect people to have to adapt to the new system. Yes, that's what we're going to do today. Okay, so let's see. I downloaded the latest blender, right? If I just downloaded it from the build button, I have it already and I'm going to download a file from Simon Thomas that is also available for download in the geometry nodes page. It's one of the test files for the first iteration, right? For scattering. And this was the first test file we officially published, so that's why it's a nice example. It's simple to the point. Yes, so first thing, okay, I know nothing about this. I see that it's actually working in a way. There's some scattering happening, but in the node editor, I see a bunch of warnings. Not only the node editor, if you go to the modifier, you should see there as well. No tree legacy. No tree legacy node. If you mouse over the warning, it should also tell you when you should start getting concerned about it. So basically, the legacy nodes will be removed at some point before blender four in two years from now. Okay, so before two years, this will be gone. How do I know which ones are legacy? Is there a list or are you just going to show the warning? Basically, every one of the old ones, so the legacy ones, they're going to show the warning. And if you try to add a new node, it's simply going to only give you the option to add the new nodes, the non-legacy ones. Okay, so I can see the attribute list is pretty much empty compared to what it used to be. That's a good question, Pablo. That's the big change we have when it comes to pipeline workflow. With the old system, you'll have every node referring to an attribute in the node itself. So in this example, you can see the scale is an attribute there. The pebbles large in the point distributor is an attribute. And with the field system, and back then we needed specific attribute nodes to operate on those. So in this case, we're using the attribute random node to populate an attribute with some random values. So in this case, I'm taking the vertex group pebbles large or L and then I randomizing the scale and the rotation. How can I do this in the new system? How can I convert this? It's not automatic, right? It's not automatic yet. Okay. When you say that we might remove those before 4.0, is that if at some point someone from the community can act, help us with a backward compatibility, some do versioning code, can even remove them automatically. Right now I have to do it manually, though. Okay, so teach me how to do it. First step. So the first thing you need to be able to do is to have the attribute you want to use as a mask. So in this case, the pebble large exposed outside the modifier. Okay. So the easiest way to do it, I'll say start adding the point, the new distribute points into face node. So the new point distributor node. Okay, so this is a point distributor. I don't need to replace it with the new one. So I can just start for this tribute and it's called distribute points on faces. It didn't change the name. Yeah, we took this as an opportunity to make the name a bit more accurate. And as you can see the parameters change a little bit as well. This year, look into the random option. If you go back to the Poisson disk mode, even that you can see, you know, now we have the selection as a new option. And most of the nodes, almost all of the selection, all of the geometry nodes will be able to support selection to the future. Because any operation that you're doing that the geometry can easily be done in a subset of the geometry. Wow. So you can limit it and this is like, why is it look different? What is with all the shapes? So many questions. Let's start with the shape one simple. We have three shapes that you see there. You see they have the circle one, which represent data. A data is something that can be inspected. So, Francis, if you connect the input geometry into that node and then you mouse over the points, we get exactly... Oh, I need to connect this to the output. Makes sense. To the output. Let's say to the end. Just connect it instead. If you inspect the points, it's going to tell you exactly what is there. The data has been passed along the noodle. Same things for normals and rotation. Oh, you're not using it so it's not being computed yet. For performance, I guess. For performance. Of course, it's also the same data you can inspect in the spreadsheet editor. If you connect this geometry to the... To a viewer. To the viewer node. I don't have to do it. I want to do it. Okay. I see there is 432. That is correct. Okay. Now what? Now, the other shape you have is a triangle. Those are fields. Maybe it's easier to explain than... By connecting it to something. By connecting it to something. Okay. So what can I do? First, I have the distributed points and then I need to instance this. I guess I need to instance the... I could for instance. For instance to instance. The easiest way to see fields maybe later in this example, you're going to have a few fields which really work with the new system. Yeah. But fields basically, if you connect the normal to a... The rotation to a node that to the math node. To a math. Vector math? Vector math. Okay. So I can connect this. Yep. And then you connect this vector to the... Okay. Usually I'll put... Maybe it'd be easier if you just put to the point the instance on points already. Yeah. You can see that. Okay. And then I connect to the rotation and I pass on the points. Yep. Do we get to see the viewport there? Yes. We're looking at it. Yes. Send the viewport. Yeah. Now we're not instance anything yet. That's the other new thing about this node. So before we have the point instance node that you could pick whether you want to instance an object, a collection, or... Or geometry. ...is comparing the old one. So you could only choose collection geometry or object. Geometry is not even new for people that were on 2.93. Oh, yeah. That is in 3.0. Which is fantastic. So you can basically instance any geometry. So for instance create a cube node. So geometry primitives cube. Yep. And then connect the geometry to the instance. Oh, just like that. Yep. So we can be able to see then maybe scale them down a little bit. I was going to even to scale the instance but that's good. Ah, to scale the instance. No, no. I'm a pro already. But now the rotation for instance you can try to... To change it. You can just add. Something's going to happen. Yeah. Yeah. It's adding to the X, right? To the X rotation or Z rotation. Yeah. And in this case you can just think, okay, just the normals are being passed through. But first you should try to mouse over the diamond socket. It doesn't really evaluate yet. So it still doesn't know what's its value. It's only going to know the value when it gets all the way to the node that's using it. To the rotation. But basically it says it's depending on saffial. It's depending on the normal field. So interesting. Yeah. This name might change. These two tips are going to get redone a little bit. I'm actually getting the normals instead of the rotation. There you go. What else I can explain? Even there's something interesting already. If you go and change... Let's say... That's something we're going to use in this example. Let's say you want to have the scale a bit randomized. Yeah. Before you had to use the attribute randomizer. Yeah. Now I can just go to the... With this thing, for example. Yeah. Can you just do shift A and go to... It's an input random, I believe. No. Random is... I forgot where it is. So just type it. Random value. Random value. Now if you just connect this to the scale. To the scale, I guess I need to be a vector, right? You don't have to. If it has a float, it's simply going to be using the same value for all of them. So if you want a uniform scale, that's what you do. Oh, nice. As you can see, you can play with the range. However, right now if you change the amount of pebbles you are distributing. So if you change the density maximum or distance minimum. You see there's a lot of popping in and out. Yeah. That's because we are not using the stable ID build we have there. That's a bit of a new concept. Stable ID. This guy. Yeah. So if you just connect the stable ID to the random value. To the random value. Any value. To the random value node in the ID input. Yeah. Because by default, and that's the something about fields that work the same way for shader nodes. Basically, if it has nothing connected, it has always a fallback. Yeah. In this case, the same way have a UV as a fallback, a lot of the vector input in shaders. In this case, basically the fallback is the ID itself. The thing we see in the spreadsheet editor. But in this case, you want something else which is called a stable ID. Yeah. So each point has its own ID that I can use for anything. Cover coloring for anything. It's an attribute, right? Oh, I can even mouse over and get the value. So it's stable ID anonymous attribute. Anonymous means that I didn't name it manually, right? It means you didn't name it. It's automatic. Yes. Behind the scenes. It also means it doesn't show up in the spreadsheet editor because it has not a name per site. Okay. So did you see how stable it is now? Yeah. Well, actually I was just changing this value and it doesn't jump anymore. If I mute this thing. Control out. Control out. And it's something that even Simul was proposing if you could find a way to have the stable ID as the default for those. Yeah. But it's still being discussed. Yeah. It's super nice. Cool. So we saw, well, but the interesting thing about fields is that let's say you have another instance on points node connected to the same points. Let me move everything here. So let's say we have what? Sorry. Another instance on points. Yeah. And then you connect, you know, maybe create a different set of points to be used. Different set of points. Yeah. Just duplicate this node and just change its parameters to something else. It doesn't matter. Change the seed as well just so it's more random. More random. Yeah. And I can just join this. Oh, yes. Do you have the Wrangler enabled? No. Oh, string join. Boiler alert. That's something new that also is incoming. I didn't have the Wrangler Adam enabled. So, okay. I have the points. I need to instance. Can I instance the same queue or do you want to? Instance something else just so we can tell them apart. So the sphere. The icosphere. Well, I have a bunch of objects. Cool. There you go. And then I can make this smaller. But now you can also, if you connect the random value there. The random value of this one. Yeah. So it can even connect from the ID. Let's ignore the stable ID for now. Okay. So if you connect the random value there in the scale. Okay. That's a big scale. Oh, because it needs to change the radius here. Ah, sir. So this way that's the, that's when you start seeing fields are something different than the data flow. Because the same field is connected to both nodes. And even though they have a different number of elements of of. Basecraft points. You're interesting. They can still work. And it knows. Okay. For this geometry, I have 100 points. So I'm going to create 100 random values. Oh, for this order, I have 10 points when create only 10 random values. It just knows somehow. Yeah. And that's also why you see then as represented differently in the node editor, basically, if you see the dash lines, those are they, those are basically callbacks. Once you get to this node, it goes all the way to the beginning and then I'm going to. Yeah, I was wondering. So this, this means fields. The same as the, as this shape. Yes. Yeah. So what you can do if you had a math node between the random value in the, in the one of the instance points, you can just multiply the, the, the, or you just add or multiply. Yeah. Anything basically. Yeah. And this is going to be something that's going to be quite useful. You can show quickly because if we forget an attribute that someone painted can just go and treat and multiply these operate on that and you connect to the density to distribution factor. That could be like a white map. Yes. And you can use these in different ways. So it's like shading almost, right? It's very similar to shading. The difference that shading usually has the same context inside the, the whole node tree. Well, here might have different geometries and one of geometry might have a field that one might not have it. I think being interested, maybe try to start to do. So playing around and start to convert this thing. Yeah, just to do the basic distribution is. Maybe, maybe can just remove the. The second. The second one. The second one. And the cube. Let's use. Remove the add over there as well. Geo pebble. Sorry. Remove the add one here. Yes. And it's Geo pebble. So I can, I can do this. Is that still legal? So fancy. Yes. Can drag and drop. Like doing this. There you go. I have some pebbles. If you want a similar result to what you have, you can just copy the values. So this is minimal was point zero two, I think. The minimum distance. Zero two. Let's, let's do it. Perfect. The minimum. Yeah. The maximum though is the thing that's using. In this case was multiplying the. What are the value from the modifier? I can just bring that. You can just bring. Ooh. And now I need to apply the mask. I'll apply it as a factor. The factor. So if you just connect the factor, as you can see, that's a third shape. We haven't talked yet. So we talked about the circle. We talked about the diamond. Yeah. This is a shape that might change. Yeah. There's a design to do something that's maybe more intelligible. What does it mean? But that means it is an input that can receive either a field. Or a single attribute, a single value. So I this or a this is the. Okay. So as a comparison, the distance minimum is one minimum distance to the entire. Point distribution node. Yeah. Same goes for the seed. But the density factor can be different for different, for the different parts of the geometry. So if you just connect this to the outside. To the group input. I can expose it. You mean. Yeah. Yeah. Give it a nice name. Give it a nice name. Such as large pebble. Map. Or. Map. Mask. Mask. Map. By default, when you expose those at those fields outside, it get mapped as a single value. Yeah. But it can also, if you click on the icon for the spreadsheet, just can use instead a vertex group. Oh. An attribute. So I can, this was the large. There you go. Nice. So this is a toggle between using a single value or whatever attribute, mask, vertex color, anything. Yes. And something you can do that is, was not possible before. Can just try to. Just add a multiply. Similar to what we just did, right? Add a multiply, but in the density factor. So. I can, I can duplicate this here. And you can just play the scale a little bit. If you want to tweak. Of course. No, no. Oh. So I'm multiplying the vertex group. Super powerful. If you want to do one on one with the old five, we need to remove that, but. Can do color ramp. You can do color. Do we have color ramp ready? Don't remember. Yes. Yeah. I think we have Trump color ramp. Yeah. That's pretty neat. Oh, wow. That's super cool. Yes. Nice. Nice. And this is a function you can see here. That's so cool. And of course you could use this for, again, for a different part of a different node that had a different resolution. Something that you don't even need to think about is, what is the domain? So we basically took a mask, which was a vertex group. So it was a starting every vertex. Corner. Yeah. And. And we're passing to a node that is expecting the data in. You don't see here, but maybe could even make that more visible, but just expecting the data in face. That's why the name of the node is distributed points and face. Yeah. So it's automatically extrapolating or interpolating from face corners to the face themselves. But the same attribute could apply to another node that require add-ins and would just work automatically. That's one of the strengths of the field system. So maybe remove the, well, can leave there the color ramp, whatever. You may want to randomize a little bit of rotation. How about that? Yes. Well, that's fair to try to do it yourself. Yeah. Randomize the rotation. Well, I can use the random value, right? Mm-hmm. Random value. By the way, we're on YouTube and you're making me do things by myself. Okay. So I want to randomize the rotation and actually you can just be a float, right? It will convert. You should convert. There you go. So, what we're doing before at least was going from minus P to plus P. Yeah. Using 10 decimals of percent of... 10 decimals, okay. I think I'll try to remember that. Maybe not. Now it's, it don't even need to... Well, try it. You don't even need to connect the original rotations and input. Not even. Ah, it's just... I've just ignored it. It's just nodes. And it's going to be random. It's just nodes. That is a rotation attribute. Yes. And you're not multiplying the rotation or just replacing it. Yeah. So it's also... So I would say from minus Pi to Pi. Minus Pi to Pi. Wow. And remember the thing about making it stable. So once again, if you change the... Well, you didn't even try. If you change the large pebbles in the modifier. This. Yes. Oh, it jumps. It jumps a lot. So I want to pass this guy over here. To the random value. At least. To here. To the random value. Yeah, I think that's all. Yep. Oh, there you go. That's fine. Actually, we connected the large pebbles. We didn't even look at the... I know we did look at the result. Yeah. Before the color ramp. That's all. And the original file we're doing is something similar for scale. For the scale. Yeah, which basically is the... So I can just basically do this. Let's get the same for scale. And this I can use a float. And this can use a float, yes. And we're doing from point... I can check down there. Don't remember. So scale is 0.25250 to... 600. 600. There you go. And scale. There you go. There you go. Super neat. And that's pretty much the... I got the first pebble. The other ones are just a bit different. It'll be interesting. You can try to do... But this is the same. It's a copy paste. This is the same... The method is different. So if you maybe open the file, which we already set then up. Okay. But yeah. At a glance it's the point distribute, attribute randomize. All three of them. The difference that one's using a Poisson disc, the other one's using the random. Okay. And for the random one, it's pretty nice because it can just multiply the input mask with the factor. Yeah. So we need two parameters as we had before. Because before we had the density max and the density attribute as two separate parameters. Yeah. But now if you go to the new, if you just duplicate this node and make a... This whole thing I guess. Yeah. Can we do something else? Well, this one I don't need. What for? And then just to show the random, the options now that when you change to the random points on face. I need to get this guy here. I need to get this guy to join it. Mm-hmm. And if I need to... This is a gel pebble. It's fine. It's going to be a different pebble, but that's okay. Yeah. No, I think it's all the same pebble. No, no, it's the... Pebble, pebble. Oh, oh, four. Okay. Can do pebble four. Yes. And the random size is much bigger. I think... But this is fine. I'd like to... If you look... If you change the method of distribution from poison to random, now we can only have the density. Yeah. We no longer have the density mask, maximum and the attribute mask. Yeah. So how do we do? First, we want to be able to get the mask on outside. Yeah. So I'm going to get this guy density outside. Right? Mm-hmm. And I'm going to name it as... What is this? That's the median pebble mask. All right. And you change it to attribute. And this guy wants... There you go. Okay. Is it working already? Probably is. Probably is. Hide the big one. No one cares about them. I can just basically... Yeah. Commute the connection. Yeah. That is here. Yeah. Like if I just see this, yeah. Yeah, no, no. It's totally there. The thing is... Super tiny. Oh, for the video, it's going to be terrible. Okay. That helps. The thing is, the density was way larger before. Yeah. Because before, we are taking the number outside. Yeah. And then multiply. So basically, if you're not... What you want to do is to multiply the mask we just brought in with the factor that was exposed times 100. Which is... So on this mask... Mm-hmm. Or 100. Yeah. Before, one thing I recommend is to connect everything before connecting there. Otherwise, it can pure my hang. It happened to me. It's terrible. Oh. But that has to do with... With me not being wise enough to do it one step at a time. Yes. And this, you want to multiply the mask by the value that's outside. By the values here. Mm-hmm. Ooh. So now technically, if you change the value there, you see already, but it's very tiny. The other thing we do is multiply the number by 100. This guy by 100. That's where we're going to be careful because... Okay. And this will just know... Okay, let's do 23. Well, there we go. Yeah, it's fine. I just connected the thing 100 by 100 by... That's too much. There we go. And of course, if you change the scale to the... What you had, then you have the... Yeah, the scale. There you go. Then have both pebbles. And I need to connect to both here and then I need to... We already have a file that has all the three pebbles converted, which is online. Unavailable here. I just downloaded it. Without you knowing. There you go. So this is the same. Okay, this looks more clean. I made a little bit of a mess. You use the object info instance. Oh, you're hiding stuff from... Contra-Age aggressively in this file. Contra-Age or... Double node options. Hidden sockets. The sockets that are not used can... I also multiplied... I also duplicated the group input a few times. Oh. But just for readability. Just for readability. Yeah. That's awesome. So you mentioned that not all the nodes are converted. And I am making like... You are telling me, so where can I find it? Well, actually, there is a link that is in the description. The list of nodes that need to be imported over, right? Yes. This covers most of the nodes. The exceptions are, for instance, the texture. Before I had a texture attribute. Now, this was one of the few parts of Blender that was still using the old texture base... Node-based texture. Yeah. And it is to try to replace these to... Something similar to what we have in Eevee and Cycles, which is a dedicated cloud texture node, dedicated image texture node. Or edge texture. So it will be like changing, basically, at some point. Just merge. I'll expect at least for 3.0 for us to have the image texture node. Wow. Which is like sample... Like it would be the old attribute sample texture. Yeah. So we'll be able to replace that for the non-built textures. Okay. These are the removed nodes. Quite a lot. So much work. And this is not necessarily any change. Is there an estimated time when this is going to be available? There is, but, you know, videos are timeless. So keep checking, master. Keep checking, master. Download it. But, of course, 3.0 is going to happen. 3.0 should have it all. If you're using 3.0, you're somewhere from the time in the future. Don't even bother. Okay. So people, download here. The builder.blender.org, the latest 3.0 alpha, geometry nodes. This file is updated by the time of this video. Oh, it's already updated. Is there? Yeah, but not all of them. Not all of them. Yeah. Okay. This one. So if you want to use it as a reference, but it should be pretty straightforward. And also on YouTube, people are making videos everywhere. And if you're doing some nice art of this, use the geometry node hashtag, B2D hashtag. Yes. Because for 3.0, you want to expand. You might not convert those sample files ourselves. Yeah. Maybe the original contributors can do that. But also looking for new sample files. There are so many nice ones already. People using fields for some mixed doctor strange effects and to, I don't know. It's already, I'm already enumerated with the results. Awesome. Okay. Well, thanks for the explanation. Thanks for tuning in. I think we are going to play with this a lot. It's a whole new world for geometry nodes and for blender itself. And I'm very happy like in behalf of the team and everyone that's contributing to that. It's just so nice to see people using it and giving feedback and just doing real production art, commercials, TV ads, already jumped in nodes and now trying with fields. Yes. If this is already in master. So if something doesn't work, please report it. That's all. Thank you. Bye. Bye.