STL, OBJ, STP, 3MF: It’s all a question of (file) format

This post is also available in: German

When you download ready-made objects from platforms like Thingiverse or the like, in most cases you get an STL file. But sometimes also a STP or a 3MF file. There are a variety of different file formats in which a 3D model can be made available for 3D printing. Let’s see which ones there are and what makes them different.

What are the file formats for 3D printing? The most commonly used file formats for CAD models for 3D printing are STL, STEP, OBJ, AMF and increasingly 3MF. The current de facto standard is still the STL format.

However, the STL format does have its weaknesses. In the article I discuss the weaknesses of the file format and also which format might become the new standard in the future.

What are the file formats for 3D printing?

Before we go into the depths, we should immediately eliminate a major misconception. For 3D printing, there is the GCode format. Sometimes abbreviated to .gc or .gx. This is the file format for 3D printing, which contains the commands for the 3D printer.

File formats such as STL, STEP, OBJ, 3MF or whatever they may all be called are the file formats for exchanging the CAD models between the various applications, such as the CAD design software and the slicer. The GCode file for the printer is then exported from the latter.

The most commonly used file formats for the exchange of CAD model data for 3D printing are

  • STL – Standard Triangulation Language
  • OBJ – OBJect
  • STP/STEP – STandardfor the Exchange of Productmodel data
  • 3MF – 3D Manufacturing Format
  • AMF – Additive Manufacturing FileFormat

These are the file formats you usually can’t get around. You will find these file formats when you download a file from one of the major platforms like Thingiverse, MyMiniFactory, etc. or when you use your slicer to prepare a CAD model for printing.

In some cases, of course, you will encounter less common formats here. Of these, there is a sheer plethora. The different formats have been created depending on the CAD software used, as is common in all other software sectors. Each manufacturer tries to accommodate the advantages of its own software to a certain extent in its own, often proprietary, file format and thus to bind the users to itself. However, it is not uncommon for manufacturers to build on one of the well-known formats and extend it with their own information. Either way, this data is not usable by most slicers.

Fortunately, over the last years and even decades, some formats have prevailed and now form the standard when it comes to data exchange between the different CAD programs, but also towards the slicers. However, the most widely used format, the STL format, is one that has some weaknesses and not everyone is happy about it.


The STL format(Standard Triangulation Language) is the standard file format par excellence for 3D printing CAD models. If you download a CAD model from a platform or receive a file for a print job from someone, chances are very high that it is an STL. There is no slicer that does not support the STL format.

The history of the STL file format

STL file format was created in 1987 by 3D Systems Inc. for the first 3D printer developed by 3D Systems and released in 1988. The focus was on the stereolithography printer. Since its release, the format has remained virtually unchanged for 22 years.

Only in 2009 major changes and extension were made in the file format. The result of this change is the file format known today as AMF(Additive Manufacturing FileFormat).

The properties of the STL file format

The STL format describes only the surface geometry of a three-dimensional object without any additional information about color, texture or other data about the CAD model. The CAD model is represented as a so-called mesh with the help of triangles. In this mesh, each point of a triangle must occur in at least three triangles.

Source: Wikipedia / User: LaurensvanLieshout

As you can easily guess from the picture, this amount of triangles results in very large files very quickly. However, since the STL format is stored as binary format in addition to ASCII, these files can still be kept very small. The binary format is therefore the more frequently used variant due to its compactness.

The advantages of the STL file format

Apart from the fact that the STL format is a very simple file format due to its way of storing data, the above-mentioned reduction of data to triangles additionally offers a great advantage regarding data security. Since only triangles are stored to represent the surface, all other sensitive development data is not stored and thus not transmitted when passed on to third parties. This is of immense advantage, especially in the field of rapid prototyping, which this format entails.

The disadvantages of the STL file format

The described advantage of the STL file format is possibly also the biggest disadvantage. Because only the surface is mapped. Any additional information that some other formats store, such as texture, color, etc., is not taken into account here.

As shown in the picture above, this saving of the model in the form of many small triangles leads to a slight blurring and inaccuracy of the models. This may not be a big problem in rapid prototyping, but it can be quite problematic for the actual production of an object.

Another disadvantage is that STL files, although they are the quasi-standard, are not automatically suitable for preparation for 3D printing. Sometimes the files have to be prepared for 3D printing with the help of various tools.


The STEP(STandardfor the Exchange of Productmodel data) file format is a standard for describing product data. The STEP format covers not only the physical but also the functional aspects of a product. Due to the standardization, the format is suitable for data exchange between different CAD systems but also towards most slicers. The STEP file format is used in most cases rather in the industrial area.


The AMF(Additive Manufacturing FileFormat) file format is an open standard for describing objects for 3D printing. It is an XML-based file format that allows CAD software to describe the shape and composition of a 3D model. Unlike the STL format, the AMF format provides native support for colors, materials and other information.

Although the AMF format is the further development of the STL format and eliminates many of the weaknesses of STL, the format still lacks support on the part of the industry and has not yet been able to establish itself as the successor to the STL format.


Like the AMF format, the 3D Manufacturing Formator 3MF format is an open XML-based standard. This format was also developed with the aim to include information about colors, materials and other data related to the CAD model. Furthermore, model-independent data such as a thumbnail of the model, printer profiles, information on support materials, etc. can also be stored in this file.

Another big advantage of the 3MF file format is that it uses the same compression as a ZIP archive and can basically be handled exactly the same way. If the file extension is changed to .ZIP, the file internals can be accessed with any common zip program. Due to the compression algorithm, the 3MF files are already conceptually designed for the lowest possible storage space consumption.

The 3MF file format was developed and published by the 3MF Consortium. The consortium was founded by Microsoft and now includes well-known members and supporters from various industry sectors, such as Autodesk, PTC, Netfabb, Ultimaker, HP, Shapeways, Siemens, Stratasys, EOS and many more.

In order to achieve wide acceptance and to enable easier adaptation, the 3MF consortium has published a C++ implementation of the format. In contrast to the AMF format, the actual successor of the STL format, the 3MF is widely accepted by slicer manufacturers. Manufacturers like Ultimaker with the slicer Cura, Prusa with the Prusa Slicer but also many other manufacturers already support this format and try to push this format more and more.


Although the STL format is more commonly used in 3D printing, the OBJ file format is the more universal file format than the STL format. With the OBJ format a wider range of 3D modeling can be covered. The spectrum ranges from 3D models for 3D printing to 3D animations and gaming. Due to the wider application range of the OBJ format, this format is by far more complex than the STL file format, which is not necessarily conducive to its acceptance. This could also be a reason why the OBJ format never really caught on.

What is the standard file format for 3D printing?

The de facto standard in 3D printing is the STL format. Well, at least for now. For some time now, work has been underway to establish a newer and more complete format that can compensate for the weaknesses of the STL format while still offering the same advantages, such as small file size and an easy-to-understand file format.

The format with the greatest potential to overtake STL in the next few years is the 3MF format. An open format with broad support from well-known representatives. Especially in the area of hobby users or in the area of professional (non-industrial) printers, the format is becoming more and more popular.

The reason why STL is still perceived as the standard is that especially on platforms like thingiverse and co most of the files offered for download are still available in STL format. And as long as this remains the case and the various CAD software manufacturers still offer STL as the standard export format, it will still take ages until one of the other formats will prevail.

Can I just download a ready-made GCODE file instead of an STL?

In general, not really, since the GCODE can store proprietary information about the printer itself and the filament in addition to the instructions for the printer. This procedure only works if you use exactly the same printer and the same filament. As soon as anything deviates from this, it no longer works. In the worst case, this can even damage your printer by using a foreign GCODE file.

Can I print JPEGs or PNGs on the 3D printer?

No, at least not in a direct way. JPEG, PNG, GIF or the like are simple image formats. These do not contain information about 3D objects, even if they are depicted on them. However, it is possible to create 3D models from image files using various programs, e.g. CAD programs. These can then in turn be exported as STL or preferably 3MF and prepared for the printer.

Recent Posts