The title of this video is Introduction to Python Rhino Scripts. So I want to start by just clearing up what might be some confusion in terms of the language that we use to talk about coding. Sometimes we say code, sometimes we say script, or we might even say program. Code and script are fairly interchangeable. So what we do with writing, we write a code or a script, which is a set of instructions to tell the computer to do something. We can also call that collection of the code or the script a program. If you're someone that writes code or script, you could be called a coder or you could be called a programmer. What you're doing is designing or writing programs to get the computer to do something. In our particular case, because we're using a specific tool. We're using Rhino, which comes packaged with the ability to write things in Python in a Python editor. What we have are essentially two spaces that we work in and these are two separate environments. So I call one of those environments Rhino space, which is our Rhino interface, the 3D modeling interface that we're used to working in and then the other one which you haven't seen yet, or you might not have seen yet, but you will see soon is Python space or the Python editor, in which we do our code editing and writing in. Now again, these are two completely separate environments, and so one has to get used to this dialogue between these two environments that what we're really doing is moving data from one into the other. So we're modeling things in Rhino that were then inputting into Python space, doing things with them in Python space, maybe creating other geometry in there and outputting it into Rhino space. But those are two completely separate environments. Now, what do we bring into Python space when we bring something into code? What is it exactly that we're bringing into that environment? What we're bringing is a referent. Anytime I create any object, whether it's a point, a line, a poly surface, a mesh, anything that I create within Rhino space automatically gets assigned this thing called a globally unique identifier, or GUID, or sometimes they refer to it as ID, and it's this 16 digit number that's assigned by the software to that object. So when I bring an object, when I bring a piece of geometry into Python space, what I'm bringing in is that ID, I'm bringing in a referent to that. When I create something in the Python space, I can generate a piece of geometry out in Rhino, which we will see. It also at the same time, it gets an ID, that's assigned an ID. I can save that ID within the code to be able to do something else with it, and what that ID carries with it is what I was referring to in the last video that's carrying all this information that that object essentially carries with it when we create it and allows us to access that information. So GUID is a really important term, really important data type to get used to using and understanding what it means. At a really fundamental level, what does code do? Well, it's fairly straightforward. Code input something, it processes it, and then it outputs something. So what we're looking at here is a small snippet of code. The type of code that you're going to be working in. This is in Python and you don't have to understand any of this right now, but I can point out a few things that I'm actually going to go over much more deeply in the next couple of lessons. But what I'm doing is I'm importing something here called runner script syntax, which is a module. That allows me to bring data into the coding environment from Rhino space. So the piece of data that I'm inputting is an integer, which is five that's held in a variable x. So that's the input. Now I can input from Rhino space, but I could also take an input or a hard code directly into the code. It's still a kind of input. So in this case, I'm hard-coding 10 here, which is another input. I then process that data that I've input. So my processing here is one thing, is the moving of that data to this line using the variable x and then an operator plus to add 10 to it. Then my output is this print function which outputs 15. So very straightforward and very simple level. I'm inputting some piece of data, some elements of data, I'm doing something with it, and then I'm outputting it in some way, and that output could just be printing it out or it could be creating geometry with it in Rhino space. I could be outputting it in that way. Now there are two main structural members of the coding environment. So what essentially Python gives us is that structure, and it gives us the rule and syntax within the coding environment. That we can break into two major categories. One called data structures and one called control flow. We're going to go through these categories throughout the first couple of weeks and we're going to look at their individual elements. So data structures, made up of variables, lists, tuples, and dictionaries are the way that we can hold data in the code and move it around. So there are essentially related to the computer memory that allows us to collect and hold the data and do different things with it in different parts of the code. Control flow is pretty much as it sounds, we can control the flow of data through the code, through a series of rules that we set up, and so iteration is a looping within the code. So where I repeat one part of the code over and over again. It's a very powerful part of coding, that's part of the control flow. Conditionals, so if then statements, if this is true, then do this. If this is false, then do that. They control how we move through the code. So really, control flow is the set of rules that we set up that determine how we move through the code. Those are the two main parts of code that we're going to be going through in this course that are specifically related to Python. Now Python is the main language that we use, but you'll notice from that little snippet of code, I had this thing called import, which was at the top of the code. That import allows me to import the module called RhinoScriptSyntax. RhinoScriptSyntax is the coding language specific to Rhino. It's our Rhino dictionary that's bringing in all the elements that we need to do to do things within Rhino. Python is a very interesting coding language, and note it's a very open structure which allows us to import in these other languages and use it within its environment, and that's exactly what we're going to do. So we're really using two different languages. We're using Python and we're using RhinoScriptSyntax. The course is really a weaving together of those two languages in order to get to do things within Rhino space, to be able to create geometry, and vary it, and manipulate it, and gain control over it in a whole bunch of different ways. So that's really what the course is about. You learn Python, but you will learn it while also using RhinoScriptSyntax, which allows you all that functionality within the Rhino environment. So we're going to start going through that step-by-step through our software demos. We're going to be working specifically in the coding editor and showing how we can use it to create geometry.