 Okay, okay, thanks so much. Okay, I'm going to do a live demo here so watch out. Wish me luck. Okay, so I won't go full slide here but this is a demo on opening and looking at 3D files. So let's start with the talking about the OBJ. Okay, the OBJ file format is simple data format that represents 3D geometry, namely the position of each vertex, the coordinates of the texture, and the phases it makes each poly fine. Each polygon defined as a list of vertices and texture vertices. These can encode the surface geometry of a 3D model but also store color and texture information. And the material template library format or MTL file is often a companion file to the OBJ that describes the surface shading or material properties of 3D object within one or more OBJ files so let me jump over this zoom thing really quick. Let me jump over, I'm going to jump over to my CAD program called Autodesk Maya here. Can everyone see that. Yes. Okay, okay so I have this connector here. And this connector it's in the test prints and it's been a theme. So here I have it as an OBJ file inside my CAD program. Just because we talked about CAD programs we haven't looked at them too much I can. And select the object itself this is a 3D gizmo here I can move on the X, Y, and Z axisies around I can manipulate it I can hit the E key to rotate and the R key to scale. If I hit the center I universally scale and these different widgets let me go on different axisies. I can also sit by center mouse and I can manipulate directly vertices faces or edges so here I've selected vertices. I hit the translate key and then I can move that out. I'm not going to do some nice model but I just want to show you how one might manipulate a model in a 3D CAD program. So this is the OBJ file in Maya and so we're looking at a visual representation of it. If I export, if I select this object, select it and then file export selection. In Maya I have a lot of options as I do in many other programs. So I have an OBJ export and STL export and a lot of other file formats that we won't get into because they're not so apropos for 3D printing. So now I'm going to bring it into my fine text editor. This is Visual Studio Code. It's an excellent text editor. If you're looking at files I highly recommend it's free. I'll send a link out at the end. But if you look at the OBJ file, it references an MTL file that describes the material and then we have a series of vertices on the X, Y, and Z coordinates. And so these vertices, if I go back into Maya here and I turn this to the wireframe, you'll see it's composed of a bunch of triangles in this case and each of these points in the text file represents a point in space of vertices. That make up these triangles here. Now I have another file because OBJ describes geometry but it also describes texture. There's not much of a texture on here because I downloaded it from an STL and so it just kind of says gray texture. And I can look at this texture file that has a description of the value of that sort of that gray texture. But if I look at this one, this milkshake here has a lot more texture, an image texture actually. And so if I export that as an OBJ, which I did, I again have my vertices and also refers to this material file. Which is this shape material references an image. And then it has a bunch of what are managed UV coordinates that wrap this weird looking image. There's a whole process one would do in CAD to texture an image. And it wraps this image around the 3D file. So it looks like that. And so a lot of 3D printers, you know, material is not super important but there are printers that do pigmentation. And so that may be a value. If I go back to my slides. So that was a quick look at OBJ. Now let's talk about STL. This is also a format created by the company 3D systems. It's the answer to the standard triangle language, standard tessellation language. It's super supported by many software packages for digital fabrication, 3D printing, computer manufacturing, but ST files only described the surface geometry of a dimensional object without any representation of color texture common CAD model attributes. And STL file described a raw unstructured triangulated surface. And oh, another great point is STL files can be stored as binary ASCII files. Now, another point is STL file represents surface geometry using facets facets to find the surface of a 3D object. And as uniquely defined by a unit normal, which is a line pointing out, perpendicular to the triangle with a length of 1.0 and three vertices. So here we have the three vertices. We have this normal that defines like the outward facing direction of the face. So here are these blue lines represent the normals. And you can see in this 3D printed object, you know, the face points at a certain angle and that's defined by the normal. So let's look at that. So here we had our OBJ files, which is just vertices. OBJs can also define normals. This one just doesn't have it. But now if we look here at this connector as an STL. Actually, let me jump back really quick. Let me export this. So I have this connector. It's an OBJ. I can go file and select it go file export selection. And I'm going to choose STL export. All right, export it once we'll export again. Connector two. And you hit export selection. File, let me do that one more time. Export selection. Okay, you see right here it says binary on or off that goes back to the point where I said STLs can take a file form of either ASCII or binary. It's super important because if I export as a binary, which I'll do, and I'll just call this connector B. And I'll go in here. Okay, so here's my ASCII representation of an STL file you can see that it's defined in facets. There's three vertices that make up the triangle. And at the top is the normal that defines its outward facing direction. And this is an ASCII format. And if I go in here I have my binary format that I exported. That was not what I was trying to import. Hold on. Connector B. Oh, crap. Okay, hold on. Disable. So I have a 3D viewer installed in here. What I was trying to do. Okay. I can't show it because I have a 3D viewer installed. Let me. And I have to reload it. But let me just open this. Well, I have a 3D viewer installed. But if I tried to open this in just a text program, the binary format, it would look like a bunch of gobbledygook and you couldn't read it. So my point here is that when you're acquiring an ST file, if you're acquiring an ST file, you want to ask for the ASCII format. Because if you open a binary, it's written in, it's compiled to machine code. So you won't be able to understand it and you won't be able to read it. You'll be able to open a 3D program. But if you want to look at like the vertices and the raw things, it's very important to ask for an ASCII file. It's like asking for source code of a computer program that you acquired. So I did want to make that distinction that STLs can either be in binary or ASCII. So let me go back here. So that's the difference between STLs and OBJs. And so the big difference is that between STLs and OBJs is mesh is what's displayed on the surface. STLs files don't display any data on the surface of the mesh. They only indicate the surface itself, the geometry of the object. It is in the shape of its sides. But that's about it. STLs are grayscale by default because there's no color or texture data. OBJ files, on the other hand, incorporate actual photographic imagery or descriptions of the surface. And so they can contain texture information. Okay, so now let's talk about G code. As I mentioned, G code is also known as RS274. It's the most widely used computer at numerical control. CNC programming language. It's mainly used in computer AD manufacturing to control augmented machine tools. It has very variance. It stands for geometric code. It tells the computerized machine tools how to move and how to interact in order to produce something. For an example, a 3D printer needs to know how to move the printing head within the workspace and when to start the flow of material. G code has many variants and flavors, depending on the machine. And the G code commands instruct the machine where to move, how fast to move, and what path to follow. What you can see here is a little sample of G code. And they usually start with a letter at a numeric code and you can look at some references which I'll show in a second about what these commands mean. Like this is a fan speed setting here. This is a nozzle setting. This is a tool path on the XY coordinates. And here's an extrusion thing. Let's let me jump over to my slicer. I'm using Kira. And so, let me show you. So in Kira, I haven't set up for a particular printer, a Creality Ender 2, but it knows a lot about a lot of different printers. If I were to add a new printer has all these different vendors. And I can choose that and it's going to conform the G code, the workspace, all of that to that particular printer. I can also, you know, go to machine settings and set specific things such as the bed size, the print head settings, and things like that and add custom G code at the beginning of the end. Now I have this connector and Kira is nice because I can either drag a OBJ or an STL in there. I can do just basic things like scale it up or scale it down. It has a 3D gizmo as well. It'll fit it on the bed and it'll tell me if it doesn't fit. I can rotate it. Things like that. And then I have a bunch of other options here that we're talking about. Layer height, wall thickness. This would be the outer shell. In fill density, it's at 20% right now. I can make that 100. I can make it much less. Printing temperature based on the substrate I'm using. In this case, I would be using a PLA, which is about 200. Also the build plate temperature for adhesion, which is important for FDM, print speed and cooling and a lot of other things and supports. So in this case, so there's overhangs here. And so I want to generate supports. I'll just say everywhere. And I'll generate a raft. And so I set all my options and then I'm going to hit slice. It starts the slicing process. It goes through with the options I've set. And analyzes it, converts the STL to G code. It gives me an estimated time 13 hours and 23 minutes. So here's pretty nice. Okay, so here's pretty nice to have this preview option. And I showed in the earlier thing, but I can see here that the blue is the supports. And I can take this slider and sort of go through zoom in here and sort of go through and analyze each slice visually. And I can do things like, all right, I'll set the infill density to 75. And give it a different pattern of infills such as a grid. Hit slice there. And it re-slice it. And you see that infills quite dense in a different pattern. I can go ahead and analyze that. And here I kind of generate these mesh-y supports. And so I'm going to have to break these off and sand it or do some kind of post-processing afterwards. Supports might be dependent on the slicer you're using. Here's another program, mesh mixer from Autodesk. And so I generated some supports in here. See they're very different. They're kind of like these thick tree branches. So that's going to have a different post-processing effect on the model. Okay, so once I do that, I would export this as G-code. It's going to be G-code specific to my Ender 3. I already exported that. So I'm going to go over back to my text center. And I have that here. And Visual Studio Code has some nice plugins. In this case, it has a G-code formatter. So G-code language which I installed. And that's nice and color codes it for me. And I can look at this G-code and I can start to see some variables here such as the flavor of this G-code is called Marlin. And it gives some time, type of filament. And then it has some comments that the slicer generated. And then there's a bunch of stuff down here. Well, it looks like it's just going to move the extruder to a different XY and Z coordinates. So one thing I can do is there is this nice G-code formatter commenter here, which I'll post a link to. And so what I can do is I'll just refresh this, base that, hit the comment code. And it's very extensive and it gives me generates comments, human readable comments for every line of G-code that I paste in. Additionally, I know that this G-code flavor is Marlin. And so there's a Marlin reference I can go through and if I wanted to, I could look up every single code and do it that way. That's much nicer. And so that is pretty much what I want to demonstrate. I know I showed these tools, Maya, which I'm using Maya because I have an academic email address. Sorry about the doorbell. The great program is called Blender. That's free and open source. It's a great example of successful open source 3D modeling software. You can get that at blender.org if you want to start playing around yourself. And Visual Studio Code is from Microsoft. It's free. It's an excellent text editor. And it has lots of cool plugins. Okay. And I think I'm at time. So I'm going to stop and thank you for putting up with my live demo.