OBJ is a very compact file structure that stores all of the shape, texture, and color information for a 3D object. It is useful for fast rendering of graphics and is accepted as an input format by higher-spec 3D print machines and slicers. It doesn’t include external factors such as lighting/shadow, but it has all the information needed to display a 3D object at any resolution required. One benefit is that high-resolution data doesn’t bloat the file size, unlike other formats.
STL (commonly interpreted as STereo Lithography, but likely originated as Standard Triangle Language or Standard Tessellation Language) is the “standard” file type used by the majority of 3D printers in the mid and low price ranges. It’s an old format that is clumsy in some ways. But, it is sufficient for communicating shape (without color or texture information). STL is also universally accepted and very reliable. STLs store the surface of an object as geometric data for a series of points. This generally results in triangular subsurfaces, which form a net that describes the external 3D shape. This gives no information about thickness, color, or texture. It’s not a “design” format but a simplified communication tool.
OBJ’s main advantage over STL is that it stores the color and texture data right there in the file, making it ideal for rendering complex and multicolored parts. Several software tools will do the job when you have an OBJ file and need to convert it to an STL format for your slicer software. Most are either free downloads or online tools, so this is not something you need to pay for. Some are easier to use and more intuitive than others.
This article will discuss the steps in OBJ to STL file conversion using Spin 3D, OBJ to STL file definition, their importance, and the converters to use.
3. Select an Output Folder
Choosing an output folder is not necessary, as the default is to save it in the same folder as the file you’re converting. If you want to save it somewhere else it’s simple, just click on the “Browse” button at the bottom right of the screen. Use Explorer to locate the folder you want converted files saved to.
What Is an OBJ File?
An OBJ file is a file format that represents 3D geometry. From a 3D print perspective, an OBJ file constructs the outward 3D net shape out of a series of flat polygons (mostly triangles) whose vertices (corners) are clearly defined in a simple and regular format. One point is defined through:
- v: A position in space (x-y-z and either w or r-g-b) where w is an optional value that defines the color number (0–1). It can also be a set of three values for RGB color.
- vt: Texture datum for the point (u-[v-w]), which acts like the definition of the paint applied to texture a triangle. This will only affect a 3D print if the texture has a roughness that is more pronounced than the minimum build resolution.
- vn: The vertex normals, which orientate the vertex.
The three points define a triangle, and many, many triangles make a 3D object. There are other properties, such as parameter space vertices, but these are more relevant to 3D rendering on screen and don’t affect 3D printing.
What Is an STL File?
An STL is an ASCII format file that originated with 3D Systems' development of 3D printers. It was used as a means of communicating the printing requirements to the machines they were developing. STL files use the same basic methodology for communication of 3D objects that OBJ uses – but at a lower level of detail. It contains no color or texture information and has a slightly more clunky file structure. Mesh information for the triangles to construct the 3D representation contains 3-point (x-y-z) information for each vector. Plus the “normal” information, defining which face of the resulting triangle is outward facing. Non-standard binary formats of STL have been developed. This adds methods of encompassing color data into the file – but these are not commonly used.
When to Convert OBJ Files to STL Files
Converting OBJ files to STL files is only necessary for home machines and the freeware slicer sector of the market. Most high-end printers can accept OBJ format files. But this is unusual in hobbyist and lower-cost machines, which are only set up to use the STL format.
Property | STL | OBJ |
---|---|---|
Property Vector x-y-z | STL ✔️ | OBJ ✔️ |
Property Color attributes | STL ❌ in common ASCII format, can be present in digital files | OBJ ✔️ |
Property Texture attributes | STL ❌ | OBJ ✔️ |
Property Parameter space vertices | STL ❌ | OBJ ✔️ |
Property Line elements | STL ❌ | OBJ ✔️ |
Property NURBS support | STL ❌ | OBJ ✔️ |
Property Relative AND absolute indices supported | STL ❌ | OBJ ✔️ |
At its core, STL was created as a way of communicating shape information for 3D objects. It contains no information about color, texture, material properties, or other attributes. This makes it a very simple and robust format. OBJ, on the other hand, is a more complete and detailed definition of a 3D object. It allows detailed virtual rendering to make it colored, textured, and “real” looking. This requires a greater depth of properties to be integrated into the file structure, making the OBJ format considerably more capable than STL.
Disclaimer
The content appearing on this webpage is for informational purposes only. Xometry makes no representation or warranty of any kind, be it expressed or implied, as to the accuracy, completeness, or validity of the information. Any performance parameters, geometric tolerances, specific design features, quality and types of materials, or processes should not be inferred to represent what will be delivered by third-party suppliers or manufacturers through Xometry’s network. Buyers seeking quotes for parts are responsible for defining the specific requirements for those parts. Please refer to our terms and conditions for more information.