The title of this video is Transformation- Copy Move. In this video, I'm going to be talking about the copy move functions, and I talk about them together because you'll see in their operation and what they ask for, there's a strong relationship between them, and we really set the data up in the same exact way. If I go to, again, to my help and we'll just type in one. We'll start with move, so MoveObject. It only needs two things, two arguments, an id and something called a translation or vector. I talked about this a little bit in the lesson on points, but I'll go over everything again here. That translation is an equation. Translation simply holding as a variable name that's holding the result of an equation that's produced between two point values. So the end of my movement or my copy and the start. In this case, it's taking two input points, but the points could be hard-coded, they could be generated within the code, or from some other object. That translation has to be calculated and then the move function is taking that id and that translation. Copy is essentially the same, asking for the same exact thing. It just will copy object instead of just simply moving it. So it's pretty much identical in its operation. Let's take a look at this with move. One of the things I need to point out is because this equation, this expression right here, translation, is really just a simple mathematical equation subtraction. These need to be values, it's not going to work with an id. From my input points, I saved those ids in these variables, and then I find their coordinates and then I overwrite those variables because they don't really need the id of the points, and then I use those coordinates to calculate my translation. If we start with this first shape, then let's say we wanted to move it over a distance and direction represented by these two points. I run the code, select the curve, it's the first thing I do, and then select the From-point. So what point do I want to move from? I'll click the one there at the bottom first, and then select the To-point. It moves that and gone over that distance. If I wanted to really explain that spatially, what we could do is just mark the start position of that figure with a point. If we run our code again, selecting the curve, the From-point and the To-point, and then draw a line from the From-point to the To-point, then move that line back to that starting point, we'll see that those points have a correlation to the movement of that object in space. These points could be anywhere in space. They're just going to dictate the direction and the distance that that object is moved. More than likely, you're probably going to use copy instead of move in this first assignment, because you're probably going to want to produce copies of objects. We'll get right to that because it pretty much works the same way. CopyObject, select the shape, From-point and the To-point, and it's just producing a copy. Now, as I did with scale, we could use the centroid of the object as our From-point. So if I turn that section of the code back on, find our centroid, I don't need to render that out and I actually don't need to print it out because I know what it is. I know that it works from the last lesson. We're just going to take centroid, and we're going to replace the From-points in our equation. Then I can also turn off, I don't need to collect my From-point and I don't need to calculate its coordinates, so I'll turn that off because that would throw an error. Now if I run this, I can select that shape, and then just select to To-point. I could copy it to that, and we can continue to run it, doing that. Now, this brings me to another point. There's a lot of ways that we can generate points and that we're going to find out eventually within code. But with this first assignment, we can do a couple of things manually to create a geometry of points that we're copying things to. If I gave myself a curve over here, and we typed in the command line, divide. If you worked a lot with Rhino, you know there's a divide curve, which produces a set of points on that curve. I could change that number, but gives me not only a set of points, but also an order to them because they're following the curve. So if I run the code, selecting that shape and each point on that curve one at a time, I could start to create a pattern through this copying based on that order that I'm giving it. In the last video in this section, we're going to bring all these transformations together and we're going to talk a little bit about what you might be doing in the first assignment with these inputs, and points, and things that you can do in Rhino, but that you can also input in and do in code. But hopefully, these three lessons, three demonstrations start to show you some of the possibilities of what you can do with just inputting simple geometries, and then using these transformations to manipulate them to produce geometric patterns.