This is our Introduction to Rhino Space, Python Space demonstration. In these demonstration parts of the lessons, I'm going to be working directly with the software in the Rhino interface and in the Python editor. So I'm going to start really at the basic beginning of what is the relationship between these two things and how do we start to use them. When you open a Rhino, it'll look like this with the four windows, and this is our default interface. There's one minor change that I like to make in this setup. If you go to the top of the screen under Standard, right about in the middle of the tools, you'll find a palette called "CPlanes" and I'll just grab that, pull that out, and then I want to bring that down to the bottom of my screen, so right below the names of my windows and permanently inserted in there. If I double-click on the Perspective name here, make that full screen. This allows me to reposition my CPlane fairly quickly. It's a palette that I use quite a bit in modeling. If we go up to the command line and type in the command line EditPythonScript, if I type in EditPython, that should come up. If we hit Return, that'll open our Python coding environment. So this is broken into three parts, the main part of it in the upper right is my main coding window. Below that is an area that shows my output and my variables and my call stack. So that's if we're going to print out information, that's where we're going to see it and there will also be ways I'll show that we can see what variables are holding within the code. The long bar to the left are one way of accessing my help menus and help commands, and I'll talk about that more in a later video. Then we have the upper left, a series of what are pretty standard default menus like File, Save, and Save As. When you're working with a Python code and you save it as a separate file,.py file, that's completely separate from a Rhino file that I'll be working with. So there's no direct connection between those things, if I'm working or generating a piece of geometry, I need to save that as a separate file. So which brings me to the point that I was making in the lesson was that these two spaces are fundamentally different. So there is a Rhino space and there's a Python space and I work back and forth between these things. I bring data or take data from Rhino space and bring it into Python editor, do something with it, and then I might output it back out to Rhino space in the form of geometry or in the form of printing out some data, but they're really two completely separate environments and so part of working with these two spaces is getting used to that dynamic. I'm just going to take a quick look at a code that I showed in the lesson. I don't want to save, I want to open. So it was this pretty straightforward code, although it introduces a number of things that we need to unpack. So I have something called import here, something called rhinoscriptsyntax, I'm referring to it from then on as rs. I'm getting something here, I have things that are in different colors, and then I'm doing something called print, print out. So there's a bunch of different things that I'm doing here. Let's start at the top. So import, which is a Python function. When I say import, what I'm doing is I'm importing a something into the Python editor. In this case, I'm importing a module that's called rhinoscriptsyntax. That's really important for what we do within the course, you'll pretty much always see this line and you'll put this line at the top of every code because this really gives us the functionality that we need to do what we're going to do within the code. When I say import rhinoscriptsyntax, essentially what I'm doing is importing into my Python editor the language of RhinoScript. It allows me from that point on to access all of the functionality that I have in RhinoScript. So another way to think about that is that if you take all the tools, all the things that I can do in Rhino space, and you reduce them to a language. So let's say if I wanted to draw a line, I would do something called AddLine. Or if I wanted to rotate something, I would do something called rotate objects. So pretty much anything that you can do in here, you can do in the code. We're going to be looking at what the advantages are of doing that in code rather than doing it just purely physically and modeling space. What are the abilities that it gets to if I can do it within the code? That's really what the course is about. So this import rhinoscriptsyntax gives me the functionality of Rhino in the code. Then I use this thing called an operator. We'll talk about those more at some point. This operator called as, which is a Python function, piece of Python language. It's saying from that point, this point on, anywhere in the code that I write RS, so I write it here. That gives me access to all of those RhinoScript functions. So GetInteger because it follows RS and a period and a dot, is a RhinoScript function. So when you're looking at the editor, a code in the editor, you're really looking at least two languages. So I'm looking at the Python coding language and I'm looking at the RhinoScriptSyntax language. The easiest way to tell the difference between those two things is that RhinoScriptSyntax is always going to have this rs. in front of it. So anytime I write that, anytime I do that, anytime you see that, that is going to be a RhinoScript function. Anything else like the format of these names, import as, this is input integers string, all this other stuff is really part of the Python language. Now we're looking at, we see a number of other things here. We see x, x is a variable, five is a default value that I'm assigning to that variable. Print is a Python function. So there's a number of things that we're going to continue to use and we will introduce, we have a whole section on talking about variables and what they do and how we use them in the next lesson. But fundamentally, what this is doing is, I'm calling up a function called GetInteger. Anytime I see something called that starts with the get and RhinoScriptsSyntax. It means I'm collecting something. I'm collecting a piece of data from the interface. So if we run this code in here, and I run a code by hitting this play button, and it turns off my coding window. So it shuts that off and then it brings me to Rhino space. That string, which is a line of text, now shows up in my command line, and I also see that number 5, what this is telling me is, it's asking for a piece of information from me, now the user of Rhino, it's asking me to input a piece of information. I'm telling myself to input an integer, but it's telling me that default is five. So if I just hit Enter, it's going to input that five. So we hit Enter and now it jumps back to the coding interface. I've run my first code and it's done a very simple thing. So it's input this value of five, this integer of five, and it saved it in this variable called x. Then it performs a very simple Python function called print. Print is essentially just printing out whatever I'm telling it to print out here. In this case, x, whatever is being held within the variable x. Again, we're going to get into what variables are, how I assign them, and how we use them for moving data around. But this is a quick demonstration showing fundamentally what a code does. It inputs a piece of data and it does some processing with it and then it outputs it. In this case, the processing was just the collection of this five in x and then the movement of it to this other function, and then its output right here, prints out. So there's a couple ways that we're going to see if we choose to print out data. There's a of couple ways we'll do that. We'll see it here in my output down here and we'll see it up here in the command line. If I type F2 on my computer, that will bring up my history, which is essentially the running command line history that I have since I've opened Rhino, and it's going to show me what I've printed out here. So that's another way to access the printout information. That's a basic introduction to these two interfaces and we're going to show a couple of more examples of input processing and output in the next video.