Webinar: AAHF30 - Grasshopper for Beginners (day 2)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
okay so where were we drawing rectangles right so the red line is my spine together with the places where the the building another building the dome is going to touch the ground and the black lines are where I'm going to have the direct handles which are going to be touching by a one edge perfectly right so so I'm just drawing out drawing out this kind of rectangles to just get an idea right and something like missed that one but yeah you get the idea so we end up with one two three four five we end up with six rectangles right going back and Rhyno let me do this exactly same thing so I'm just going to first of all take a line so take a cascade I don't know how it's called expand the line stub the lines toolbar here and I'll just find a tool that's called line from midpoint so it's the third one in the list right so if you expand the toolbar under polyline if you expand that one the third item or the third tool on the list is line from midpoint right this guy and I'll now make sure that I'm still drawing in the helper layer and I'll just draw out those legs right this this and this something like that now I don't need to use that line from midpoint anymore and I can continue working with the within the default layer so then I will just use a simple pole line and just kind of draw out the rectangles just make sure that they are connecting perfectly I mean that there are no weird gaps and so on so with this approach the restriction that you have is that you need every curve every pole line to be a closed polyline that has four corners right so we're dealing with four sorry we're dealing with six rectilinear curves okay I'll just give you a second this is an important thing so listen up when you finish drawing the direct handles just hide the helper layer so that it's just the these six rectangles that you have on your screens all right once you have done that reference in these distract angles as curves into grasshopper right so just create a curve component and grasshopper empty a curve container in grasshopper the one that has the hexagon icon black hexagon icon right click on it set multiple curves select your curves in in rhino hit enter and you're good to go so since we're going to be working with kangaroo the approach is going to be quite similar to what we have been doing yesterday we have the mesh relaxation at least the building of the mesh part is going to be exactly the same right so I always see repetition is is the key you know to to learning things back so on the backs off right so time to repeat it we have our curves and all of these curves are flat meaning we can use divide surface two curves go into surface input and for u and V divisions we will be using the same number right so for u and V divisions I'll the same slider sorry so for u and V divisions I will be using a slider that's between 3 and 12 I don't know between 3 and 12 so 3 dot dot 12 enter you have a slider connected to U and V and now you can control fully control the density your surface divider might Stern yeah remember when I said that the helper layer should be turned off it might be that waitlet not missing yes it absolutely has to be closed lines okay let's see oh this is gonna be fun so first things first if it's not working for you clear values so right click on your curve clear values then make sure that all that you have on your screen is six rectangles let me explain it better this is not a rectangle this is a rectangle if you have six not rectangles then you can select them and type in closed curve and it's going to force the rectangles to close also yeah make sure that you turn turn on the end snapping and point snapping when you're drawing the rectangles just so that they all connect perfectly so one by one if you if you still have problems select one rectangle set and set it as one curve check if that works if it works clear values set two rectangles in grass over check if that works if that works set four rectangles and eventually you'll see if there is a rectangle that's not working and then you just for instance let's say this guy right here let's say let me delete that join that move that set multiple cars there we go so you can see on my screen that right now I have red surface divide right as if it's not you know it it cannot do something and I can tell that there's something wrong with this guy right here right in this area so if I select it and kinda drag it out for a bit I can see that it's not a closed curve right so I can just select it and type in closed CRV enter and now everything works oh if you zoom into one thousandth of a millimeter then it's you're going beyond the tolerances units you're going beyond this tolerance or you're going really close to the absolute tolerance of the project and then it's going to stop displaying everything correctly so so don't do that mm-hmm all right so does it does it work for everyone [Music] your points don't line up in the middle how ok are you using the same make sure that your slider that you have here is connected to both U and V inputs and then as long as the rectangles line up yep as long as the rectangles line up it's gonna work ok so we have our like this is how we can change the resolution sweet now we move on so now we have a bunch of points and it's this is the moment where we used to use the trim tree to trim tree and we just connect the output of our surface divide to the trim tree input and again to repeat what it does we have what we have here is six rectangles right which means that originally the surface divide will give us six initial branches corresponding to 6 of our rectangles and then each branch will in oil in my case it will have 11 sub branches irrelevant smaller branches which correspond to the rows of of points within each rectangle we don't want those points to be divided up into rows which means we can use this tool that's called strength tree and get rid of that row and column information in our grids right so that's why we're using the trim tree and we are only left with six six lists of points rather than whatever 66 lists of points okay time to attempt to make a mesh I guess so to make a mesh from points we use a tool that's called mesh from points mesh from points and we just connect the trim oh yeah and those of you who can use mesh from points actually let me show it with both both of these tools and let me show the difference between them you know mesh from points and the law knowing mesh so if I connect my trimmed points due to my illinois mesh point input you can see that I get this kind of triangulated mesh right so everything is constructed out of triangles the way it works it kind of measures the distances between the points and it will generate triangular mesh for us that's fine delano meshes is fine it works so those of you who cannot use mesh from points just used alone our mesh as long as we're not you know as long as we're not doing something similar to our medulla volt it's absolutely fine to use if you can't see the triangles go to display preview mesh edges or type in control and not step in but use controller so that's the low noise and it's quite you know you don't need to do anything with it anything else so if it it just works mesh from points though it's a bit different because it retains the the information of what point comes after you know the series of points right so all of them are kind of sorted while in the low now in mesh the points get scrambled around and they become quite randomized so mesh from points is a much more controlled let's see way of how to construct a mesh but for this tutorial for instance for 3d printing both of these would work exactly in the same manner but when it comes down to you know later on laser cutting and so on it's better to use mesh from points anyway so no measure just straight up connect mesh from points you also connect the trim output to the point input you connect your slider which you use to control the resolution into U and V inputs it will turn red and that is because I mean yeah I really like repeating this part and that's because if you have let's in for divisions for subdivisions for every rectangle it's going to actually give you five by five points not four by four points meaning that mesh from points needs to receive more like value that is by one larger than what the slider says and we can do that by right-clicking on the you input right clicking on that going to expression and typing an X plus one commit changes and same thing for V X plus one commit changes and we end up with a fine mesh well not actually a mesh and by the way hiding everything except mesh from points oh no running out of time okay so apparently it does find for for tomorrow I will just get the pro version of zoom and then it won't bother us anymore so the output here from delano mesh and output from mesh from points is basically the same thing it's just a different different form of it but it is quite the same right in the way it works so those of you who are able to use mesh from points continue on using the output from mesh from points those of you who can't use just the output from the loan oil so right now actually this right now the output that you see is still separated into separate branches right so each this is not a single mesh right this is not a single mesh but rather this is six separate meshes we need to join those up and I can use first of all I need to get rid of the data data tree right of these branches so I can just right-click on the m output and choose flatten and now all of my meshes and same thing for Delano second all of my meshes are in the same list right so now they can see each other which means they can be joined together and let me yesterday what we've done was we've used mesh join and then we used weld mesh weld vertices like these two components today instead let's use combine and clean component combine and clean [Music] good and also together with combine and clean let's use unify you journey by mesh sorry mesh unify normals and then hide everything except machine fi normals you should see a pretty clean pretty clean mesh those of you who cannot I hide it by just selecting the nodes clicking the scroll wheel and choosing to disable preview okay so the first node is combined and clean if it doesn't have the red square pattern use control m in grasshopper and it's going to show you the polygons or you just go yeah yes and the next one is mesh unify normals it can be found in viewer Birds somewhere here and we were bird extract where where is it now I can't find it yeah just type in mesh unify normals you're gonna find it mm-hmm so works for everyone can't find it it's it's not in beer bird it's in sorry they didn't didn't realize that it's actually in the utilities sorry under mesh tab and utilities and it's mesh unified normals this guy right here you can also use unify mesh that that that would work as well okay then more questions can you show what boxes you connected to you from points in the USC oh yeah I connected the slider and the key thing is that U and V needs to be you need to right-click on you input and V input go to expression and type in X plus 1 for both U and V mm-hmm okay that's good Olivia I believe yeah and Olivia didn't have the mesh from points as well so that's the part of the same plug in them I assume that's fine use the we can work around this so for we can have a second group here so this is the class and this is a Libyans baby is doing combine and clean and she's doing unify unify mesh rather than unify normals it should be the same same thing let me just double check make double check here yeah so it's going to work work well so Olivia you just use the unified mesh I hope I hope that's not a part of the plug-in as well so we so we have right now we have a single clean mesh and we can control the resolution of our clean mesh with this slider which is really nice moving on let's see yeah let's let's push it a little bit more like eight more minutes and then we'll have a quick break mushroom points but I don't see the triangles ctrl M not L or if you can't remember the the shortcuts it's in the top under display Preview mesh edges oh yeah okay so let's let's have a 15 minute break that will continue okay I will get everyone in the call after the break right so 15 minutes chords okay fruit cocktails okay so let's let's continue now we have a clean mesh which we can use in any way we want and in this case we're going to be creating the dome shape and for that we will be using grasshopper right after that kangaroo and well grasshopper as well but kangaroo mostly so if we go to the kangaroo tab make sure that it's kangaroo to tab we go to main and we put in the solver right so just the solver we want to make sure that it's not a zombie solver or not a bouncy solver just the solver and it's going to be quite the same thing as we've done so far right so I'm leaving a bit of a gap between the mesh and the solver because I'm going to be putting quite a few notes here in between well one person is missing it's missing oh I can do that nice when one person is missing okay Olivia Nielsen is not and it's not Kay oh I can't hmm let me just invite two meeting and also and right there so now it should all be good huh that's good so now we we continue that double check the chat word now that's fine your your microphone was not muted but I've just muted everyone's microphones if you want to unmute it you can do that through the zoom app screen so we had the solver here again kangaroo to main solver and we can start adding notes to it just like we've done yesterday so for on or off again that's a toggle boolean toggle so we can turn it on or off turn on or off the simulation as we as we please tolerance and threshold I still will not be showing what it's doing so we will be ignoring those to reset is a button so type in a button plug that one in that's your reset and gold objects is a series of goals that the solver needs to achieve right so since it's a series of goals we will be using and wine and wine this thing here because basically let's see you have a goal for the contraction of the mesh right so so yesterday we had the mesh that needed to contri and contract to have least amount of area possible the way that goal works is that it takes all of the lines all of the edges of the mesh and it's tries to shrink them to zero size meaning that there's a list of edges that are trying to contract and then you have another goal which is anchors for instance you know points that cannot be moved that's also a list of points that need to be locked so what I'm trying does it takes those lists and builds a data tree you know a list of Lists out of them let me just check the chat the plat excitin here you just right-click for it not matter where flatten was only used here as as intertwine it should be by default because entwine works with two if you right-click on the name and wine you can either tick mark flatten inputs or untick it and it says graphed them yeah if you're zoomed out it doesn't show but if you zoom in so by default it's set to flatten it's basically if you are plugging in a list of lists you know a data tree into one of these inputs then it's going to treat that input just as a single list right so you're reducing complexity a little bit with this just okay so our goals it's always like the first goal is always show right because we always want to show geometry so a type in show and plug that one into 0 0 and then what are we going to show well it's our unified mesh right so from from unify normals we just connected to show if you don't have the plugin then you use the result of unify mesh of this node here right so it's either this or this either one of these two okay so right now the simulation just like yesterday the simulation would go there is since there is only one goal which is show the simulation would go once we ran it it will just say here you go there's the mesh and that's it you know end of simulation because we're only asking it to show the geometry so the next thing is we want to be able to control how much does the mesh contract right just like we did yesterday so four goals so to contract the mesh we can go to goals mesh yeah that's also in kangaroo 2 and we can choose edge lengths like that right asks us for welcome first of all let's connect edge links to the zero one input of the entwine like this and also we need to start plugging in stuff to the edge lengths no it's right so mesh well that's our unified mesh right there link factor though is again it's a factor it's not the actual length of each each edge each line on the mesh it's it's rather a factor so it's a proportion between 0 & 1 right if it's 0 it's going to try and contract 0 if it's one is going to each edge wills will try to keep its original length so for length factor we need a number slider that's between 0 & 1 I will just type in just a single number zero point 5 0 0 the more not not zero point point five zero zero but zero point five zero zero so it's just a half you know zero point five the more numbers you type in after the comma or after the point the higher the resolution of your slider is going to be right so zero point five zero zero plug that one into length factor and let's see how it's how it is going to work right so I'm going to reset and run the simulation and you can see the mesh contracts actually let me hide everything except the solar just so that it's easier for you to see and I'll hit the reset button again right you can see how it contracts each edge tries to contract to half of its original length if it's said to one it's not going to contract at all it's going to just stay the same or if it's set to zero everything is going to contract you you know a single point so for now I'm going to have it as zero point five like that make sure that the simulation is turned on so the toggle is true yeah so now once once we know that this this whole thing kind of works I will be turning off the simulation so toggle false and hitting the reset button right so it so that it's back to its original you know that the starting condition your button does not work the are you talking about the toggle or are you talking about the button because you have you know you have the button here the reset button doesn't work wait what okay let's think first of all okay first of all if there is no dashed line from entwine go to display and choose draw a fancy wires to be turned on does that fix the dashed line not being there okay then the reset button doesn't work so let's see if I turn on the this dissimulation so you can see the simulation is running and I hit the reset button it's just for a second that it will kinda kinda reset right and then it immediately will start running the solver so make sure that you for now for the next steps make sure that the simulation is turned off right so the toggle is set to false and when you hit then when you hit the reset button it should kind of jump back to its original form how it was before okay so now we continue so now we can control how how much we are contracting the mesh and now we are saying that it should show it so next thing is just like we've done this power is anchors right so we need to specify which parts of the mesh are locked and in this case like previously what we've done is we've just said you know give me the outer perimeter of the mesh right and lock the outer perimeter all of the points around the outsides outer perimeter of the mesh boundary in this case we don't want that in this case we just want just the points which are which are here here and here only these points we want to be locked so we will need to do some Rhino grasshopper shenanigans to to achieve that back in top view I will just create a pole line well let me minimize Rhino for now grasshopper for now in top view I will just create a closed it's very important that it's closed a closed polyline like so basically I will draw I direct a new listener as long as it's a closed polyline it's gonna work around the points which I will want to lock in place all right so something like this and I'll repeat it for every leg of my shape something like that so we have three additional rectangles right um back in grasshopper back in grasshopper I will reference these three additional rectangles as curves see RV enter right-click set multiple curves click click click enter so now we have them in grasshopper okay I'll give you like ten more seconds to do that now we have the curves here and we kinda have the the mesh the problem is that the only part where we kinda seed at the points of the mesh the vertices in the solver and we can't really connect the points from the solver in interview anchors because it would make this kind of infinite loop of information which doesn't make sense to do instead we where we have our unified normals mesh right the output of unified normals I can extract the points from that mesh all of the points right from that mesh by just using the Robards vertices component shortcut for it is w b-- v weaverbirds vertices component so W B is for vivir bird and V is for vertices WB v enter this node gets created if I now plug in my unify normals output to my vertices component geometry input G input and I selected two highlights you know stuff that it's creating you can see that it has extracted all of the points from from my mesh all right now next up is checking which points that we have just extracted are inside of our drawn regions you know did this kind of three drawn rectangles that we've done which points are inside and which points are outside and we will want to choose only the points that are inside of the rectangles that we have drawn or or the regions that we have drawn so I will ask I will type in point in curves be very mindful of the fact that there are two types of tool like this there is point in curves plural you know multiple curves and then there is also point and curve singular if you choose point and curve it will not work you need to choose point in curves you know because we're using more than one closed curve for this to work point in curves asks us for two inputs first one is point second one is curse right so from our verbal vertices component we have the points so we can just conduct them points go into points curves go into curves just give you a seventh what we get from this is three inputs one is relation the second one is index and the third one is projected point we don't care about the index or the projected point we care about the relation if I hover over that our output with my mouse I can see that it says point slash region relationship if it's zero the point is outside if it's one the point is right on top of a region curve and what if it's two it's inside honestly what we care about is just the zeros right so only the stuff that is outside thankfully in in not just in grasshopper but also in in most of programming zero is considered to be false and anything other than zero is considered to be true and we can use that to our advantage right so if point is outside of the curve it immediately receives a false statement right if point is inside let me explain it here all right so let's say we have points this matter point point point point point point point and we have a region right so this point receives a false this point receives a true this point receives a true this guy receives a false and and so on right so what we can say and in grasshopper is take the whole list of points you know all of these like blue points in this case and remove everything that says false just leave the things that say true and thus we would just keep the points that are directly let me do it in the blue color then we will just keep the points that are directly inside of our regions removing stuff and grasshopper is called coal see ull and there are different ways of how you can call things in this case the one that and it's mostly used like for for various applications we will be using coal pattern pattern is these kind of true and false statements right so color pattern we use that and it asks us for two things it asks us for a list of things that you want to from which you want to remove stuff and it asks you for a pattern right so if I connect my rebirth vertices output to my list that means I'm removing stuff from from my whole collection of points and if I'm using the relation relationship output of my point in curves component it will it will use that as true and false statements to remove the points that are outside of my curves right so then if I select this color after I have connected everything I can see that only the points inside of my regions are selected meaning that only those points have not been deleted from the list so now I wait and see if anyone of you when you highlight color if anyone of you get some you know discrepancies from what you see on my screen and what you see on your screen color pattern I'll be is typing faster than I speak well I guess most of the people are typing faster than I speak I assume it works for everyone that's good okay so these guys right here the code code points are going to be our anchors the points which are locked in place right so we will be using in kangaroo two goals point anchor we will be using anchor node just like that anchor asks us for point two two anchor you know what kind of points do you want to lock so that's perfect we just connect our cul to our point input of the anchor it asks us also for the target and the target is basically if you want you anchor the points but also you want to move them to a certain place during the simulation at this stage we don't need to so we will not but sometimes it's a very easy not sometimes it is a very strong tool to be able to use in some cases we will be using it later and then strength for anchoring and oh yeah speaking of strength for instance edge lengths strength is by default set to one right while anchor strength is set to ten thousand meaning that even by default values it's that the way kangaroo is written is that anchors don't move right when they are locked in place you need a lot of force to be able to move them around okay so we don't need to oh nice so we don't need to add anything more to the anchor node we can just simply connect it to the zero two input of the N twine like that so that's our third input let me hide everything except the solver again right so as you can see here from what's gray in my definition everything is completely gray except the solver and now I will just make sure that it's working correctly so I'll hit the reset button and I'll toggle true for for the solver 1 and it relaxes right so it stretches like a stocking material would stretch right or any stretchy fabric material would stretch jiggly yes it's also yeah the jiggly part happens because at the start of the simulation there's a lot of pre-stress there's a lot of you know a lot of stress in the structure so when it when you hit go you know when you hit that toggle true it shoots shoots out the vertices the points of the mesh too fast so the overshoot that the target and then they kind of you know find their equilibrium point later and I'll be talking about equilibrium moments in a bit but now at least we know that it works we are still working completely in two dimensions and this is the moment where we are actually going to move everything up right and in the third dimension so I'll switch to perspective view like this I will turn off the solver so toggle Falls and I will hit reset so now we're back to normal oh let's see is it something like is it something like this okay notice what I have done here that the the corner point doesn't align with other corner points of the rectangle that means you haven't snapped it properly so if if the rectangles are not aligning it's going to start you know making holes for you so yeah the way I work with it is usually I just go through Oh fix it nice so but it's basically I just go go through every rectangle and just make sure that everything kind of aligns grid snap if you have grid snap turned on it's really bad in this case because it might kind of snap to the grid line rather than the endpoint and can mess up your your whole structure so make sure that the grid Snap is turned off okay so I turn off the solver I reset the solver and we're back to you to normal and now it's time to add one more goal so where is he antwine if you zoom into the antwine node you can see these plus and minus signs if you click on the plus sign right at the bottom of entwine it will give you one more input so this is how you can control how many inputs you're actually using for the nth wine so I'm just adding one more input again you won't be able to see it if you are zoomed out but if you zoom into the node you will be able to see that plus and minus signs so I've added one more input zero three okay and for that input I want to apply gravity right so Antoni gaudí did hanging chain models with unfortunate gravity pushing downwards so he had to later on flip his images you know that he drew from the structures in our case we can say that gravity is up right it's not down so we'll do exactly that under goals point no it's not undergoes point sorry it's under goals mesh goals mesh vertex loads apply equal vertical loads basically equal vertical force to all vertices all the points of a mesh vertex loads we use that so we connect vertex loads to our antwine the new input of the untwine that we've just made like that now and then it's asking us for a mesh and we constantly keep using the same mesh right so it's the mesh from unified normals that we get from unified or we connected like so so unified normals connects to vertex loads and then you have strength if I hover my mouse over the strength input I can see that it says minus minus 0.1 meaning that it's going to be pushing downwards as if gravity was at play by a low amount of strength zero point one in this case we want but wait this is weird or is it let me just check I will run the simulation hit reset yeah it's hanging down yeah so it is not will lock up so in this case for the strength let's use a slider that's between zero dot dot and to enter right so we have a slider that can be 0 1 or 2 it's not enough resolution of the slider right because we can just you know kinda have no no force one force or two force we want to have much much smoother way of how to change this so I purposely made it like so so that we now need to go to we need to right click on the slider and we need to click on edit and here where it says rounding we can choose instead of choosing integer numbers we choose floating-point numbers are so numbers which have digits after the comma are called floating-point numbers and I don't remember the exact amount of how many digits after the comma you can have but I think it's like 16 or maybe even more so we can go pretty far with it or maybe even more than 16 I don't remember anyway when you choose rounding to be floating-point numbers you can change the amount of digits after the comma that you'll have so in this case I will just choose three digits after the comma hit okay and now you can see my slider can go at much higher resolution it's still in between zero and two but now I can control it much much better so I will connect the slider to the strength and right now the strength is said to be zero about it let's see testing testing seems to be fine okay so now we have our our dome shape working now honestly that's it right now we will just make it pretty and then we all that matters is how you arrange the you know these kind of starting conditions how do you arrange the patches and how do you arrange the rectangles for for aggregate for instance here if I were to say that now my rectangle you know four anchors needs to be here it's going to lock these points in place right or it needs to be here it's gonna lock it like so don't do that that's quite disgusting keep it simple every time when it messes up just set the reset button and it should work continue working quite well so now making it pretty first of all at the output of the solver is a data tree and we only need to extract the first branch of the data tree which is shown right which is the mesh so I will be just using the explode tree explode tree node and connect my solver output o2 tree explode tree input and I will be zooming in to it and removing the zero comma one output so that I only have zero zero yes it's humorous yes so once I have removed zero comma one output and I only have zero zero it's just the mesh that is coming out from here right which means I can now hide everything like literally I've just hidden the whole the whole definition right and I will just create an empty mesh container and connect my explode tree output to my mesh container here like that and now we can make it pretty right we can use custom preview like that we can use swatch not switch swatch swatch like that connected to material and change the color to something like this Chad I hit I hit everything no there is no need to clean again since we've done that art here so you can either do it before the simulation or you can do it after the simulation in this case we just did it before and there we go zoom has recorded that's good so that this works did the previous custom preview custom preview and also color swatch so now we can play around with it right because here it's it's a pretty boring one you know three leg three legged dome which is very traditional actually where can I find the stuff that you okay has been doing some cool stuff and while she was studying in Oslo and ah-hoo I think it's going to be in here projects there we go so this kind of dome shapes right so you can see that this was indeed done with kangaroo these dome ships were then kangaroo but the thing that makes them really cool are these are these holes these kind of inner courtyards of of a dome shape right these kind of light wells because they kind of start framing the space but also they are an opening right so they introduce light and and so on so it's it's quite a quite an interesting or beautiful thing at least for me so if we want to do something like that let me just delete all of it delete the helper and let's let's think right so when I'm thinking I'm usually drawing rather than rather than drawing in in Rhino I'm drawing it either on foot in Photoshop or we pan on piece of paper right so so we need a hole right and we need some sort of a cool cool structure so if I have a rectangle like one rectangle like so and let's say my hole opening is here right how can I make this and into you know into a shape that's made out of rectangles so let's start thinking about it if we have that then we have that can we don't remember anymore so something like that so if it's three rectangles here a crap I don't remember division because I don't remember but yeah that's fine I will sketch it out bear with me oh that's very sick that's yeah that's good so let's say I want to have an opening let's see there's a square here square here square here something like that and then we have square here square here then we have a squared okay so we start off with this and this becomes an opening this area right here and then we can kind of start messing with it and introducing this kind of a slabs [Music] okay at least I haven't I know that it doesn't look like much but at least I have an idea of what I'm going to do it so let's see let me just freehand draw this way in in Rhino so let's see we have a square right that's that's doing something like this and then we have another one it's doing something like this another one no no I've just deleted my inputs so so so grasshopper is still still here it's only that I have deleted everything in Rhino and I'm redrawing everything from everything within right now I'm just showing you how to make a different shape so right now I'm just going to make something quite quite simple something like that maybe no that's boring let's do hexagons I will just lock it so that I later don't accidentally select it any of course you don't need to follow it just I'm just showing this to show you the the way usually work with these kind of structures like the way you think about these kind of structures you can either just draw it as series of patches like this rectilinear patches or you can draw it as we did before with spine and then kind of beating up the the red spine it's absolutely up to you so for instance here let's say I want more meat on this leg and I want more meat can we do this why not something like that so let's say I have this kind of structure right let me just reference it then and then I will just oh yeah make sure that you stop the solver so that it's not kind of calculating geometry before you don't want it to be calculating geometry I need to choose which parts are being locked in place so that's weird vertices component I enable the preview of that and I draw around so so I want to lock these guys I want to lock these guys went to lock these guys and I want to lock some sort of I don't know maybe this area right here something like that so I have these these regions here which I can simply select set multiple curves go back to perspective view and just see how how it works right so the structure that I get is you know that looks like that I can kind of start messing around with it a little bit with control points so on and we end up with something a little bit more similar to where with the armadillo pavilion to this dome here it's just that the dis dome has two holes and one two three four it has four contact points or four contact edges and two holes we have three contact edges well no we do have four contact edges it's just that we have a single hole but I hope you get the idea the thing is that it's not just fill a block who is working with these kind of structures I've already showed you mark furnace last time are we recording by the way yes where I've showed you mark furnace yesterday but I will come back to him here because he's not just using the relaxed mesh approach but it's all he's also using the this kind of catenary dome approach sorry let me just find ya for instance stuff like this right it's absolutely the same approach as we're using right now only that he has much much more patches here I can in this though I'm just trying to find oh that's a cool model anyway let me just try and find it okay this one doesn't have any diagrams I just want to show you a diagram of it come on couldn't find the page that's cool so that doesn't work yeah for instance this guy yeah a concert hall though right it's just series of of these kind of rectangular patches right not nothing more oh there we go oh and the interesting thing that they're doing here is instead of instead of contracting that the shape they are inflating the shape right so let me show what what how how we can do that I'm not sure if it's going to work in this case oh it kind of works it's it's not the nicest though because it starts starting to buckle a little bit but if our length factor would be 2 rather than 1 oh boy okay we need a little bit more polishing with this approach but it's it's basically they're choosing the edge lengths to be larger than 1 and then introducing certain amount of smoothing and so on so it's a much more complex definition that they have but it's kind of the same same approach right all-aluminum anyway I hope that then does it work by the way for everyone you know this kind of a structure bricks bricks how breaks like I'm just talking overall not necessarily the structure but the definition itself if it has a lot of holes that means you will need to realign the rectangles unfortunately let me show you one last thing let's say you want to put a hole right here let me make it red right you want a hole to be right here there is no first of all if you're using triangles you know if if you if you'll start drawing out triangular shapes like this it will not work every single patch that you do needs to be rectilinear meaning it needs to have four corner points if it has five it will not work if it has three it will not work that's the limitation it is possible to make it work with three or five corner points but it's first be able to use you know this definition well and then if you don't need to we will be able to in and more functionality to it so back to here if you're using not if you're using but if you need a hole to create a second hole then what I would do is I would select these two curves which are you know kind of which will need to be changed and I will just change their layer to be red right so so so right now they're in the helper layer and then I will draw on top of them so I'll draw out how I think that this should work and first of all let me do that in Photoshop because it's going to be much easier for you to see in nnn Photoshop so what we have here is we have a rectangle we have one rectangle here and we have a trapezoids rectangle something like that whatever we have a rectangle right and we want to make hole here right so we need to rebuild the whole shape out of patches which are red rectangular which have four corner points so let me just choose a blue or red color and let me draw on top of it so first things first I'm just wait I'm I'm just thinking okay first things first is this rectangle here it's pretty easy right we just have a rectangle there then we have shape here here here here we have a second rectangle then we have a third rectangle or fifth sixth right so the rectangles can be quite twisted and they can still work right so let me do it here first rectangle here here here and here second rectangle here here and here third rectangle oh that's good so so third rectangle is going to be problematic right let me just turn off all of the unnecessary snaps okay so the third rectangle is going to be from here to here here here all right so this is our third rectangle and you can see that this area right here is not convex corner but rather a concave corner it means it's going inwards right into the rectangle this will not work it needs to be this is another limitation it needs to be concave rather than cut with convex rather than concave meaning I will just hit f8 sorry f10 to get the control points and I'll just move the control points like so so that this rectangle right here is all of the corners of it are sticking out right that that's that's important so now this works and now we're left with two more three more rectangles right so I have one here like this one like that and one like this so I've just drawn exactly the same thing as you see here I've just divided it up into rectangles now just to keep things clean I will make sure that I don't accidentally select the helper lines so I'll just right-click on the layer of the helper lines select objects delete just get rid rid of those and then I will select all of my patches all of my rectangles and kind of reapply them here set multiple curves oh why are you angry I messed up somewhere there we go so this guy right here I messed up with this one you can see that it's a it's an open curve right there is no segment here if I type in closed curve then this one stops complaining right because this gets closed and now it can work okay yeah let's just see how it looks like right perspective enable the preview so now we have a hole right so the more you will practice them the more you will work with these shapes and this applies by the way everything that I'm showing here and why I'm repeating it so many times is because it applies to our previous tutorial as well with mesh relaxation the more you work with these kind of rectangular patches the more control you will get that the better you'll understand what the heck is going on and how do the shapes connect and what do you need to do to make them work so it's honestly like from experience it's trial and error right you just try it out you you find something that doesn't work you fix it and then you know how to fix it for the next time right and you keep building up that knowledge base when working with these structures as you can probably guess these structures are pretty much you know like they are widely used and they're really really beneficial for for quick and strong pavilions oh that's good ten minutes oh that's perfect so after ten minutes we'll have a lunch break so for me to just wrap things up here with this tutorial with more resolution you also have more control for instance let me delete this this one for now just for a bit and since we have now three patches here rather than one patch like here what we can do is we can start creating this kind of a curve well not a curve per se but something that is a little bit more a little bit less rectilinear right something like that while with these ones we can't will this one's all of your anchor points will need to be aligned in line in a single line right here because you you know you don't have enough control points to move here here we can have control points doing something like an arc right and I can kind of select them not select them but rather draw a new polyline around them oh can we do something funky here maybe here I want to lock that part as well so as you can see I'm starting to play with it and I hope that you will too right you just you know play around with it and think of you know what would be a cool cool behavior do you have with these structures what if these points are hooked what if these points are kind of here this is kind of here then we have a door anyway I'm having too much fun here so I'll stop now but that's how you how you work with this with this definition questions before we go for lunch of course I will be Oh since we still have like five minutes more than five minutes let's group things up and I'll show you how to clean things up for so that you can tell what's you know what's going on once you open it up again on Thursday right so I've already kind of talked about this yesterday but now we're just going to do it first of all I'll go through all of the nodes right so curved surface divide trim and mesh from points it's basically we can we can just select curved surface divide and trim group them so you select the four nodes you click the scroll wheel and at 12 o'clock you'll see the green fidgets spinner icon you click that and you you know it will create a group and then you can right-click on the group and name it and I will name it in import or input curves or flat for foreigner curves and create grid on them and then mesh from points clean mesh and unify normals i group them as well and call them create mesh from grids now create meshes multiple meshes from grids join join them and clean them right then the next one is show I'll just group this and just go show show the mesh after the simulation right that's that's this goal and then I will group the edge lengths together with length factor like this and call it go contract the mesh you know make them much smaller then I have vertices curve reference in curves check cull and anchor I group those and call it anchor the vertices which are inside of drawn regions and the last one is vertex load so it's basically apply inverse gravity you know then you have the entwine the solver bang and the mesh so honestly I will just group the mesh node and I'll just call the call it bake this right if you want it to be you know if you want to get it into Rhino uub this one you don't bake the preview the preview will not let you bake it so you do that sorry this is cellular automata tutorial I'm not be giving it through this this kind of webinar but rather you'll need to look at it by ourselves that's going to be homework and you can find it on my youtube channel where it's a tutorial series that are called like 4.1 4.2 4.3 well 4.4 4.5 right so these five tutorials out of these five and they were recorded back in 2019 out of these five you care about for now you care about only the first three and let me just quickly guide you through what you'll see in those videos right so 4.1 tutorial or 2019 - 100 th tutorials discrete minimal surface elements data toriel is going to be quite familiar to what we have already done and yesterday yesterday afternoon well here I'm just talking about how to make this kind of a Ashish how to make this kind of minimal surfaces with kangaroo relaxation right so this is kind of familiar like all of these white patches are rectangular curves close rectangular curves that connect and then we just relax it right and here I just give a little bit more information about it how it works and so on give you a bit of a you know print screen not transference renders of the structures that can be done with it and then kind of start start talking about how how to actually create those structures so and then you can see you know that kangaroo solver the antwine the show and and so on so it's kind of a repetition from what we've been doing now only that it's a little bit more complex so it's our twenty minutes you can check it out if you want to so this one is not mandatory the mandatory ones our thing is it's possible to just move this crap oh it is nice wait wait I'm trying to figure it out move it here no that's bad that's that's also bad that yeah fine I'll meet you I'll need to have it there well where was I 4.2 or 4.3 these two tutorials 2019 - the 2d game of life and 2019 - three two and a half D 2 and a half dimensions game of life these two tutorials you should look through and you should do first of all because they're really cool the structures that come out from them are really cool second of all it's it's you know the part of the course just doesn't you know we don't have enough we're going to slow you can guess why I mean it is due to the fact that I'm not in the same room as you guys so we need to cut some corners and you just check the YouTube these YouTube tutorials by yourselves so 4.2 we'll just teach you how to how to do this kind of a colles game of life setup where it's only going to be done and to them in two dimensions so it's going to be a flat a flat thing right a flat I don't know not even a structure a pattern and here I kind of talk about the data trees and so on quite quite a bit so make sure to do to follow through and kinda do it and by the end of this tutorial the 2d game of life tutorial you will see something that is going to behave like this right first of all it's going to be automated second of all there's going to be a certain amount of behavior and what this is called is called a cellular automaton right where you describe how a cell you know a molecule or whatever an atom behaves in within a certain conditions yeah within certain conditions and then according to those conditions the whole thing gets animated and the decels changed their behavior in this case the changed behavior from being alive or being dead right so the cells that are pink are alive and they kind of change to be here I talked much more about it in the tutorial itself so make sure to check that one out so that's that close and then two and a half D game of life is a continuation of the previous one of the two the game of life right so so it's a continuation and here all we're doing is we're basically creating a three-dimensional structure out of these shapes right so we're basically stacking each generation of the cells upwards and thus we're growing we're growing these kind of towers of things [Music] and by the end of that we'll have something you will have something like this the beeping I think everyone's made it isn't it no it's way too far wait can it be the 3d printer okay let's see that that will be very weird if I mute my microphone just I will mute my microphone and let me know the beeping stops you uh-huh and what about now is it final everyone here seems to be a muted oh yeah it's not now Albert crepes okay that's my printer guys wait wait I'll go stop the printer and you let me know if it's you know it's me tutor I mean if it's going to sound a lot I assume it's not beeping anymore wait let me see oh crap okay so wait I kind of do prints now do you have a headset with a mic now I'm using a decent microphone here the headset with a mic kind of you know usually the microphone is much worse well whatever I'll start the print later that's fine minimize that who's that back here so by the end of those two tutorials the 2d game of life and two and a half D game of life what you'll end up getting are these kind of structures which are you know porous and and they can be controlled to a certain extent to produce architecture later on and I do have two examples one of them is by me and projects did this project right here tower of life we used the same approach where we kind of designed the scratch one kilometer tall skyscraper by by just using that cellular automata Grove right and you can see here like these are all of the sections all of the plans that we got and you know this is the structure that we ended up having what's the password oh man everyone's invited okay okay Mia is still out but where do you find the file to what exactly I have many grasshopper files you need to be more specific in the beginning of the tutorial grasshopper file well my grasshopper 400 yeah that's that was a YouTube video I was telling everyone which what kind of homework you'll have what you need to do at home well you are at home but what you'll need to do by ourselves just to save time and it's on my youtube channel 2019 - - well actually I can do just this first of all you will look at this so this video and then come on minimize anyways and then it's going to be this video so these these two videos and following them and being able to kind of operate with them are going to be your your your homework and I'm just showing you what kind of what kind of forms to expect from from those two two YouTube tutorials and we'll make sure of course that you have all of the necessary plugins and that everything is running before we finish today so that you can indeed follow through with this 2d Johanna v die with this game of life tutorials anyway so this was the project that me and me and Olga did just power right made out of it we just added glazing by by by hand later on in Rhino and then we have one more project everything is very very convoluted we have one more project here am i recording yes mmm that's good so it's in the course website if you scroll down then one of the examples are this project right here which used exactly the same method method and approach of course in this case it was not a tower but rather some sort of a bony climbing structure right so that's that - teacher that's your homework and let me I'll just keep closing it so now let's jump back into grasshopper into Rhino and let's close well not close but let's start with a fresh file a fresh Rhino file in the fresh grasshopper file right so so do that or need to record this once so in grasshopper if you want to repeat a certain let's say movement or any kind of method for changing geometry or even like something as simple as addition of numbers if you want to keep repeating it for a number of times then you would need to either script it and c-sharp or JavaScript or Python or you would need to use plugin and the plug-in that does this kind of repeating a loop is called an ammonium so if we I can just show you a really quick example for instance let's create why do we create let's create a sphere so in grasshopper type and sphere right and let's just give the sphere a radius of five right so we have a ball okay and now let's let's move that ball so type in move and x-direction for instance so you just type in X hit enter so unit X right and then just create a slider between zero dot dot and I don't know 200 something like that so you can move the sphere right well of course we need to hide the original sphere and just have the preview of the moved one and then basically as I'm moving the slider the sphere moves together with a slider very very simple setup I'll just give you a little bit of time to to catch up really really I didn't delete the original I just disabled the preview of it alright so we have a sphere and we're able to move it you know at some sort of number of millimeters to the side the thing is that what if we want to yeah along the x-axis so the thing is whatever we want to move it in increments right so what if we want to move the sphere every like animate the movement of the sphere so every step of the animation the sphere moves by one unit or whatever right then we can't really do it because well we can kind of manually keep dragging the slider and it's going to be moving but it's not really correct is it right so instead we need to loop the information so that we take the sphere and we move it by five mil we take a sphere we move it by five millimeters then we take the moved sphere a sphere we move it again by five millimeters then we take the moon's sphere we move it again by five millimeters so we keep adding five millimeters of movement to to our sphere that setup would look like like this delete delete the move delete the X and delete a slider just keep the original sphere with radius of 5 in your files something like that and let's use an ammonia so type in loop start and also type in loop and loop start and loop and so these two nodes everything that happens in the in between these two nodes is going to be repeated is going to be looked right so we need to go through the inputs and the outputs of them to see how they need to be set up right one by one first input is number of repetitions so how many times do you want to repeat something in this case the movement I will just create a slider and I'll just say I want to repeat it hundred times and just connected right then we have a trigger if you want to loop to restart you can trigger the loop to restart so the trigger is a button right just like in kangaroo we have restart button here we also have a button to restart the the loop the simulation just like that and D zero is what kind of data data data data I don't know what kind of data do you want to use t2 loop right what is going to be changing and in this case what's going to be changing is the position of our sphere right so our fear is going to be changing so I'll just take the sphere and plug it into D zero input like so okay and now we have three outputs from loop start first one is it just says connect to loop end okay and the loop and one says connect to loop start so we have like two two things that just want to be connected yeah sure we just connect them but that's that's fine the next output of loop start is a counter so it's basically right now it says no because the loop is not running so it's it doesn't have a number but it's basically going to generate a number for us right at this stage we don't need it but at later stages especially in in that game of life tutorial that you're going to look at by ourselves we will be using the counter so what Carter says is every time when the loop is running the counter will count what which which step or which yeah which step of the animation are you currently at right so it's just going to go every time when the loop finishes and starts again it's going to add plus one to the counter right so it's going to keep counting how many loops has it's done for now we don't need it and the zero is basically stuff that comes in NTD zero here is going to come out from d0 here but that is only going to happen for the first loop right for for the first repetition once the first repetition is done Oh actually yeah let's let's do it this way let's just create a be rep component B rep is boundary representation so it's basically the same thing does poly surface or surface so empty burek component connected connect d0 to it and connect it to the zero from loop end my English is breaking okay so you have a setup like this right and if I click the the trigger you know that the button everything is not going to be orange anymore as long as I clicked the button but nothing is really going to be you know changing because the way this works right now is so the way this works the setup works is a sphere so this sphere is created right and it goes into the loop start and it happens during the the first repetition of the loop then what it does it spews out the same sphere right so it so it carries over here into a burek component which doesn't change anything about the sphere so just continues on it arrives at d0 here at the loop end and it goes back into the loop start right and then it spews out the same sphere at d0 again and kinda continues on like so right so it keeps continues doing it over and over again for a hundred times right so since we're not changing anything yes you can but I connected the bureau up just to show you you know that we are operating with geometry rather than something mysterious but yeah you can directly like just do that without the burek whatsoever so now it's hard to see you know what's going on so I will be changing the position of the Burrup every time when the loop is running I will move the B rep in X direction by two millimeters something like that so now what's happening is well let me just then run the simulation for you so that you can see it's going still going yep now I reset it again going alright so now what's happening with this is we have a sphere right right here and we have the loop start so so the sphere goes into loop start and I'm talking about the first step of the I'm talking about the first step of the simulation right or not solution the first step of the loop so it goes right through the loop start into this component and it gets moved by 2 millimeters to the side right and then the moved version so not the original but rather the moved version goes into the d0 input of the loop and which means that for the next step of of the loop it's not going to be using the old sphere but rather is going to be used using the moved version and it's going to move that version by 2 millimeters again I'm going to repeat it and move them moved version by 2 millimeters again and again and again it is going to do that a hundred times right so every time when I hit reset it just goes right so it's going not very exciting but a lot of potential right so that's how loops work you have a bit of a more interesting I guess approach should we do it though all right I'm thinking if we should do something that's uncontrollable no because you will come up with quite quite broken geometries if I show you that and we won't be able to like that the remainder of the course is going to be as fixing the geometries so that's not going to work tell you what if we have enough time on Wednesday I will show you one more thing and it's going to look like swarm geometry it's going to look like there we go you know crap like this borderline impossible to control looks nice yeah or at least kinda nice but borderline impossible to control and to kind of work with but I noticed that the students really liked trying it out but by the end of the course they just pull their hair out trying to you know make architecture out of it because all that you can get from this is a bunch of curves and even even that it's not not that nice of a curve I mean even this whatever so so if we'll have enough time I will show it tomorrow for now let's let's keep it somewhere just disable preview so just select everything here and disable preview of everything and let me show you cocoon instead that is much nicer so for cocoon plugin we need we need some sort of an input from Rhino so I will be just creating two points in Rhino these two points here it doesn't matter where where they are just kind of close to each other right so these two points here I will create a point component and grasshopper and right click on it set multiple points and select the two points hit enter so now they are referenced and grasshopper I guess before we begin I should explain what cocoon does so cocoon is what's called the marching cubes based measure meaning that it can generate clean relatively clean geometry out of any forms and it can merge any forms into one single closed geometry so if I were to Google cocoon mesh grasshopper right and if we were just to look into the images of it yeah did this guys I guess the easiest to you and understand you know you have a curve and you have one two three four you have four points on the curve and everything is being merged in a very clean way a more advanced version of cocoon all or not cocoon but how to use a cocoon are these kind of things right this is just basically a crap-ton of points right and then you can use that to generate this kind of a cave systems and so on or you can use curves and and make some really interesting stuff with them yeah so so that's basically cocoon meshing and I'm trying to remember if we have any have we done anything with cocoon that's cool no we just use it to clean up stuff but that that's fine I will show you how to work with it right now so we have two points actually let's just create a curve as well oh that's not a curve just a nice something like that and just reference in the curve as well into grasshopper so we have a curve and two points now we want to create a single closed geometry how do these three things right out of these three objects and that's why we are using cocoon so in the mesh tab right in the top mesh tab cocoon sub tab you have what is it six six different tools that you can choose from the first two are basically the tool that's called cocoon is the brain of you know like the solver of the of the plugin and refine is additional tool that helps you yeah refine the geometry once it's it has been solved so the same then you have so these two are something that happens by the end of our approach and then you have B wrap boundary representation charge we have curve charge curve group charge and point charge in this case we will be using point charge for our points and we will be using curve charge for our curve so just plug put those in under mesh it sits under params map surface bla bla so slowly point charge curve charge the first input of the point charge is it asks you for points yeah sure we will give it points we just connect our points to the point input the next one is it asks you for a radius so what kind of a area does each point influence and it's basically going to create a sphere around each point right so what's the radius of the sphere basically we can say that the radius of the sphere is I don't know let's let's go for 20 I don't know so some number 20 is fine and then you have strength or or pointer yeah charge strength so here I always use one unless I need to be able to change that the radius of each point individually but usually like especially for this for for you guys who are starting to use cocoon just use you know just number one for for strength both for point charge and for curve charge right so I'll just type in one like that one in here one for curve charge plug that one in here and then for the curve radius I'll use something a little bit smaller like ten we have something like this going on okay so we have charges right so so each point and the line has a certain amount of charge associated with it and we can use those charges which are basically it's a whole thing I don't want to go in deep into marching cubes algorithm but it's it's basically how it works right or should I maybe I should screw it let's let's learn this properly okay a quick break from this time to time to Google some stuff so the way cocoon works it uses what's called a marching cubes algorithm right and the way marching cubes algorithm works is it has a library of 15 possible ways on how polygons a mesh can be placed in a cube right that's that's the first important notion right it has 15 different cases and if I were to break it down how it all works if it's basically the first step is the algorithm takes the space around your geometry and it vocalizes it what what does it mean to walk slice something well in 2d it's called pixel age right so in 2d you have pixels like two-dimensional squares in 3d you have voxels right so good example of that is Minecraft right well minecraft so in the video game Minecraft the space is voxel iced meaning that everything is divided up into these three-dimensional pixels which each of them has a certain quality attached to them and in this case it's mostly materiality and so on right so so so minecraft is walk sliced the problem with walk sliced stuff it is that it's all you know very tricky very boxy so to actually work within the box lized environment and end up with a smooth surface a marching cubes marching cubes algorithm was created and mostly it wasn't used for video games or anything like that but it was used for forensics and for how are those called you know that the dis cans of the full-body scans where they make multiple like sections of your MRI yes MRI scans or CAT is so these things right so so marching cubes algorithm initially was created to rebuild information from an MRI scan right because an MRI scan is basically series of pictures right which can be stacked on top of each other to recreate a three-dimensional shape and the picture is basically a picture is basically a grid of rectangles which are brighter or darker right if you stack that grid of rectangles on top of each other then you end up with a three-dimensional shape which is instead of pixels you have boxes and that means you can work with those muscles to extract a three-dimensional shape from series of cuts and if I google MRI scan yeah there we go marching cubes you can see exactly that right wait let let it soo min real fast oh do we have anything yeah the skull the brain and so on so distract you yeah there we go that's that that's good so from series of off sections you can rebuild a 3d model and that's where marching cubes algorithm comes in very handy because it can interpolate those 15 were earlier those 15 variations there we go 15 variations of polygons and how they are assembled in a in a voxel grid can be used to create a very high detailed and relatively smooth mesh which is not you know not this kind of mic it doesn't have this kind of Minecraft aesthetic attached to it oh this is actually this actually shows you quite well how how it works right so you have sections of the I don't remember the English name of that bone the pelvis bone so you have sections of it and those are stacked on top of each other and then meshed into a single shape and we can do that in grasshopper quite easily but I guess it's a little bit unnecessary what I'm getting at is marching cubes was used for medical stuff and forensics right so a gunshot wound to the head is much easier to you and a map out you know especially what's happening inside is it's much better to build a three-dimensional mesh and then use that in the court rather than pictures from the from opening up the corpse after he was shot I don't remember that then English aim for it anyway so in this case what's going to happen under the hood in our Rhino files or grasshopper files is that the cocoon plugin will divide the whole space into small cubes and it's going to decide where the mesh is going to be placed according to how strong the influence from this point charges and curved charges are right we will not be able to see the resolution we won't be able to see that and the minecraft you know those kind of minecraft cubes will only be presented with the final result but that's what's going to be happening under the hood so to make this work if you go to cocoon and you just use the straight up the cocoon node like that you have four inputs the first one is charges right and you have two outputs here the point charts and the curve charge so if you hold down the shift key you can connect more than one wire into an input right so if you hold down the shift key you can connect both the point charge and the curve charge both into the cocoon charges input the second input is the target I so value right so what I so value is okay to be fair this tutorial when I'm giving it to the master students it takes like two days so that case of value is basically first of all it's in between zero and one it's always between zero and one second of all it's interpolating how how strict yeah maybe that's that's a good point of view how strict is the marching cubes algorithm going to be when it's going to be dealing with point and curve charges if a charge is something that's a very small number will it still consider it to be you know a charge or if it's a small number will it just cut it cut it away and and ignore it so basically the higher the ISO value number the closer the ISO value number is to 1 the more stuff is going to be disregarded as non important the closer it is to zero the more stuff is going to be regarded as important in turn what you'll be observing on what you will be seeing is that the smaller the value you plug in to the ISO value the thicker everything is going to get and the bigger the value the closer it is to 1 the dinner everything is going to get so let's just do zero point five zero zero so just a slider 0.5 0 0 so 1/2 right somewhere in between 0 & 1 it's always a good idea to start off with you know these values and kind of then calibrate everything as you go next up is South Side's okay this is very easy to explain thankfully some size is the resolution of the space right everything is divided up into under-the-hood you again you won't be able to see it but everything is divided up into hold down the shift key yeah it should work so in in here everything is going to be divided up into your cubes into small cubes right which you won't be able to see but all of the stuff all the building of the mesh is going to be happening inside of these cubes the smaller the cubes the smaller the voxels the higher the resolution the high resolution is going to be but at the same time the slower it's going to be and then so on so you kind of need the balance usually the way I work is I never I I usually go for half of the smallest radius right so in this case my my radius is for the curve charge is 10 so I'll go by 1/2 so I'll choose five for the cell size resolution if I need to I'll make it smaller later and then the last one is executed would you like to execute the algorithm so we just toggle boolean toggle and plug that one in and toggle it to be true and we end up with something like this not too fancy you know but as I always say you need to start off with low resolution so that you have a higher degree of control and then once you kind of know what's going on you can increase the resolution right so in this case let me show how it behaves let me grab the point here and let me slowly move it closer and closer to to the curve see how as I move the points towards the curve it's the whole thing starts stretching out oh actually let me I will increase the resolution by the trip decreasing the cell size to something like 2 so you can see now it's it's much more polygons and but it's going to be easier to see as I'm moving the point towards the curve the curve is starting to bulge and the sphere is starting to bulge and if I move them beyond a certain threshold they will just meet and they will become a single single mesh so so this is how it works port chat something in Swedish don't care okay continue so can make something nicer for instance I will just delete everything well not everything everything that I have in right now and let's say let me just quickly make make something a little bit nicer for you to check out so I can do something like something like this and maybe it's doing that and I can kind of use polar array polar five items whatever so I have something like that and I use that as curves multiple curves so we end up with something like this let me increase the cell size a little bit it's it's a little bit too wonky and then I can keep you know I can keep adding things so I can say that you know I need a few points here and there whatever for some reason at the base I need like five points so it becomes something like this and then I have no idea what I'm doing so so maybe we do something like that and then rotate this by 30 degrees was it 30 yeah good enough rotated by 30 degrees more curves and maybe increase the radius of the curse - - to be a little bit higher or no maybe not so you can end up doing something quite fancy I guess well not not necessarily fancy but something rather complex really quickly wait am i messing it up I am what's going on let me just finish up here and I'll just done I'll just look at the chat just want you let me just move it if then control points control points control points control control move it up there we go and then maybe we have a curve going through here [Music] very values set multiple curves so we end up with you know this kind of nonsense right now I didn't think you know what what I was doing so it's it's uncontrolled but yeah if if if they are fat with the same numbers it means that they are smaller right so that this isn't the radius is in millimeters am i recording yes drawing smaller scale and I got the curves in a circle by using ray polar to okay so so we end up with some suffering you know nonsensical like this and actually I would probably go back into here and just I really don't want to play too much with this but I just can't leave it you know so so screwed up yeah that's fine okay so we end up with you know some sort of a shape like this and there is a certain a certain amount of cleanup that we need to do to make this nicer because here it's a little bit you know broken broken down can you check if you have smooth smooth mesh tool not just smooth but a smooth mesh it has like a orange icon with bubbles and so on yes-yes-yes-yes-yes-yes-yes-yes okay good so let's use smooth mesh let's use that one and it works exactly like it does in right now right so it takes the points of the mesh and it kind of moves them so that it moves them according to the neighbors to the neighbors that the points have right so former Smoove I will just connect the my my sorry my cocoon mesh output it to my mess move em input like so I will make sure that I hide everything except my mouse move and here I have more options what oh yeah that's good that's good I have more options I have the strength for smoothing and I would suggest not messing with the strength 0.5 is fine it works most of the time quite well so don't mess with it then you have with skipping naked edges in this case we don't have any naked edges and we will not have any naked edges so we don't care and we have iterations so this is basically how many steps will it do for smoothing rule of thumb is somewhere between 1 hmm one in 15 steps you don't want to go further than that the higher the step count the slower it's going to be so I'll just do like five steps of smoothing oh yeah and also with every smoothing step is going to become thinner and thinner that's that's also I think that happens so five steps and there is a limit for maximum change in the structure but we don't care about that limit so we can see here that even though we are using smooth it's not smoothing it out that well and that is because this geometry that we have here is that the polygons are arranged in a very funky way and it cannot smooth it properly because the topology of the geometry is not great you know it's not while it is a perfectly 3d printable geometry and it's clean in that regard the topology of it is not clean so the arrangement of how the faces are arranged are not clean to cut to fix it just a little bit in between the cocoon mesh and immerse smooth we can use weaverbirds Catmull Clarke subdivision so if you go to weaverbird tab WB if you go to that tab and you go to your sub D sub tab there you will find viewer Birds Catmull Clark subdivision and in between the murse move and cocoon we can use this catwalk lark to kind of mitigate a little bit of that you know bumpiness in the structure so I will just connect my cocoon M output to my cattle Clark M input and connect my cattle Clark o output to my mouse move em and put and now it's a little bit better it's always going to have that kind of a little bit of rip Ripley effect it's just something that we can't get rid of easily but at least now it's a little bit not tiny bit there I wonder how refine would work while you're doing it let me just check this refine [Music] yes but at the same time it gets heavier so at a certain point if you increase the if you decrease the cell size you end up getting more and more polygons but at a certain point your computer issue is going to say no right so so there is a trade-off it becomes much slower I'm just trying out the refinement just a second maybe I should okay man that's a lot of stuff to give you in it again let's let me show you an alternative way which apparently is a little bit better and it it is incorporated in cocoon so cocoon refine refine the output from cocoon right that's guy right here it has a lot of inputs and we will be going through them I will be explaining what they do so let's start from the from the start refinement data explanation of it refinement data from cocoon okay we have no idea what it's doing what it's asking myself but cocoon node indeed has refinement data output so I will not be asking any questions anymore I will just be connecting cocoon refinement data into refine refinement data input you know samples maximum iterations to sample vertex against ISIL okay so the way I so values work is that they are relatively infinite so I guess in in resolution and vertexes are not right so as vertices are being created they're kind of they have this kind of step size at which they need to be placed so maximum iterations to sample the vertex against it I so is basically when refinement is going to kick in when this no it is going to kick in it's going to start slightly moving the points of the mesh around so that the the ideal version of that match mesh much better so this is how many times does it try right and let's just say 10 so just slider 10 so it will go 10 times over it and we'll try to kind of polish out the geometry as as well as it can next one is sample size so sample size is basically how big of an influence radius does each point have around it each point of the mesh so each point right here where the edges meet you have a point of the measure of vertex of a mesh how big of an influence does it have right so here I will just say like one millimeter right so it doesn't have a lot of influence so it's basically it cannot be moved really far but far enough for all of this to become a little bit smoother so one millimeter should be fine then you have sample tolerance this is at what distance does it does the refinement node say that yeah this is good enough right sample tolerance I will say that sample tolerance should be 0.1 millimeters so if it is if each point of it is closer than zero point millimeters to the ideal mesh to the perfect you know forum then it's going to say yeah this is good enough zero point one oh one millimeters then we have laplacian smoothing I can show you what it does through an image laplacian smoothing so you have a mesh right in this case it's a mesh with five one two three with five polygons which are triangular right and right in the middle if you have a point of where to see which is off-center what the laplacian smoothing will do is it will just scooch it so that all polygons are kind of the same size and the vertex is in the center very simple diagram with with five polygons but in reality you know it kind of usually looks like that just smooths everything out and you even get the dimples from time to time but it's it is smoothing and here it's asking for a number of laplacian smoothing passes so how many times will it go through the geometry and try to smooth it out and I will just say yeah just just go through it like five times if I need it to be smoother I will increase it keep in mind that laplacian smoothing will shrink the geometry a little bit so so the more you increase this number the thinner everything is gonna get then we have balanced passes oh God so balance is mesh and that's not how you write balance but that's good enough this is a good table I can use it iterations will stop helping with smoothness if you have the tolerance like tolerance and the sample size these two guys are stopping the smoothness of over over smoothing right the sample size and sample tolerance are basically brakes which which don't let that the shape to to change too much and it's important to have those brakes or else it is going to the mesh itself is going to start messing up if it's if it's if it gets too thin and if it gets smoothed too much so back to balances you can see balance three valence four valence five valence six right so balanced three is when you have a single point a vertex that is shared between three polygons balanced for is a vertex that is shared between four polygons valence five vertex shared between five polygons balance six vertex shared between six bubbles kind of easy the the thing is that we really really like when there is balance three and valence four right that's that's really easy to later on those kind of meshes are later on really easy to divide into you for instance stripes into strips and you know laser cut them out and so on when you have valence five you know these kind of arrangements of mesh faces it becomes kind of problematic because then you can then you kind of need to start well you can see here even you know direction of the mesh which which is shown with an arrow in the bottom so here it's just you know it just goes right it's just a triangle so it can just goes through if you have valence for it needs to make a band right if you have valence five it starts doing this zigzag or it can do a brand it can make a branch or it can do a zigzag in the opposite direction with valence six you don't have you cannot you always get branching of the directions of the stripe so if for instance if you're doing a mesh if you're preparing the mesh for production just like mark furnace where were there Google again mark furnace a mark [Music] yeah whatever did this kind of this is even better minimize there we go so these kind of structural stripes right which are flowing along the mesh if you have valence six somewhere here those stripes would need to the day they would become really weird they would need to branch out and there would be a lot of problems involved with it so usually different different programs use these kind of algorithms which take care of balances and they try to do and to remake a mesh with balance three and balance four vertices in this case it's here balance passes number of iterations to fix balances it doesn't even say you know that those are okay variations those are just something that needs fixing and for that I will just say yeah just try once right try one time to fix it if you can't then screw it alternatively I mean you can use something like ten for for it as well if you know if one doesn't work but in this case we are not going to be making any structural stripes out of this so we don't care one is fine and then we have sub do is subdivide number of times to subdivide this is the same thing as Caswell Clark subdivision right so I will just say yeah subdivide it once you know one time last one is execute I will just toggle bullion toggle turn it on and you can see how much smoother this thing became I can bake out this mesh from refinement place it here you know I'm just looking at it oh I I know what I can do I can bake out before the refinement and after the refinement just to show you the differences between them so on the left-hand side the mesh is before refinement on the right-hand side it's after the refinement right so you at least from you know from how the polygons are arranged you can see the difference right you don't end up having these you know parts here but at the same time since we're still using only one pass for fixing valances in some cases I end up with two to two let me just quickly mark it out for you so that you can see what I'm what I'm talking about come on Jesus Christ mmm how do I show it extract mesh faces there we go so in some cases you still get did this kind of awkward single point you know balances that that are not that great but that's that's okay again we are looking into 3d printing not structural loop creation so as you can see this is a pretty powerful powerful tool that can be used to create a lot of organic shapes and all that matters is what kind of all that matters is what kind of geometries you you plug in there right questions no question some strange oh there we go oh yeah can can you send me a phillips project what can we do to make the volumes into more detailed objects make it more human skill later - sure though that's something that the teachers and academy a-- tends to say especially the older ones i mean all of the buildings that have seen maybe they are big color travel is created that wait wait we will we will come back to that question in a bit I just want to show this this project real fast and then we will talk about what can we do to make the walls into more detailed objects yeah I will come back to that that's actually a very important a very important question but now oka has sent all of you a link to see her classmates yeah her classmates back when she was studying her master's work with exactly the same approach as I was showing you now right so actually yeah chance the question of what can you do to detail it out more to introduce detail at a more human level yeah just add more curves right and it's just going to be so so this this was an exploration over but yeah they're capturing the Gothic line that's that's very poetic but but it was an exploration over the ornament and architecture and how can you use ornament as something that's structural and you can read through this this is actually a pretty damn good project and you know all of the possible ways of how you can connect things and the beauty of it is that it's achieved through something that is so simple right it's just curves and cocoon mesh right that connects the curves so all that matters is how you what kind of clothes do you draw right and these are drawn by hand well in Rhino but you know these are drawn and Rhino rather than simulate it and in some way right so it's it's all you know just messing around with the form oh and then there's more stuff here which is not and added other stuff is not important don't look at the other stuff look at the curves that's that's very nice I think I saw some questions here Oh No yes kinda if you try to make if you try to make this mesh into your clothes solid poly surface it will not work it will work but your computer will not handle it it will crash your computer unless you have a really strong computer - because it's what is going to do it's going to take every polygon and it's going to make a surface out of every polygon so imagine you know how heavy it's going to be that that poly surface that you get there are there is the whole commercial industry that is aimed towards bringing mesh geometry into you or or translating mesh geometry into NURBS geometry and those kind of software packages cost a lot of money so there is there are ways on how to do it but they are hard to do and there are quite quite tedious it is though quite easy to make a mesh out of NURBS poly surface you just type in mesh in Randal and it just makes it into a mesh but usually when working with these two geometries these two types of geometries you want to work with them and separately and understand the limitations of one and the other meshes are much faster so you can achieve much more complex results with meshes with nerves poly surfaces you can be much more accurate it is not to say that with meshes you cannot be accurate you can go you know like 0.01 millimeter tolerance and then it doesn't matter anymore if you're you know with 0.01 millimeter off in your architectural model so that's one thing the reason why it's very hard to get a NURBS poly surface from a mesh is because meshes contain much less information so it's hard to create information from nothing right while it is very easy to make a mesh from another's poly surface because all you need to do is you just need to remove a lot of information right so that part is easy when working with architecture and I have it here right now with my master students I'm just trying to let's see here do we have it here maybe no that's just that oh yay the webinar has been uploaded by the way from yesterday anyway there we go this guy right here so for my master students I've been sharing this tutorial where we were indeed using meshes and generating these kind of forms with meshes right and then I told them to actually use a command that's called mesh to nerve to create a NURBS poly surface from these meshes to be able to use boolean and so on to be able to do that you need to have very not very but quite low resolution mesh right and then you will be able to do that so what I'm getting at is if you have a million polygons right it means it's we're going to make a million surfaces but in reality in architecture in a building you will never have a million surfaces it's always going to be some sort of a paneling system and it is going to be architecture in itself is somewhat low resolution so if you're planning on changing the mesh into a poly surface later on you need to be very mindful of it at early stages and use lower resolution approach so in this case I would say subdivide is turned off first of all and cell size is turned to 12 3 is actually kind of Kinney I think yeah let's try so I'll bake this this guy out and I'll come back to introducing more you know resolution to the buildings in a bit but more human scale to the buildings in a bit but so so you can see the difference between these two right so this is the ideal mesh that I would be using for rendering and so on and this is a mesh that I would be using to change it to a NURBS poly surface and if I just select it and type in the mesh to nerve and that I'm doing that in in Rhino and I hit enter and I wait and I wait and and I wait a little bit more yep there we go and then I just delete the mesh so now this guy right here is a NURBS poly surface which means I can use all of them oh that's not it's completely missed missed it with the box but I can for instance do some sort of boolean difference operation with a box on it and it still notice how slow it okay I am recording a video and I am you know streaming this but still it's pretty slow oh let me call you in a bit and then we'll continue
Info
Channel: Gediminas Kirdeikis
Views: 8,679
Rating: 5 out of 5
Keywords:
Id: PtC6oYbVLN8
Channel Id: undefined
Length: 193min 29sec (11609 seconds)
Published: Tue Mar 24 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.