Blender Geometry Nodes Tutorial - Procedural Cabinet or Furniture

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone today i want to show you how to create that modular shelf cabinet commode or whatever you want to call it and we have a modular x size we have a modular cabinet height you can control the thickness of the boards um you can activate the drawers or de-activate them of course you can change the depth of our cabinet the dividing board thickness and so on of course the number of dividing boards and of course you can change the color and we have some we have a switch between the handles and some other cool things so if you want to know how to create that just watch that video [Music] so as usual we will start with our default cube as a geometry nodes container so create a new geometry nodes setup and disconnect the input from the output and first of all we are going to create one of our wall shelves of our boards and therefore we will need a cube you can leave everything with the default settings connect them with the output that we can see something and now we will need an instance on points node um we have to connect the cube with our instance channel not with a point channel because the cube will be one of our instances and as points note we will take a mesh line connected with points node and as you can see um we have something like a wall with bricks um you can set here everything to zero doesn't count um zero to count twos to one and um now we have only one cube and uh with our start location of our mesh line we will control the uh the x size of our cabinet commode later on so set everything to zero now and we will create a math node now we will create a combine x y z note and we will plug in that into our start location and now we plug in only the x channel into our group input so and we will name it where it is there it is we will that rename like i don't know cabinet x size so that will now we have control of the excise i will explain um in a few seconds uh how how we are going to create uh some walls out of that and now we are going to create the other side of our wall and therefore we just copy these three hit shift d to duplicate them and now we will already need a join geometry node click here and the other one goes also in join geometry and in the output and now we will need some math [Music] and to explain what we will do now we will create one wall on the one side where is it start location here and we will create another wall another board just on the opposite side and therefore we will use a multiply node and we will set that to minus one and we also connected with the cabinet excise connect that with our x channel and again the combined xyz goes into our start location don't forget to set this to multiply and now um hope you can see and watch the which direction it will go we have we have some x size or width control at the time reward for a germ guy with depth and height so now it's time to make some scale in it so that we have control about the thickness of our boards and therefore we will we will need we will use the scale the scale channel of our instance two points and we will create another combine x y z note we can just copy that plug that into our scale and now we can see that our cube has disappeared that's because everything is set to zero maybe i we set it to one so that we can see what's going on and now um the x channel will be the control about the thickness of our boards the y channel will be the depth depth death channel of our boards and of course that will be the height of our bots so now connect everything with our input channel x goes into that and we will name it um x size so that i don't have to say with all the time excise and also the lower one goes into the x size and y goes into another channel it will be our cabinet death depth also the other one and of course that channel goes into height also the other one um let's see what we can do right now so if we control our height no there's something wrong uh the height now we can delete that one sorry and the high channels to go into the same height channel as the other one now we can control our partners thickness sport thickness the depth of our cabinet and of course the height of our cabinet so um i think it's time to make some frames the lower one activate everything then click ctrl j and we will name that where it is cabinet cabinet board left and the other one control j coming up board right so now um as we can see our board is exactly in the middle of all accesses but of course we want our cabinets our cabinet um standing on the x x-axis so that we can position it on the floor and to do that we will create a transform node plug it right here you can duplicate the transform node because we will need to transform both of our boards and what we are going to do now is we will take the half of our height and we will move our our whole composition with half the height to the zero level of our set axis to do that we will need some combine x y z node duplicate that two and we will need a vector math node which we set to divide duplicate it and now we will plug the z value into the height control of our cabinet that one too to the height and now we will set the that channel divide by two that channel divide by two the rest we can leave at zero and plug that right into the translation and as you can see it's moving to the zero point of our set axis now i just realized that i have two times the x size here of course one of one of them is wrong and that will be that one the exercise so we will have to rename it to boards thickness so yes that's right so now um we can set some material for our board set material so later on we control we can control the sideboards separately from the dividing boards um you can leave it clear at the point now you can add the material later on and now we are going to add some dividing boards first of all we can frame that and we will name it maybe something like set to zero on the set axis and now we are going to create our dividing boards and to create that we will add again a mesh line line we will again need an instance on point node and again we will need a cube for our dividing boards and we will plug in our mesh line to our points and the cube will be our instance uh we'll plug this to insert this and now uh with our count of our mesh line we will control the count of our dividing bots so first of all we are going to create a new input and we will rename that number the dividing boards okay now that um we will need a another join geometry node so that we can see something like that right here and the other one goes right above and as you can see we got 10 dividing boards we will control it with the count of the mesh dividing vertices and now we first of all we want to that our dividing boards will start at also at the zero point of our cabinet and to do that we will add half of the thickness of one of our boards therefore we are going to create a math node set this to divide divide by 2 and we will create a new where that create a new input and we will name that the riding board thickness now we will need a combine x y z naught we will plug that into our z dot because we only want we only want to affect the that position of our node of our dividing boards and we will plug that right into the start location of our mesh line right now our dividing board is not that on the zero point of our axis because our cube is 1 meter high and we have a dividing board thickness of about 0.5 that's the standard value if we turn that to 1 everything is fixed right now we will connect all these values later on um but for now it's important that we have the same values here and here and um maybe we can frame that too and name that dividing boards to sec that axis or something like that um and now it's time to create our scale control of our um dividing bots and we will do that with a combine x y z note we'll plug that right into the scale and our that value will be a new input we will name that dividing board thickness might be something 0.5 for start and the [Music] y value will be the is equal to the depth of our cabinet size and now we only need some x value 2 and the x value will be defined we need the excise that will be double of our excise because we only i will jump right here we only define the um one one value and double it with the other and we also got the thickness of our boards that we have to subtract and to create the right x size we will need a math note math node will go into the cabinet excise we will divide that by 2. and now it's time to subtract the thickness of our boards we will also create that with an multiplier too sorry because we only have one exercise and we need the whole exercise the double x size of that cabinet because that's why we have to multiply it with two now um double that and now we have to subtract the thickness of these two boards and to do that we will plug that right here and we don't have to forget to set this to subtract and now uh the we have to subtract the thickness of our sports something like that and now that goes into the x scale channel of our dividing boards and hopefully yes it works we have some perfectly aligned dividing boards now we can control with our thickness we can control the dividing boards we can control board's thickness the cabinet height and we have control about the number of dividing boards and what we have to do now is to arrange our dividing boards so in that way that they always fit to exactly the height of our cabinet so something seems to be wrong with our dividing boards and i think i got the error we have two times i have two times named dividing board thickness of course we don't need that two times you can delete the last one and just plug in the z value of that combined xyz node into the right dividing boards thickness and decrease the number so that you can see the different bots so now that should work and we make a frame around these two and we will name it dividing boards x size so now it's time for the right space between our dividing boards and to do that we will take the cabinet height dividing with our with the number of our boards but we don't need the number of our boards because the space between our dividing boards is exactly one less than the dividing board itself so we have one two three four five six dividing boards but we have only one two three four five spaces between our boards and now to create this we will need a mass note that we set to divide and i think we we rename it so that we can understand what we're doing here we will rename that to cabinet height dividing number of boards but we will need the boards -1 because we need the space between our boards and to do that copy that math node rename it of parts minus one i think a little bit annoying to um rename all that all these notes but i think it's necessary because in an hour you won't realize what these nodes are doing again so it helps to understand what's going on so now we also we need another math note which so that one we need to set to subtract and we need to subtract one number and the upper one we will rename into cabinet height minus the boards god damn it thickness because we have to of course subtract the height of our boards otherwise we will get a wrong value because we only want that space here and we have to subtract the thickness of our boards so now um and to plug that all into our offset of our mesh line we will need a comp by an x y z node now uh plug in the first value the cabinet head the cabinet height and we want to subtract the board's thickness for our cabinet height plug in that into dividing parts thickness we need more space here so something like that so now the number of boards minus one plug the upper one into the number of boards input number of dividing boards now connect this one with the cabinet height dividing the with the number of boards minus one that goes into the set value of our combined xyz and with that set value now we have the exact height of our drawers or the in other words the space between our our dividing boards and with that that value we will control the offset of our boards and hopefully when i connect that right now you see nothing that's why because i need to set the divide node to subtract because we want to subtract the board's thickness from our cabinet height and what we've got now we already got a really cool modular cabinet shelf whatever and everything is already modular and reacts to each other so we will set a frame on that ctrl control j and we will rename that space between dividing boards now it's time for some draws and to create that we will again add a mesh line we will need an instance on points node plug the mesh line right into the points and we will need a cube again and we will plug that into the instance entry so now um the count of our drawers will be again one less than the number of dividing bars to do that we will create a math node plug that into count and subtract one and plug that one into the number of our dividing boards create another join geometry node so that we can see what's going on join geometry and will look at that right in here so these are our drawers and we have to of course uh adapt some things so that it's working so now first of all we are going to control the height of our drawers and that will be a similar process like we did with our dividing boards and to just to make clear what we are going to do now i prepared something so how do we [Music] get our drawers height that will be the total height of our cabinet minus the height sum of all dividing boards and that remaining height will be divided by the number of drawers and the number of drawers will be our dividing boards minus one so that's basically what we are going to do it's similar to the process uh how how to get to our dividing board space so to create that we will need a math node again and we will name that number of boards minus one so now we will need number of boards to multiply it with thickness set this to multiply then add another math node we will call that height minus thickness of all boards we will need another one that we can rename to boards number -1 that this will subtract let's do subtract two and the last one and we will rename that remaining height divide divided by parts minus one so now first of all we need the number of boards minus one that will be the number of boards multiplied with the thickness so number of boards goes right into number of dividing boards then we will have to connect this with our dividing board's thickness wiring board's thickness now that one goes into the thickness of all boards that's what we calculated here and we in that node we subtract the thickness of all boards from the height so that one case just goes into our cabinet height cabinet tied where is it there it is now we have the number of boards minus one because that's the number of our drawers and boards of bots number we have to plug that into our number of parts and now these two goes into the lower upper and the lower one and that's our last note that's the remaining height so the height of our cabinet minus the thickness of all boards together that the remaining height divided by boards number -1 and set this to sub to divide so there it is now we i need more space sorry for that so we can do something like that so now we have already control about the that value of our draws cube we need to combine x y z and we can already plug that into the size of our cube and this one we can plug into that's the height of our drawers we will plug that into that value and to see something we already have to we we still have to define the start point of our drawers but we can already see the height is correct so now [Music] we can define the start location of our drawers first of all ctrl j and we will rename that draws height now it's time to define the start location of our drawers and to do that we will need a math node that we set to divide divide by 2 and another math node set to add and what we're doing now is um same as we did with the first dividing boards um we divide the thickness of our boards with divide by two and add this to our to the start point of our drawers so now if we add the half of our drawer it will be exact on the same level as our first dividing board so we have to add the half of our drawers height plus the thickness of our first or general of our dividing board so to do that and we also need a combined x y z note and to do that we will need our drawers height that goes right into here divided by two and we will just rename it but thickness plus draws height divided by two because we only want the half thickness the half height of our drawers that one goes into the board's thickness the dividing boards thickness dividing boards thickness there it is and that one goes directly into the that channel while combine xy that and that will be our start location and immediately it works so the only thing that we have to do now is to define the the offset of our drawers and again the x x scale so that it fits so that fits perfectly into our cabinet so how do we define the offset of our drawers maybe we group that first and rename that into start location draws so now how do we get the the offset of our drawers and the offset will be the sum of the board's thickness and adding there the height of our drawers and we both already got that so now it's time for together another math note we will rename that to boards thickness plus draws height and we got the height of our drawers that goes right into here and we also got the thickness of our dividing boards where it is the dividing board's thickness and of course we can plug that in or another combine x y z node and in the z channel and that goes right into the offset of our mesh line and we can see we got some perfect aligned draw us in our cabinet so now it's time to some for some some some beauty correction we will add now a bevel node so that it looks looks a little bit more realistic and to do that we need to add a realized instance note right at the end of our notes and now we can add here some bevel way too much maybe something like 0.5 no it's still too much 0 0.5 0 8 maybe and segments 3 so now we got some battle going on that looks looks cool and what we also can do is add some subdivision surface subdivision surface no it was the wrong one sorry the sub division surface that one i was looking for no no that's already too early forget about that we will do that later on we have to subdivide our measures a little bit more before we add some subdivision surface you can't forget about that now it's time to set the depth and the exercise of our drawers and the depth will be the y value connect the white channel with our cabinet depth now it's perfectly aligned and we already also can see that the drawers have the perfect height between each dividing board and um now the exercise of our drawers will be the exercise minus the board's thickness this one and because we we have mirrored our object the exercise that we change here is only half of our size so to get the full size we have to double our exercise and subtract the thickness of our bots so to do that we create another math note set it to multiply multiply with two because we want two times our exercise connect that one into our cabinet exercise create another math note and that one we will set to subtract and that one goes into there and we rename it again exercise minus board thickness and that one will go into the board thickness but not into the dividing board thickness but into our sideboard thickness and that should now go into our x channel and i think we have done a good job we have a cabinet with dividing boards and perfect drawers and everything reacts perfectly to each other now some dividing parts also works perfectly and the writing part thickness yes everything's fine now we only have to add some some handles and to create a handle we will again start with a cube just add a cube we will need to transform node and connect the mesh with the geometry and so now first of all we are going to um create the handle set position um no first of all we are going to join the geometry so that we can see something and we won't need um that instance node instance on points node right now because we will need the instance on points node of our drawers so um we make sure that every handle is exactly on the same position as our drawers and to do that we will create after our drawers cube a join geometry node and we will now connect our transform node of our handle with the join geometry node we already can see that something is happening and as we set it to mesh we can see that our handles are exactly positioned to our drawers now back to our drawers um first of all we need the exact that position of our drawers to do that we will create another combine x y z note and plug that into our translation to get the start point of it create another math note and we will call that handles two draws but we want our drawers exactly to be in the middle of our um the handles in the middle of our drawers so we divide that by a certain number five um i will explain that in a few seconds and now we connect the output of our drawer's height with the value of our drawers that position and we will connect that with our that channel and we have to set this to divide and as we increase the number we can see that our that our handles um are moving to the right position now um i have to admit you can't see uh very good to it right now so of i think we have to first uh that the uh the y um the y scale and the x scale so that you can see what's going on so we leave it um just like that at the moment so first of all we now going to create the y position of our handle um and we will make a much thinner handle so we will directly change our cube to 0.4 and the height of our handle will be only 0.01 and the depth of our handle will be to 0.1 now we got them handled and now you can see that the handles are positioned in the right direction and as we increase our dividing number they will move to exact the middle of our drawers but we can fix that later on so now um we want to fix the the y position of our handles and we want them to be rotated so go into the transform node and we rotate it around the x-axis around 90 degree and now we want to move them go to the top view we want to move them from the middle of our cabinet to the front so to do that we need you will guess it another math note in fact we will need three other math notes and maybe we drag and drop that a little bit that way that we have more room for other nodes and now we can connect the the depth into the depth channel of our cabinet cabinet death go back to our note and we can plug that let me think a moment that i'm doing nothing wrong we have to do that into the translation so that's correct we can plug it into the y channel so now it's on the wrong side of our um or cabinet and we also have to set it to d byte divided by two that's because the the y uh the y value of our cabinet is from here to here and we want to move it half the height because the start point of our handle is here we we want to move it half the depth of our cabinet so that's like this to the front so we have to divide it with two and to get it to the other side we will need another math note that we will set to multiply minus one and now we got some i will activate the render view and now we got some cool handles and two move them a little bit along as we like to we can add another math note that we can set to add and with that note we can clear how deep they are going into the drawers or not with a minus value they will come out three something like that that's too much so i think we can leave it at zero um right now but you can fix it the way you like to if you want to have bigger drawers or you can just go into that directly into the cube and make bigger drawers a bigger handles so something like that so if you want to have more details on your cube uh on your drawers you just have to copy um that whole bunch of notes and place place for example a second part of your handles something that goes here just place it with your transformer transform node so that you have something angular with a 90 degree angle or something like that but um in general that's our draw and what you can do now is add some colors so for example we add some color to our cube our draw that material i've already prepared something um we can take the white one it's already white and we can add some material after our drawers that would be i think that location was that would be at that position the dividing boards yes we can plug it right here and here and if we set the material to that one what's that right one zero to set axis um sorry we plugged in that material node right at the end and it's set to zero so if we delete that we should now see something so our sideboards are in a some kind of dark material our dividing boards in have a white material and our drawers have some kind of black material so you have to find the right places where right after the geometry where you plug in your set material and we have a cabinet that is fully modular [Music] you
Info
Channel: BlenderDude
Views: 45,522
Rating: undefined out of 5
Keywords: Blender Geometry Nodes, modular furniture, modular cabinet, Tutorial, Blender Tutorial, Geometry Nodes Tutorial, Math Node, Interior design, Geometry Nodes interior design, Shelf, 3D, Commode, Geometry Nodes Drawer, Blender Geometry Nodes Fields, Geometry Nodes Furniture, Geometry Nodes Tutorials, Mesh Line Node, Architecture, Modelling, Geometry Nodes Modelling, procedural furniture, procedural Cabinet, Procedural Commode
Id: m2FflCg6BTE
Channel Id: undefined
Length: 55min 20sec (3320 seconds)
Published: Sun Feb 20 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.