<p>While the STL-format can only describe your object aproximatively by those well known triangles, OBJ-files can describe parts of your object parametrically by curves. This can lead to a higher precision and be a huge advance with regard to scalability.
Which data format to choose depends, as always, on the application and the processes it contains. E.g. if you want to print large objects, you might consider the OBJ-format if your slicer can translate it to usable g-code.</p>

<p>You might want to read this <a href="https://all3dp.com/3d-file-format-3d-files-3d-printer-3d-cad-vrml-stl-obj/" rel="nofollow noreferrer">article on All3DP</a> to get a brief overview.</p>

CC BY-SA 3.0
2018-03-08T18:52:37.273Z
+1 for the article link, detailed coverage and comparison of a whole bunch of formats.  Also, you omitted obj does color, which is becoming more important.
David Lotts
CC BY-SA 3.0
2018-03-08T20:18:53.120Z
I would go even further. IMO texture images will get an asset, as first printers allready combine FDM with inkjet technologies.
tmartin
CC BY-SA 3.0
2018-03-08T11:09:20.480Z
2018-03-08T11:18:05.957Z
2018-03-08T11:18:05.957Z
tmartin
<p><strong>STL is the <em>de facto</em> standard in consumer-grade 3D printing</strong>.  It is a bare-bone format that describes the shape of the object by defining the coordinates of all the vertices of all triangles that a surface may be subdivided into.</p>

<p>This means that in STL any curved surface is represented with an approximation of many very small faces.</p>

<p>OBJ is also somewhat common, but it was originally developed for computer graphics, not manufacturing, and as such is capaple to store information like the texture images to be applied to the surface, which are of no use in the 3D printing world.</p>

<p>In terms of geometry description, OBJ is more capable than STL, as it can describe "real" curves, without the need to approximate them to a series of polygons.  The benefit of this feature is however more theoretic than practical, as:</p>

<ul>
<li>most entry-level CAD software don't make use of that feature and create a STL-equivalent OBJ file (so, still with polygons)</li>
<li>a typical STL model for 3D printing will have enough resolution to give the illusion of perfect curves (the same way a high-res screen gives the illusion of perfect curves, despite its pixels being arranged in a squared matrix),</li>
<li>the slicer/printer's firmware may themselves approximate an accurate curve to a series of segments</li>
</ul>

<p>Short said, <strong>I would suggest you use STL unless you have a specific reason not to</strong>.</p>

<p>If you would find yourself in need to accurately describe curves I would rather use the STEP file format, as that has been specifically created for manufacturing, rather than "borrowed" from computer graphics.</p>

CC BY-SA 3.0
2018-03-08T19:11:09.213Z
Two important points regarding TinkerCad:

- The OBJ file format,...is also gaining traction in the 3D printing industry as the industry moves towards **full color printing**.

- STEP also supports "Constructive Solid Geometry" which primarily how TinkerCad works.

source: [article on All3DP](https://all3dp.com/3d-file-format-3d-files-3d-printer-3d-cad-vrml-stl-obj/) (thanks @tmartin )
David Lotts
CC BY-SA 3.0
2018-03-08T20:34:02.497Z
@DavidLotts - Mmm... I think you misunderstood slightly either my answer either the article. :)  "Constructive Solid Geometry" is how _all_ modern CAD software work and the sentence "the STEP file format has been specifically created for manufacturing" refers to that.  OBJ support colour, but let me state it again: it has _not_ been designed for manufacturing and lack flexibility and features. For what I can see all people who have multi-material printers prefer the AMF format (which stands for "Additive Manufacturing Format", so specific for 3D printers).
mac
CC BY-SA 3.0
2018-03-08T20:38:33.593Z
@DavidLotts - Bottom-line.  Feel free to use whatever you prefer, but when it comes to geometry description OBJ does not offer any substantial advantage over other formats that are much more established (like SLT), and when it comes to extra features (materials colours) it falls short over other designed-for-manufacturing standards (like AMF, STEP). :)
mac
CC BY-SA 3.0
2018-03-14T05:46:16.920Z
I agree with all your points!  Mostly my comment was to add color since you did not mention it in your answer.  The OP asked about STL or OBJ only.  I don't know if Tinkercad can add texture/color information to OBJ -- but if you find a source, it might be a good addition to your already awesomely practical answer.
David Lotts
CC BY-SA 3.0
2018-03-08T07:46:07.737Z
2018-03-11T01:41:33.673Z
2018-03-11T01:41:33.673Z
mac
<p>One of the CAD programs I use is called <a href="http://www.tinkercad.com" rel="noreferrer">TinkerCAD</a>, which lets you export your design in either STL or OBJ form. What is the difference between these two file types? And which one is better to use?</p>

<cad><stl><obj>
What is the difference between STL and OBJ files and which one should I use?
Elijah M
# What is the difference between STL and OBJ files and which one should I use?

(Asked by: username_0 on 2018-03-08)

One of the CAD programs I use is called [TinkerCAD](http://www.tinkercad.com), which lets you export your design in either STL or OBJ form. What is the difference between these two file types? And which one is better to use?

**Tags:** cad, stl, obj


---

## 2 answers

### Answer by username_3 on 2018-03-08. Score: 5 | Accepted answer

**STL is the *de facto* standard in consumer-grade 3D printing**. It is a bare-bone format that describes the shape of the object by defining the coordinates of all the vertices of all triangles that a surface may be subdivided into.

This means that in STL any curved surface is represented with an approximation of many very small faces.

OBJ is also somewhat common, but it was originally developed for computer graphics, not manufacturing, and as such is capaple to store information like the texture images to be applied to the surface, which are of no use in the 3D printing world.

In terms of geometry description, OBJ is more capable than STL, as it can describe "real" curves, without the need to approximate them to a series of polygons. The benefit of this feature is however more theoretic than practical, as:

* most entry-level CAD software don't make use of that feature and create a STL-equivalent OBJ file (so, still with polygons)
* a typical STL model for 3D printing will have enough resolution to give the illusion of perfect curves (the same way a high-res screen gives the illusion of perfect curves, despite its pixels being arranged in a squared matrix),
* the slicer/printer's firmware may themselves approximate an accurate curve to a series of segments

Short said, **I would suggest you use STL unless you have a specific reason not to**.

If you would find yourself in need to accurately describe curves I would rather use the STEP file format, as that has been specifically created for manufacturing, rather than "borrowed" from computer graphics.

> **Comments:**
> **username_2**: Two important points regarding TinkerCad:  - The OBJ file format,...is also gaining traction in the 3D printing industry as the industry moves towards **full color printing**.  - STEP also supports "Constructive Solid Geometry" which primarily how TinkerCad works.  source: [article on All3DP](https://all3dp.com/3d-file-format-3d-files-3d-printer-3d-cad-vrml-stl-obj/) (thanks @username_1 )  
> **username_3**: @username_2 - Mmm... I think you misunderstood slightly either my answer either the article. :)  "Constructive Solid Geometry" is how _all_ modern CAD software work and the sentence "the STEP file format has been specifically created for manufacturing" refers to that.  OBJ support colour, but let me state it again: it has _not_ been designed for manufacturing and lack flexibility and features. For what I can see all people who have multi-material printers prefer the AMF format (which stands for "Additive Manufacturing Format", so specific for 3D printers).  
> **username_3**: @username_2 - Bottom-line.  Feel free to use whatever you prefer, but when it comes to geometry description OBJ does not offer any substantial advantage over other formats that are much more established (like SLT), and when it comes to extra features (materials colours) it falls short over other designed-for-manufacturing standards (like AMF, STEP). :)  
> **username_2**: I agree with all your points!  Mostly my comment was to add color since you did not mention it in your answer.  The OP asked about STL or OBJ only.  I don't know if Tinkercad can add texture/color information to OBJ -- but if you find a source, it might be a good addition to your already awesomely practical answer.  

---

### Answer by username_1 on 2018-03-08. Score: 2

While the STL-format can only describe your object aproximatively by those well known triangles, OBJ-files can describe parts of your object parametrically by curves. This can lead to a higher precision and be a huge advance with regard to scalability.
Which data format to choose depends, as always, on the application and the processes it contains. E.g. if you want to print large objects, you might consider the OBJ-format if your slicer can translate it to usable g-code.

You might want to read this [article on All3DP](https://all3dp.com/3d-file-format-3d-files-3d-printer-3d-cad-vrml-stl-obj/) to get a brief overview.

> **Comments:**
> **username_2**: +1 for the article link, detailed coverage and comparison of a whole bunch of formats.  Also, you omitted obj does color, which is becoming more important.  
> **username_1**: I would go even further. IMO texture images will get an asset, as first printers allready combine FDM with inkjet technologies.  

---

