Note: Because this is an ongoing series, viewers will not receive a certificate of completion.
Skill Level Intermediate
- [Instructor] The exercise file for this video uses a Grasshopper plugin called MeshEdit, which you can download on the food4Rhino website at this link. food4Rhino is a great place to find and download tools that extend Rhino. But you do need to login or register with an email address to access. Once you are logged in, download MeshEdit Tools version two. This will save to a ZIP folder on your computer. Some computers will block the downloaded files by default. To check, right-click on the ZIP and select Properties, then check the Unblock button on the bottom. Now you can unzip and move the MeshEdit folder to the Grasshopper components folder. You can find that folder in Grasshopper by selecting File, Special Folders, Components Folder. When you restart Grasshopper, you should now find and load the MeshEdit Tools plugin. I have my exercise file open already. In this view, I'm going to demonstrate mapping three-dimensional geometry into the UVW space created by NURBS surface. In this script, I have a surface here and I'm going to bake this into Rhino so I can manipulate the geometry in the model. I'm going to select the surface that I just baked and I'm going to re-input it back. So as I move the surface around in Rhino, I'm updating in Grasshopper. I also have a cluster here that I've set up that's generation a diagrid, just a truss system. So let's say I want to map this onto the surface. Most people are aware, and we've demonstrated in previous videos, that I can go to Surface, Evaluate Surface, and use the Evaluate Surface tool to map points as UV values onto a surface, mapping them into the domain of the surface. So let's try that first. So we go to Curve, and I get the ends. I'm going to map each end individually. So this starts as UV values. And I'm going to connect my surface. I'll do the same thing with the ends of the curves. And I'm going to rebuild the resulting curves. So I'm going to take the point outputs of each mapping. So here I see I have my diagrid. My diagrid is being mapped on the surface, and I can test that by selecting the underlying surface and turning the points on, moving them around and seeing that diagrid adapt. But it's in 2D. It's mapping completely flat on the surface. I'm only getting the UV values which correspond to the XY values geometry that I'm mapping. It's also important to note that this is working because I've built this diagrid within a zero to one interval. And the surface is being re-parameterized from zero to one. So everything is from zero to one in XY and UV space. Let's say I want to get this as a three-dimensional object though. I can do that too because the surface actually generates a three-dimensional space based on its UV parameterization. So let's put this to the side. I'm going to go to Transform, Morph, and I want to use the Surface Morph component. This allows me to map geometry into the UVW space. So first I'm going to connect my reference surface. Now in this model, in the Grasshopper file, I have a box which is a one by one by one box. And that's going to be my reference box that I'm mapping from. So I'm going to connect that as my reference. My UV extents are going to be zero to one because I'm working with a surface that's parameterized from zero to one. So we'll go to Math, Construct Domain, and I'm going to connect my domain into the U and the V inputs. Now the W input is a little more complex because the surface doesn't have an explicit parameterization of that W extent, the vertical extent of the surface. So what I'm going to do is I'm going to go to Surface, go Analysis, I'm going to get the dimensions of the surface. These are the edge dimensions, the U and the V dimensions. I'm going to average those out. I'm going to base the W extent on the average of the edges. And what this means is I'm just going to create a box that's generally proportionate on the surface. So I'm going to test that out. I'm just going to map my reference box, and I see how now I have a box that describes for me the space that I'm generating by the surface. So anything I put in this box, will be mapped into this box. And here's how I test it, I can move this around, I see how the box is distorted. So now let's connect our diagrid in. So I have my diagrid curves here. So I'll connect those in as the geometry into my morph. And see now I have that diagrid morphing onto the surface. This is pretty boring, it looks like a scaled version of what we had before, but if I turn my control points on, then maybe I rebuild my surface first. So I get a four by four. And now I'll turn the control points on. These are moving those control points around, now we can see I can do some pretty interesting stuff by mapping this three-dimensional geometry onto the surface. And the key thing is here, anything I do to the reference geometry, the geometry that's in the box, so for example, if I want to make it a little skinnier, I'll go to my Depth, and I'll reduce that. So I'll do a 05. I see that's being reduced in a corresponding proportion as it's mapped onto the surface. I can also adjust the density. So this mapping, the ability to take geometry in the XYZ coordinate system and map it onto a surface coordinate system is incredibly powerful. The surfaces then give you control over the space that you're working in so you can generate geometry in a simple way, in XYZ space, and then map it into a much more complex space, using the surface as the relationship between the two spaces.