Novedge Webinar : Designing 3D Patterns with Rhino and Grasshopper

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone welcome to today's novice webinar designing 3d patterns with Rhino and grasshopper one of the strengths of grasshopper the visual programming tool for Rhino is the natural ability to process complex geometry data for this reason one of its most interesting application is the creation of elaborate 3d patterns and texture which as you know are being used more more in architecture and product and industrial design this webinar will give you an overview of different design strategies and workflows used to efficiently develop a library of reusable patterns and let me tell you a little bit today's webinar presenter market reverses an engineer developer and 3d designer consultant with over 18 years of experience with the rhinoceros in the past seven years yes developed workflows and tools for integrating the parametric abilities of grasshopper into the creative concept design pipelines his published work is visible at market reversal I T and is the founder of car body design a leading website on transportation design since 2004 and let me tell you a little bit about of edge Norwich is one of the largest online stores for design software and we offer you just sörman of software solutions and as you can see we offer a huge amount of special promotions that you know change every week and that really extensive on all of our product car catalogs products so come visit us and Norwich calm and again you can find us on Facebook Twitter Instagram you name it and I also want to remind everybody that I'll be recording this broadcast and you can watch it on Vimeo and YouTube later today and now without further ado I'm gonna share marker screen and great look looks great already Thank You Marco welcome to the novice webinar take it away were very excited Thank You Barbara hello everyone and thank you for having me I am quite excited because I'm realizing that I've been watching no veg webinars for Rhino for a very long time more than five years actually and you've had great presenters like Kyle oceans and Brian James and Gabe Matthews so I am very happy to join them today now today I want to speak about patterns and in particular how to use Rhino and grasshopper to create parents now why patterns I believe there are a couple of reasons why this topic is quite important today and is very interesting for designers parents are very relevant today as they are becoming more and more part of our current aesthetic language and we can see many different applications ranging from architecture to product and industrial design to transportation design and even graphic design and also fashion design when there are usually associated with 3d printing methods so I would say that parents today are quite trendy and even if I don't like the word trendy because as designers we would like to always create something that is timeless but at the same time we cannot ignore what's current and we can not ignore what the world and the market is requesting in terms of static so I believe that being able to to to model to create this type of forms of shapes is something that is very valuable today but apart from this consideration I also think that patterns are a very very interesting quality because they combine two characteristics that may appear quite distant from each other so on one hand when you see something like this where you have geometry that is basically made of repetition of singular elements modules our brain is very good at processing it because we are very good at processing pattern in just in nature so we immediately understand that this geometry is something different from a man-made thing so why for instance if you take a car exterior the sculptural shape of the body is something that we perceive as something that has been designed and drawn and sculpted by a man or a team of people when you look at these shapes you usually associate this design it's something more artificial more machine made you understand that there is something behind it a procedure an algorithm they rule a mathematical rule that is giving this effect so this connects the pattern design with something like the concepts of future or technology or science gives of that kind of feeling but at the same time other types of patterns can have an organic shape and a different look that reminds us of nature because if you think about it nature is full of patterns I mean not entirely full but there are many many patterns around especially in vegetation and cellular structure and so our brain is very very used to process these very complex shapes quite easily we immediately see that pattern the repetition of geometric elements and so when we see something like this we not only we see something that is artificial but at the same time we feel that there is something natural about it something organic about it so I believe that this type of shapes have this duality this they combine artificial with natural they combine man-made with the with organic and so they're fascinating to me and I think that can or can be a very very good creative tool for coming up with different things now why are we speaking about grasshopper in particular so grasshopper is a little programming tool and is very good for creating this type of geometry because as Barbara said in the introduction it's able to process geometry with big number of data now if you think about it then we have a look at some of the pattern that are shown here if we think about the traditional 3d modeling approaches and think about modeling something like this using NURBS or meshes but using a direct modeling approach now we immediately see that there is a challenge because the because of the high number of parts maybe the geometry is not very complicated but the high number of parts and the fact that maybe we can see some variation going on and so we need to figure out a way for applying that variation without having to manually scaling each one of these of these elements without having to transforming these elements on a individual basis now some programs do have application tools like modifiers or deformers and this can help in processing data and geometry in a non-destructive way applying transformation on an overall and on a single measure and a single geometry but usually this tool are quite limited so they are not very flexible they don't give you the ability to create exactly what you want so is there any other alternative method for doing it well a possible different method is to use a programming language so we can write a script we can write the macro and that's perfectly possible and there is a problem and in my opinion this problem rely is is basically based on the workflow because when you write down some lines of code your mindset is switching from something that is focused on creating a geometry designing a thing in three dimension to translating those steps into code into lines of functions variables combine them together using a syntax and the very fact that you are typing on a keyboard rather than moving elements on the screen in my opinion gives the brain something that is something that makes your mix you lose that connection with your original intent on the other side when you work with blocks so we have here the blocks that build the definition which is the algorithm inside grasshopper you are arranging things in a visual way and the steps that you are creating are very close to the workflow that you would follow on the 3d viewport of a 3d application excuse me so this this fact alone makes the use of a visual programming tool very very exciting because you can just use the right tool for the job and to me it's not the case that if you think about it 15 years ago we already had all the programming languages of the world and we already had capped so we were able directly there were no technical limitation for creating these parents but we see this wealth of parents everywhere just for since a few years back and I believe that is something to do with the availability of these new tools so before diving in and with the practical demonstration I want to give you an overview of the objectives of this webinar so the first thing that I want to say is that I don't want to just make a step-by-step tutorial because I believe that that would be quite time-consuming we would be only able to cover a couple of applications on the other hand I don't want to just show a bunch of slides and talk about things because I believe that having a practical demonstration is much better so I will try to stay in between these two extremes and my goal is to give you the best value that I can that I can in terms of wealth of information I believe that every one of us experienced this thing where you are joining a webinar and you really hope that that hour is going to be useful because one hour in today life is a long time actually so I hope that I'll be making the most out of it and the tube with him making the most out of it and that it will be interesting so if you have any question Barbara is going to handle them and if something is too fast I mean you can always watch the video later if it's something that just needs to be watched one more time or you can ask a question we will have a question and answer session at the end but if it's something that is better to just clear out immediately then Barbara is going to stop me so I'm relying on on her for this ask away okay great so let's dive in and let's move to our grasshopper file so we have here our rest of the window on the left and I'm assuming that you have a basic understanding of what grasshopper is and the general workflow so I won't give a 101 basic introduction I will start with some basic things but I want to cover a lot of things so hopefully it will be it will be worth it so the first thing that I want to cover is the type of parents that is can be considered the most basic one and in this case what we have is a series of repeating elements that are disconnected one from the other one so this is easier to handle because we don't have to worry about the connection between these pieces of geometry so these are basically individual elements so I will start with something like this and in this case what will be create will be creating is something like this so we have a grid of elements arranged on a plane and we can see that we have a variation which is applied on the sides of each of these individual boxes and you can see that this variation is somehow changing along a direction so we'll see how to build these building blocks that will provide us with some basics that will be useful for all more or the more advanced applications so first thing first let's see what we have here so I have tried to organize my definition in blocks so that it's easier to follow so the basic element that comes out of this block of instructions is this box here which is quite set forward because we are creating a basic polygon we are extruding it and this basic polygon can change in size can change in number of segments and we can also specify a fill it radius then we extrude it and then we cut the holes and so we rotate it in order to have it aligned to the axis and then we have this prism here and I also prepared an alternative item that we will be experimenting with so I have this basic element now the other thing that we need in order to get this pattern here is the grid of points that will provide the location of each individual copy so in order to create a grid of points in grasshopper there are many many different ways for doing that and here are some basic examples but among the default component and among the add-ons you will have a variety of ways for doing that so here for instance we have a square grid and an exact anot grid which is the one that we have we are being using here and then a triangular grid now if you notice we are just taking the points of these components these are the outputs we can control here the cell size the count of the elements along the two directions and the points have been flattened which means that they are come structured in a list which is arranged in rows and columns but for the purpose of this demonstration we will be using simple lists so just in case you wonder what this arrow is I won't go into detail about the data structure because I believe it's not part of the goal of this webinar but if you have any question then please feel free to ask it so basically how we can we create the pattern given these two basic elements now let me go here and so that we can just start from scratch so we have these base elements and we have a grid of points now in order to create the I'm sorry I'm going to hide this in order to create the the grid of elements we need to copy this element to these point locations to do that we are going to use a very basic component which is the move tool because actually we are not moving but we are creating a copy here based on a motion vector so the German that we want to move is our base element and we want to move it to this grid of points and in this case the vector is equal to the coordinates because we start from the origin and so when I click on it I basically in one step I've made all these copies and here I want to show you something that we are going to see every time here we have created a number of elements in this case it's the total it's the total of 72 elements with a single just with a single component now if you know a little bit about about programming languages you know that if you want to do the same thing writing a macro you probably would have to write a for next cycle in order to just cycle through all the points here and then apply that that transformation so you can see that compared to writing lines of code this is much more intuitive and here in my opinion lies the the the factor here the the importance of the use of a visual programming tool okay so once we have this pattern we want to add some variation to it and in order to do that let's go back to our image here now if you look at different examples of patterns you usually see that the variation depends on the position and it's it's a gradual change of geometric properties it could be the sides like in this case it could be also rotation it could be something different but it always relies on the position so basically in order to connect these transformation to something tangible we can connect it to the distance from a given piece of geometry these geometries are called attractors and we can use points or we can use curves to generate this variation and I want to show you both these these cases so I'm going to create a point in side where I know I'm going to hide this so I'm going to create a new point here and I'm going to reference the point from grasshopper by importing an empty point parameter right click on it's at one point select it and now we can see that it's highlighted which means that it's inside row sober so I click on these components the Rhino viewport is just used for displaying what's going on inside grasshopper this is geometry that is not inside Rhino I cannot select it just in case someone is wondering if if it's not familiar with the workflow so we are using Rhino primarily as a display for what's happening here for debugging this algorithm in real time so once you have this point we want to calculate the distance so we use the distance component and I'm typing here in the search box because to me is faster than looking for the component in the toolbar but you can find all these components arranged in the toolbar in different categories here and so we can connect the first point which is this attractor point and then we can connect the grid of points in the second input now what we have here is a list of numbers that represent the number the distances between each point and the attractor point so this will affect the behavior of the transformation that will be applied to each one of these elements here so if I want to change the skinning factor I would need numbers that can range for instance from 0 to 1 and so these numbers here are different so how can I transform this list of numbers into something that can be used as a scale factor well in order to do that we can use a remap function that does just that so we indicate a list of numbers and we have a source interval of of numbers which is called domain in and then we have a target domain now for the source we need to provide an interval that describes this list then includes all the number in those lists so basically we want to go from the minimum distance to the maximum distance and we can use a specific component which is called balance that gives us just depth so I can use another panel here and I can see that these distances range from 5 to 77 667 so this is going to be our source our range starting range and the targets range by default is set from 0 to 1 and so if I use another panel here you can see that all these values have been remapped from 0 to 1 the maximum value is the first one and it it has become 1 and then go the list goes on like that so now in order to use it to scale the basic pattern we can use a global scale component and we need to provide the geometry and the geometry is the output of the move tool here and this geometry needs to be scaled around each individual Center because otherwise what's happening here is that the entire pattern is being scaled starting from the default Center which is the origin we don't want that and the default factor is 0.5 which is a fixed number so in order to change that we need to provide these two inputs so what we want to do is to provide a list of feathers which is the same list of points that we see here so we can just connect these two components and then we can use the remapped values here now what is happening here is good the direction is right but there's something we know that going on that is not perfectly fine first thing first we have an error going on here and that's because the closest element has been scaled by a factor of 0bk because we have used a range that goes from 0 to 1 and basically it has disappeared and that's the first problem the second problem is that I don't particularly like the fact that these elements are very very small so how can I control this scale factor I need to specify a minimum scale factor and maybe also a maximum scale factor so how can I do that well let's introduce a couple of sliders that are the inputs that allows us to go to specify variables basically and I want to go from zero point one to one and I make a copy by dragging and talking on the alt button and I'm using these to create a range which is the construct domain component and I'm connecting this tool to the inputs and then what I have here if I use the panel is the range that goes in this case from 0.1 to 0.7 now this is our target range for the scale factor so if we look at this we met numbers component we are remapping the distances from their natural interval from minimum to maximum to a target domain instead of using zero to one we can just delete this and connect this domain here when we do that if we select the scale we can see that something has changed and then if we move this slider you can see that we can control the minimal scale factor and the maximum scale factor we can also invert them so that we can go from big to small as we move away from the tractor point now this attractor point can be moved it right inside the Rhino viewport and we can create different effects with this radial variation now what if I want to do something different what if I want to have the variation that goes along a direction now in this case what I want to do is to introduce an attractor curb so let's see what's different I want to select the pattern so that you can see what's going on here and I want to just draw a simple line and I want this light to be an attractor for the pattern so I'm going to use a curved component here right click set one curve now it's highlighted in here inside crossover now I need to calculate the distance between each one of these points and this new curve in order to do that I need a component that is called curve closest point so I have two inputs so I have the grid points as input and I have my attractor curve as a second input now among the different outputs I'm interested in the distance so now this distance is going to be similar to the one that we have seen here so a bunch of numbers that depends on the position of the point now all that we have seen before can be applied to this distance here so I'm going to just rebuild the same exact sequence just so that it becomes a little more clear and so we need to remap these numbers so we need to remind the interval the range that goes from the minimum to the maximum here so we need the balance component and this is going to be connected here in the source and there's a target domain I can use the same custom domain that I have created here so now I can make a copy of this component here and instead of using this scaling factor I'm going to use the new ones when I do that you can see that now the variation is changing in a linear way and here I've set the minimum value to zero and that's why we have that error so now what happens is that I can move a line and I have this linear gradient and I can also transform this line by changing its degree for instance to tree and activating its control point it can become a curb and now this curve is going to affect the pattern in a different way and in this way it's possible to really sculpt the variation inside now we are using the variation in size because it's quite simple to see and we just need a scaling factor but we can use this exact same method for changing the position the rotation change changing properties of individual parts of these elements so the only thing that we need to do is to basically use a different target range of values that make sense for rotation we will be using rotation angles or for a position change we will be using linear units so in this way we can apply these these variations to several different properties of this basic element okay so once we have done that let's make let's make something different because as so far we have created a pattern that is lying on a plane now what if I want to create something that is not on a plane but lies on a complex surface well actually it's pretty simple to do because instead of copying this pattern to a grid that lies on the world XY plane we are arranging items on a grid of points that is built on a surface in order to do that here we have the same basic element that we have seen before and the grid of points is built in a different way so we have a target surface and we have the divided surface component that takes as inputs a number of divisions and divides the NAM in the NURBS curve along the U and V direction so the distribution of control points depends of these points depend on the distribution of the control points of the NURBS surface then we can use this point here but it is not enough because we don't want just to copy the base pattern to this new location we also want to orient them so that they are oriented for example along the normal to the surface in order to do that we can use the evaluate surface component and calculate at each individual location of the point the tangent plane which is this frame output here now this is a visualization of a plane and then instead of using the move tool we are going to use the orient component this is similar because we can get a base element we can provide a base element the source is the source plane which in this case is the one set by default to the world X Y and the target plane is going to be this list of different elements when we do that the target plane also contains information about the location because the planes have their origin in the grid points so we can build this base pattern with a single speck here now what can we do with this what we can do whatever we want because right now we have the same exact things that we had before a basic pattern which is a list of individual elements and we have a grid of points so we can use for example example the same attractor point workflow so we have the distance we romantic to the we find the domain we remapping to a target interval that is set here from zero point four to one point four and then we apply the scale factor and we can see that this is our variation that is driven by the tractor point or we can use an attractor curve that is here and that give us a different type of variation here we can always change the location of the point or we can shape the curve here and add a visual feedback of the resulting geometry okay so let's make one step further and let's have a look at what yet happier and let me just hide this curve now if we look at this this geometry here we can see that the variation that we had starts from the minimal scale to the maximum scale and it's linear now this means that I can control only the starting point and the ending point tending the scaling factor but the remap component is remapping numbers in a linear way now maybe I don't like that maybe I want to have a different mutter variation at the beginning or maybe I want to have something that has a different distribution of change so in order to do that we can use graph mappers now let me just show you how we can do that so here we have our base pattern which is built on a surface in this case we are using small spheres these are meshes and we have a grid of points so we start always with this the same to conveys component so now we want to remove the numbers but before we do that let's introduce the graph mapper because the graph mapper is a special input that allows us to use different types of graphs I'm going to use the most basic one which is at the Xia curve and you can see that by moving these handles we are able to specify a different different variation curve now the problem with the graph the graph mapper is that this is working with numbers that come here in the input and the two axes range from 0 to 1 both on the horizontal axis and on the vertical axis so we need to make sure that the numbers that we are providing here are mapped from zero to one now these numbers will be mapped here along the X and then the resulting number for each one of them will be the correspondent value on the vertical axis so we will have numbers that range from zero to one as input and we will have numbers that range from zero to one as output so how can we do that well if we take the distance and we introduce the remap numbers component we can see that we need we still need to specify the bounce so the original range of values but the default target domain is 0 to 1 which is exactly what we want because now all these values range from 0 to 1 so we can use the graph mapper so we can connect them to the ref mapper and now the problem is that when I'm making a copy of this now we have as an output we have a list of numbers that is still ranges from 0 to 1 but you can see that for instance 1 has remained 1 because we are here and this is the correspondent value but as we move here we have a different distribution a smoother distribution at the beginning and then we have a different rate of change and then we have a smooth distribution again anyway we need to remap these numbers because we need to specify again the minimum and the maximum value so now we need to introduce a second remap component and in this case the original value that we want to remap is the remapping the the output that comes out of the graph mapper the source is 0 to 1 and the default value is good for us now the target we can use just the custom domain that we have created with these sliders so I can just connect there to this and now what I can do is again create a scalar component we want to scale this base pattern here we want to connect the grid points that act as centers of the transformation and then we want to use these factors here now let's see how this works in order to see that we can just move this slider here and see what happens so as we move this you can see that we are changing the variation along the surface dooming in a little bit so hopefully you can see what's happening here now this is already something very interesting but we can also get a bit crazy and we can specify a different graph types for instance we can use a sine here and now if I take this handle and just move it towards left I can introduce a wavy pattern very easily so graph mappers are a very very easy way for visually sculpting our patterns now we are working on something basics but this idea the application of this workflow is something that you can do with whatever geometry you're working even if it's something more complex okay so I don't know if it there is any question or I can go ahead and see if the the speed is the pace is right if it's too fast or if you are happy with it in case Barbara will let me know yeah for now want to show you yes let us know we we have no questions so far okay great thank you okay so now I want to show you a different way for creating patterns until now we have created individual elements but now we want to operate on a surface because that's the most interesting application so let's see what we can create now before we do that I wanted just to point out how for instance this pattern here which is a recreation of a design shown by a BMW with a recent concept car is exactly what we have seen to what we have just seen because this pattern is made of individual elements that in this case are pairs of triangular pyramids and there is an attractor pointing somewhere here that is driving the scaling operation so that we as we move far from the point this couple of elements are scaled up now in this case we also have some trimming here but the basic idea is exactly what we have seen so far so now let's switch to something different and now we want to operate on a surface and we want to introduce some kind of variation on it so how can we do that well there are many many ways for doing that and some of them actually are quite interesting because you make use of several paneling options that starting from a target surface that we have here can create in a single step a panel ization that can be used as a basis for our pattern now these three different components come from the plugin that is called lunch box which is this one here and it's a free add-on and it's one of those must-have things that you need to install when you work with crossover because it has many many useful things and among these are these panel ization tools so just starting from a surface in one shot we can create these quad panels or we can create diamond panels or we can create even random quads here in play with the seed to have different different distribution of quads now we are going to use these panels here and we need to find a Center for each one of them because that we have seen we need a grid of points that will act as centers of transformations so in this case I'm applying the area component to each one of these panels in order to find not the area but the centroid of them and we can use the same workflow for all of these panels so we have we can have a choice of quad panels with the corresponding centers or diamond panels with the corresponding centers or random panels with the corresponding centers so again we have this block here this logical block which can be reused and then we are using these placeholders that are the geometry with so this means that I can provide mesh or surfaces be reps the geometry type which we can find here is a placeholder for all of these types so it's something quite interesting because we can switch type of element without worrying too much about the type of geometry and then we have this grid of points so now we can operate in exactly the same way we have seen so far so in this case I have applied an attractive point to scale the panels and I have found something like this and I'm able again to change the distribution here by moving the handles here on the graph mapper now what can I do with this well now it's really a matter of design decisions and it it's basically it's the fun part because we can do many many different things just an example here what I done is to take these scale down versions and I have calculated the offs the the normal in a similar way to the one that we've seen before and I have calculated a vector and you that vector for offsetting these surfaces now this second offset surface has been turned into a curve and then I have taken the original pattern transformed into a curve which is a polyline actually and then I have merged these two lists in pairs and the arrows that you see here are needed in order to not create a single list of elements but just join in pairs the corresponding elements and are called grafting and is again it's related to the data structure and it's something that we'll be covering if needed okay so what we can do now is to apply the loft command now the loft command is taking the pairs of of polylines which in this case are this one here and let me use the line tool which is a bit better this one here and this is repeated many many different times and it's creating this frame the set of four angled planar wolves what we can do is to prepare instance take this holy surface and join them together with the original offset surface that we have created here and so we have this interesting shape this panel is a ssin and as you can see the point attractor is still working so we basically can apply separately the panel ization and the applying a variation of the scale driven by an attractor point another thing that we can do just to give you an alternative possible alternative is to take the original polylines the con towards of the cells I'm scaling them down by fixed factor here and then I'm going to use these two curves again I merge them in pairs and I and I in creating these frames that are following the surface and then I can use the same scaled version here and pair with the other curves that I have created before and again I merge them in pairs and I use them no not this one sorry but this one here am I using to generate this new polisher face and then I'm going to select both of them and merge them together and now I have something different where basically I have this rib going on so there's no limit to what you can do once you have the base pattern and a center point for transformation you can operate on multiple elements at the same time and this is the strength of grasshopper because we are working right now with over 150 elements and we are able to change parameters in real time and see what happens visually with it almost visually almost instant feedback okay what can we do more than that well there is another type of panel iteration that is available with lunch box and let me just start over again with our surface and it's called exact on cells now compared to the ones that we have seen before and before I do that I I wanted just to show you another thing here sorry about that but I I think it's quite interesting what I can do once I have built my parametric definition I can always go back here at the beginning and here when I'm defining the set of panels and the or the set of center points of the grid I can just use a different set of panels and a different set of points and now I'm basically applying the same rules to a different set of the different basic geometry so this means that if you separate your definition in blocks logical blocks connected by these nodes that are connection points between the the logical blocks it's quite easy to come up with a library of algorithms that you can use in different ways like building blocks okay now I want I want to see while you're there how can you add tightness to the surface that's what we are going to see right now right it's the is it right in this example so we are going to see it right here we have a thick surface okay so in this case what I have is not a surface but these hexagons cells is going to give us a list of curves that are these polylines right here now we always need our center points for for our transformations and in this case I'm going to calculate the center points using the polygon Center component so I have this curves and I have this grid of points now again I'm basically I'm just copying and pasting all these block here and then I'm just connecting these two components now what I want to do now is applying the same rule that you have seen before so we have a fracture point which is this one right here and we apply it so that we are scaling the curves and then we are matching them merging them in pairs and we are using the loft tool to create these frame which are poly surface made by one two three four five and six surfaces now obviously I can do something with that for instance I can create a point in the center I can take the points the center points I can offset them of a given value along the normal and then I can use the extrusion to point component for instance to create a shape like this if I like it or I could actually instead of using a constant offset value I could drive this value through an attractor point and if we go back to this image that's exactly what we have here because here we have this exact amount panel and we have a frame here that gives us this pre effect and that's the recessed effect here is achieved by the creation of an offset point and you can see that as I move from top to bottom this point is softer here is zero and so the surface is almost coincident with the starting reference surface and then we have a depth that goes up and we can control this the smooth variation is achieved through an attractor curve in this case so we had an attractor curve that goes like this and as we move away from it we have this that that is increasing another very interesting thing in this case is to use this pattern that we have here just to add thickness as someone was asking so how can we do that well obviously this is a surface so a possible way for doing that would be to use the offset surface but that's not the right way for doing that because that is going to be long as a computational in terms of computational time and just we don't need it because actually the geometry is made in this case with straight edges so now we can transform everything into a mesh using the simple man component so the geometry is exactly the same because it's defined by a set of vertices but now we can operate on this mesh using a set of tools that is very very interesting and many of them come from the weaverbird plugin by julia blushing Santino who did an extremely great job on with this plugin and 99% of the definitions that fuse meshes in grass over I bet they are using some of the tools that he made and what we can do here for instance is use the thicken tool to add thickness to this mesh and if we look at this slider that is defining the distance of the thickness of the thickening operation you can see that as I move it the result is instant not only that we can also see exactly the time that is spent on this operation it's 6 milliseconds is really real time so using meshes has the great benefit of speeding up things quite a lot not only that but we can apply a subdivision algorithms like the Catmull Clark subdivision which give us a smooth mesh by interpolating the point now there's no time to cover it in the tail but it's very very interesting but the basic is that if I have a cube here and I apply the smooth this the subdivision algorithm that cube is going to be smooth it out now we can control the way it's noted out by for instance controlling the density of the initial mesh so if there's no density the interpolation brings us to something that is so smooth that is basically collapsing to us almost vertical shape but if we increase the number of edges the interpolation makes it's done in a way that the result is closer to the original mesh but we have this nice fellated at they are not feeling it but they are rounded somehow and this is great because we can get can avoid these ugly as sharp corners that give away the the CGI often so we can do that and this is something almost very very important right now because many programs and Rhyno is going to have it in the next version and as already some of these tools available but basically are able to work with these subdivided meshes and turn them very quickly into nerves which means that then you can operate with all the nerves tools so this said something very interesting but again it would require an entirely different webinar matter for what we want you yes and I come back to the excellent I have a question yes why do you use the polygon center component instead of the centers from the excellent cells there is a reason that is a nice question because there is a subtle subtle reason actually now if you look at the center's you can see that along the edges the centers are located here this means that if I'm using these points that you can you see here when I'm scaling the elements that are on the edge these elements are going to be scaled starting from this point here which means that this edge will remain there so we will have another lapping of edges in this area and that will result in a bad geometry while if I select Y if I calculate the polygon Center now the center portal for the internal excellence is exactly the same but for this excellence that are not excellent actually they are for edge surface for edge polylines the now the center is actually in the center so when we are scaling it and let me select both of them so you can see what happened here this edge is going to be offset and that gives us that nice look if I want to see what happening here I can just use this as our grid points and now you can see that when I look at what's happening here everything seems normal but we what we have here is two edges two faces overlapped and in this case this gave us for instance a problem right here because now the pyramid are done in a different way so it's not what we expect and here the conversion to a mesh in this case is a is also a problem because you get all these overlapping elements and that's because the edges here are overlapping so the problem was in the edges so that's why I'm using the geometrical Center rather than the center of the cell I hope this makes sense yeah he glad thank you you're welcome okay so now we have here and I wanted to use this subdivision algorithm just to give some round edges to this surface how can I do that well we have seen that if we apply it directly the sub division algorithm then we are going to lose the excellent shape so in order to keep it we need to increase the density of the mesh as we have seen with YouTube example in order to do that what we can do is basically use a different type of subdivision that is provided by weaverbird it's the constant quad split subdivision which is a very long name for something that is quite intuitive this basically adds density by creating additional edges through the midpoint of the existing edges and then when I once I have increased the density I can apply the cut mode crack subdivision and you can see that now we start to see our external shape and the if we increase the density a little bit more then we see that we can have something quite nice because we have the axonal shape but we also have these corners that are mooted out and I can also go farther and have something like this and then whenever I want I can just bake this mesh and I need to exit the cream commandeer I know before I do that and when I bake it I have a mesh here in Rhino and if I switch to a render view you can see that we can use these dis mesh for checking out the geometry that we have so maybe we can use the meshes temporarily so that we have a very fast workflow we have we have an instant feedback and then we can switch back to nerves if you need it okay so I was just we are already into the one hour target so I want to show you some other examples but I will be quite fast I will just give you an overview or other workflows in a couple of minutes and then we'll have a question and answer if you like so for instance another way for creating patterns is the creation of something along the plane in this case we have a solid with the pattern of holes and then we can use a target surface and we can morph that solid onto the final surface and when we do that we are using operation that is going to take a while because it's four seconds and but we are creating basically in one step the surface with all these holes now possible problems as you can see can include a deformation and this can depend on the structure of the of the nerd surface the target surface so in this case if we have a different version which has a more uniform distribution of control points then we can have a different different result so sometimes we need to just check our original surface because that is going to affect the way that the pattern the geometry is going to be morphed into the target surface another example of the interesting use of meshes we can see here that if we before applying them the morphing operation we transform this solid into a mesh and then we applied exactly the same operation with the morph component if we have a look at the time that is needed to perform the operation we go from 3.6 seconds to 35 milliseconds which is exactly 100 times faster so I really think that meshes needs to be taken into consideration while working with these things even if just for evaluating a design because 35 milliseconds means that we can have an instant feedback on that so we can change the properties we can change the fill that edge with the Philips radius we can change a number of segments we can change the tractor points we can do whatever we like and we have very very fast feedback okay so I wanted to give you a last overview of other possible applications and I've been creating different patterns for a series of images that I've been posting recently from the beginning of this year in the with the parametric daily tag and these are all shapes that are different in the sense that required different workflow some of them are very complex but they can be made very easily and other appear quite simple but they are quite tricky to to build so I want to just make a couple of comments on those and if you want to see something I'll be happy to show them and you can you can write down in the chat so for instance in this case what we have is a division with quad like with the one that we have seen before but instead of using that surface as is we have taken these points and then we have taken one of them and offset like we have seen for the center point of the excellence by a certain value and then we have used those points to create polylines and this means that we basically have triangular surfaces and this is what we have right here now again in order to have something with a feel left here with the rounded corners I wouldn't ever use a solid feel at command here because you it's something you just don't want to do that but instead we can convert this to a mesh and we can apply some of the available tools with weaverbird in this case we are applying a couple of subdivision that are going to create these supporting edges and then when we do that we are increasing the density just on the corners which means that then when we apply the sub capital Kruk subdivision we are having this fine subdivision here this fine smooth edge and even if it's very intricate the algorithm still works quite well and this is a watertight mesh and this is pretty good if you want to 3d print it and maybe it can also be produced if the requirements in terms of quality is not that high let's remember that subdivision surfaces when are converted to nerds they are G to continuous so they can be used for production actually and this is a very interesting thing very interesting technology Marco just have a question how many control points in the second option versus the first option which options sorry that the question is how many control points in the second option versus the first option I don't know what Matthew from the previous example okay let's go back to the previous one and I don't know what is the exact example that we are speaking about my - if you can give more details in your question are you talking about the eggs gone or just once I don't know I am asking okay thank you if you can clarify we're here for you okay that's it the surface points besides the surface points that are here yeah maybe from here to here here at the distribution of control points well in this case I have rebuilt the surface right inside grasshopper here with 100 points now obviously when you rebuild the surface using that that kind of numbers you're not going to get a nice result but in this case it was for demonstration purposes now if I go here on my list of layers and switch this thing here and I can show you the original surface this one and if I activate the control points you can see that I on purpose I basically slided this set of control points very close to the border so that the effect the distortion was quite quite evident here and then when you rebuild it with 100 control points you can see that you get something that is it's not usable but it just gives you an example of how you can limit the distortion there is an actually another thing that can be said if we are using meshes for the morphing operation it doesn't matter if we are using a clean NURBS surface as a target or a rebuild surface with thousands of control points because what we are doing basically we are just moving points so the mesh does not does not know anything about the target surface so it's quite useful this method if it's combined with the mesh because the result is not going to be more complex because we have used target surface with more control points that is another benefit of using meshes in this case is for instance so I hope this answers the question yeah it looks like it but my field yep thank you says my ok ok so let's go back here and now these things can be pretty elaborate and sometimes similar similar patterns require completely different workflows for instance this pattern right here or this pattern right here needs basically a construction of an underlying geometry which is to be done basically manually and then you have to offset and to create an array of elements to create this final shape on the contrary this thing can be done in just a couple of steps because there are two components that creates this trust structure and then create a mesh pipe around those lines and then we are just applying a subdivision cut motocross subdivision and we got this effect so sometimes it's difficult to understand when something takes 10 minutes or when is going to take ten hours and this is pretty interesting to me and this is another case where something that is particularly simple from its from intuitively we can describe this geometry as straightforward but we have something going on here because starting from these curves we need to offset those curves and find these edges but we need to find the correct offset value so that when we create those lofts they are meeting at the point instead of meeting at on three different points so we need to create some geometric construction to do that so this is something that to me is interesting because sometimes we have the feeling that there is a magic formula there is a magic bullet that allows us to create whatever pattern we want and the reality is a bit different because each individual case is different so you have to know a lot of different workflows and the for instance this in this case we have something that is extremely complex but this is a mathematical figure geometrical figure which is the geoid and there's a formula for that and once you implement that formula then it's going to take really it's relatively simple to do that because we are jacquard just projecting a basic cell onto a given geometry but that basic cell is very complicated but it just a different formula so this is an example of the designs that I've been posting on my right and on Instagram and the different social social networks and I wanted to give you this overview because I feel that it's important to understand that there is no magic formula and that there are many different workflows involved in the creation of patterns sometimes we also can operate directly on NURBS surfaces and modify the position of the control points for instance to create to sculpt that surface we always rely on the crossovers ability to work on multiple data multiple geometries at the same time and I really believe that this thing the fact that there is no Universal definition is not a bad thing actually because it gives value to to our work as designers because if it was so simple then maybe the value would have been a bit smaller and so I don't think in the end it's something that needs a bit of time to be to get familiar with and you also need to be switching to a slightly different mindset and but if if you like that kind of workflow if you have that kind of mindset it can also be very very rewarding and also very very addictive because you always wonder okay what's the next step what can I do next and sometimes for a designer what I say to designers that come to me that are following my classes is that sometimes you just have to stop because you don't want to you want to create a design you want to complete your job so you don't have to focus too much on on the definition so it can be addictive so I wanted to thank you really I want to thank no badge for having me it was really a pleasure and before I say before we go to the question-and-answer I just wanted to tell you that I am offering custom training through my website and this is can be on-site training for companies or studios but also individual training classes hold held the remotely via Skype and I'm working on an upcoming course that will be just about the creation of patterns so if you're interested it will be an interactive course so we will be having webinars like this private webinars with interaction with email support visual video feedback and if you are interested you can go to the URL that you see on the on the page and just fill in the four and I'll be happy to give you more information and also if you need any 3d parametric design service you can contact me directly by email or visit my website and see the kind of work that I'm doing it there so I don't know if there is any question I'll be very happy to answer yeah there's a couple Thank You Marco and please everybody screenshot this page and you know tape it on your refrigerator I have a couple of questions which is the best tool to convert for from complex mesh to NURBS surface okay so we are speaking there are two different options when we have a mesh we can have something like this which is the default mesh that comes out of Rhino which is not very good to be honest because the measure is not great there is a working progress version of the mesh of the measure but it's not ready yet when you have something like this maybe because you have imported something and you need to transform into NURBS then there are not tools inside Rhino that can help you with that and there are translators I'm not familiar with those so and cannot speak about them there are different ways for converting this type of meshes there are also other programs that have better meshing algorithms a possible way for doing that actually could be using some of the polygonal modelers that include some form of rameshan that they are usually used to create the polar good topology because that's what you want to have in order to convert the mesh to nerves because if we go back to our mesh example here want to have good topology which means that let me hide this thing we want to have all quads so no triangles and no angles which are quads with more than four edges and nicely spaced vertices and then when we have something like this then we can apply Rhino own conversion system which is already active in Rhino 6 by the way so if we have something like this we can convert them to NURBS instantly why on the other side if we have a messy mesh like the one that we have seen before maybe the best way for converting it to NURBS could be to use a remaster from programs like ZBrush I believe that also blender has an another one but all the major 3d modelers now are introducing these automatic reach apology tools they are used if you look for this word you can find different solutions so if you have a 3d scan of something the best bet is to go to something like ZBrush and use the zremesher I believe that's the name or what whatever is the two that they have and then once you have something like this which is surface that can be smoothed it out with the subdivision algorithm then you can transform it to NURBS one thing if if you have something like this you need to transform the mesh without applying the subdivision before the conversion because that is going to be applied automatically by Rhino so we'll you will have that nice smooth look directly in herbs and and then you'll be able to work with those surfaces directly in Rhino this is something quite new so it's not something ready for production but that the direction I think that we are going towards I wanted to suggest they haven't heard of it it's called mesh to surface it's a great tool we sell it on the Nova catalog and you can download the free trial Ellen and also with the brush you can download the free trial give it a try and you know so you'll know for sure yes absolutely and also so this question I currently own Rhino 5 would you suggest me to upgrade to Rhino 6 for better hour well Rhino 5 the problem with Rhino 5 is I mean it's a very stable program and you can certainly use it for production and it really depends on the way you use it the budget that you have now speaking of grasshopper more specifically I'm not using Rhino 5 that much now but I that there are already some components that are on a grasshopper for Rhino 6 only so in order to see the specific differences you can go to the offices on official site and documentation but if I mean if you want just to explore different options then you can by no means you can use the version of grasshopper for Rhino 5 Rhino 6 is the everything is being developed for Rhino 6 now it's very stable because obviously now it's it's been released for a while now and they are actually working on rhyno 7 I don't know maybe I I mean McNeil is not the fastest company to release new versions but when they do I mean you can you can safely switch the new one usually when you have an official release so I would say the best thing is to if you want to give it more detail if the person who has asked this question can give me more details about the specific applications then maybe I can give an answer which is more specific because it's difficult to say we don't know in the specific case if it's your only program for design then maybe it's worthwhile but I mean I don't want to reason with other people pocket here Thank you Thank You Marco and you know with a few quite a few people that asked if it was possible for you to share the finish files okay well I be happy to share some of the definition and I don't want to share everything for a reason because sometimes when you I have spoken a little bit about the workflow right and when you start to build a definition like this you try to get involved quite a lot and in the end if you are not careful and you organize your definition you end up with something that is a bit of a mesh mesh disaster here so sometimes sharing that kind of definition can be misleading in my opinion because some of the things that I've done I would do them differently but once you have done and you have reached your goal there's no reason why you should go back and redo that in a different way and I don't want to share that thing because I think that can be misleading for for for those applications so if there is a specific I'd be happy to share some of the definitions that we have seen today and they can be used as building blocks so I'm going to share it with the YouTube comments and give you also the link as soon as they are ready I just want to clean up some of the things and I want to share with you what we have done here which is quite a lot Wow and I do have to share these building blocks and and I will see if there is something else that I can share but I want to share something that can be availed because otherwise I'm sharing something that you're not able to use because it's not documented maybe or is not properly organized or just works with a logic that needs to be explained so that that's the risk of sharing a very complex definition actually but I mean and if there is an interest for a commercial application then obviously it's different because I'm doing this thing for customers who need specific things quite complex things and there is a different case obviously but I mean if we're speaking about sharing a I see what I can do and I'll be happy to share what I can thank you so I recommend everybody to go back to YouTube channel later today and and see the reward every now and then marker in the comment will share the definitions and that was terrific Marco that some of the feedback we just received and everybody's really happy and excellent terrific fantastic superlatives adjectives for you only today I would like to take the screen back and I hope you have I hope you guys all done all wrote down Marcos you do a screen shot of Marcos page and with all this information and I want to thank you all for joining us today I want to show you our product page where you can see there's a huge discount on Rhino going on right now so go on get that Rhino 6 I know you want it and I want to remind you that again I'm recording this live broadcast and put it on YouTube and the new channel thanks again Marco this was wonderful take thanks for your extra time with us today and thank you everybody thank you thank you everybody bye-bye have a great rest of the day thank you
Info
Channel: Novedge
Views: 31,168
Rating: 4.9928446 out of 5
Keywords: Novedge Webinar, Rhino 6, Rhino 3D, Grasshopper 3D, Parametric Modeling, Patterns, Marco Traverso, Car Body Design, Product Design, Industrial design, Architecture design, Design, Architecture
Id: m7tJGZFW8vY
Channel Id: undefined
Length: 85min 5sec (5105 seconds)
Published: Wed Mar 13 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.