The title of this video is What's The Point lesson. So variables are the fundamental building block of code. Then points are the fundamental building block of geometry in RhinoScript. It's critical to understand a little bit about them because there can be some tricky issues with inputting them, and creating geometry, and outputting geometry from Rhino script using points. We use points for all different kinds of things, from creating just lines, to using them as the center of circles, to the edges of rectangles. Even creating more complex curves, nurb curves, which are using control point structures. We're also going to use them when we input curves. We're going to extract points from those curves. So we're going to be able to find endpoints and mid-points. We can bring curves in and divide them. So we'll find a series of points from them. If we had more irregular shapes, we can derive not only centroids, but also control points from them. This is going to hold true, too, for when we start working with surfaces, we use points to create surfaces from. We're also going to input surfaces that we're going to evaluate points along. We'll get into that when we get into the lesson on surfaces. So in all of these, all of these share the fact that points are fundamental to their geometry, not only in terms of their creation, but also in terms of their extraction. So what is a point? Well, a point in Rhino space is a coordinate value, x, y, z, and that's determined by its location in the world coordinate system. It's an actual value, so let's say in this case, for example, this is a 220 point because it corresponds to two values and two values along the x and a y, and it's flat on the z plane. So the point carries with it those values. But it also carries with it another piece of information. It carries its globally unique identifier or GUID. So when we input a point, let's say this is our Rhino space, have a line here, and this is our python space. This is our editor. When we input a point using something like getObject, what we're inputting is this GUID. So that's what comes into Python space, is the reference to that point. Once we have that point in Python space, we can use it then to create geometry. So if we use a function like add line, it will accept a GUID. Now, some tools, some functions, and some things that we do within Python space will not accept a GUID as a piece of data because they can't extract from that piece of data, the coordinate values of that point. So we'll have to use another tool like point coordinates to extract that value. If we get an error that says, you're giving me a GUID, but what I really want is a 3D point, then you'll have to do that. So this characteristic of a point being both the GUID and a coordinate can lead to some errors and some confusion within the code. More often than not, what we're using when we use add line is we're going to use coordinates. So when we're working within code, a point is a series of values. If it's not something that I'm inputting from rhino space as a GUID, more often than not, it's just this series of values. I can use those series of values to create that line in space. Now, what's maybe confusing sometimes about the characteristic of that line is those points that I'm using here as values within the code don't show up as points within rhino space. If I wanted something to show up as a point within rhino space, I need to use a function called add point. So if I write add point and then give it a coordinate value, it's going to, in a sense, render a point out in Rhino space. It's also going to return and if I was to print this out, what that's returning, that would be returning a GUID of that point that's rendered out in space. This is can often lead to confusion because people think that they need to render a point out in order to use it as a point within the code and you really don't need to do that. So let me just erase this. If we bring our line back, so that's Rhino space, that's our Python space. So to remember anything from this lesson is the fact that a point rendered out in Rhino space carries two things with it, carries a GUID and carries a series of coordinates. When I bring it into python, it's bringing that GUID. Sometimes they're going to have to use something to extract from that GUID, those coordinates. The other thing to remember is that if I create a point here in space Python space, it won't render it out unless I use something like add point. But it doesn't mean I can't use it as a value, as a point within Python space. In the demo lesson, I'm going to show those specific tools that you use to extract those point values from the GUID and why you would use them, when you would use them, and to clarify this issue a little bit further.