An STL file can describe a part that is 30 millimeters wide without containing the word “millimeter.”
It does not know what material you intend to use either. It does not know the color. It does not preserve the parametric history of the model, the constraints in a sketch, the purpose of a hole, or the difference between a surface that began as a perfect cylinder and one that merely looks cylindrical because enough tiny triangles were used.
It takes geometry and reduces it to a triangulated skin.
Then everybody accepts it.
That second fact is more interesting than the usual list of STL defects. The format has been around since the commercial beginning of 3D printing. 3D Systems traces it back to Chuck Hull in the mid-1980s and commercialized the SLA-1 in 1987.2 3 Nearly four decades later, CAD packages, slicers, model libraries and printers still know what to do with a .stl file.
NIST described the paradox in 2023: despite repeated attempts to modernize the exchange layer, no newer format had actually displaced STL and G-code across additive-manufacturing practice.1
It is not because nobody designed something better.
3MF knows the unit. It can carry multiple objects, materials, colors, textures and metadata. It is compressed inside a ZIP-based package, has an open specification, and in 2025 the 3MF specifications became the international standard ISO/IEC 25422.5 10
On paper, that should settle the matter.
It has not.
STL does not save a part. It saves its skin
The basic idea behind STL is almost aggressively simple: represent the surface of an object with flat triangles.
A box needs very few. A sphere needs many. The smoother you want the curve to appear, the more finely the surface gets divided. 3D Systems still explains STL in those terms today: triangle count rises with geometric complexity and with the resolution requested from the approximation.2

That conversion is useful because a manufacturing machine does not necessarily need to know that a surface came from a 3 mm fillet applied after a 42 mm extrusion. It needs geometry that can be turned into layers, toolpaths, exposure masks or another machine-facing representation.
But the conversion is destructive.
NIST lists the missing pieces: no standardized unit, no tolerance, no design semantics, curves approximated by polygons, and awkward failure modes around overlapping triangles, reversed normals and disconnected geometry.1 Prusa gives the same list in more ordinary workshop language: no scale, color or material, and nothing in the format itself preventing holes, non-manifold edges, flipped normals or self-intersections.7
Non-manifold sounds like a phrase invented to make a small mesh problem feel academically expensive. The actual issue is simple. If a skin is meant to describe a closed solid, its faces need to connect without ambiguity. An edge shared by three faces, two volumes meeting only along an edge, or a tiny accidental opening can leave the slicer guessing what is inside and what is outside.

STL therefore carries enough information to manufacture a shape, but often not enough information to understand why that shape has gone wrong when the next tool rejects it.
And this is where the defect starts to look suspiciously like a feature.
Forgetting almost everything creates a very stable boundary
The NIST chapter gives several reasons for STL's longevity. The obvious one is simplicity. Supporting the format is easy. More importantly, it became an abstraction layer between complicated CAD systems and manufacturing machines that did not need to share the same internal model.1
STL is not trying to move the project. It is trying to move a shape.
That distinction matters.
A native FreeCAD, SolidWorks, Fusion or Onshape model can contain far more than a surface. It may preserve parameters, references between features, sketches and a construction history. All of that is valuable while the file remains inside an environment capable of interpreting it. It becomes baggage when the only message is: “manufacture this geometry.”
STL ends the conversation early.
Less information also creates fewer things to disagree about. One application may interpret a feature history differently, ignore an extension, fail to understand a slicer setting, or discard a domain-specific property. STL has a much smaller contract: here are the triangles.
NIST also points to a historical incentive. In early additive manufacturing, keeping information out of the geometry exchange could help machine vendors protect process knowledge. The geometry remained separate from machine-specific parameters and methods, reinforcing the role of proprietary software around the machine.1
That was not necessarily a benefit for the owner of the machine. It was, however, a market structure that fit STL perfectly well.
Then the network effect became self-sustaining. Software supported STL because everybody else's software supported STL. Model libraries published it because almost any slicer could open it. A new program had a strong reason to import it because entire existing libraries were already full of STL files.
A mediocre format can become excellent at one thing: being the format nobody needs to negotiate first.

3MF fixes the embarrassing parts
3MF reads almost like a response to the STL defect list.
The specification defines model units explicitly. Millimeter, micron, centimeter, inch, foot or meter can travel with the model instead of being guessed by the receiving application.5
It also puts stricter rules around meshes that are supposed to represent solid objects. Edges and triangle orientation must form a consistent closed volume rather than leaving every consumer to repair arbitrary topology in its own way.5
The file itself is a ZIP package built from open conventions. It can contain the model, textures, thumbnails, properties, multiple objects and relationships between those pieces. Extensions add richer material, color, lattice, Boolean and production information.5
Prusa uses that extra room in an extremely practical way. Saving a PrusaSlicer project as 3MF can preserve the objects, slicer settings, modifiers, manually prepared supports, variable layer settings and a thumbnail. Prusa describes the result as a full project snapshot that can be reopened on another computer instead of rebuilding the preparation from scratch.8
This is no longer “here is the skin.”
It is closer to “here is enough context to reproduce the manufacturing work I was doing around this shape.”

The format also has a cleaner answer for geometry that triangles describe inefficiently.
In 2023, the 3MF Consortium published a demonstration using lattice structures. As a 100 mm cube filled with a Diamond lattice gets finer, a tessellated STL accumulates enormous numbers of triangles. At a 5 mm cell size, the consortium reports roughly 181 MB for STL, 54 MB for the same mesh inside a compressed 3MF package, and under 1 MB when the structure is represented using the 3MF Beam Lattice extension.9
This is not an independent benchmark. It comes from the organization developing 3MF. The example still demonstrates a real representational problem. Describing a regular lattice as millions of tiny surface facets is a little like preserving a spreadsheet by taking a separate photograph of every cell. Technically possible. Spiritually hostile.


At this point, continuing to exchange STL can look almost ritualistic.
There is one missing piece.
3MF is not the source file of your object
The 3MF Consortium says this directly: 3MF is not intended to replace STEP or native CAD formats, and its roadmap does not target higher-order representations such as NURBS.6
That distinction matters because “better than STL” does not mean “the best 3D format for every job.”
STEP AP242 can represent a much broader engineering exchange: product structure, properties, configuration, manufacturing information and long-term model-based product data.11 A native CAD document can preserve even more software-specific design intent.
3MF is primarily about carrying a manufacturing-ready definition and related context through additive workflows. Its core still uses triangle meshes. It makes that representation less ambiguous, more compact and richer, but it does not turn an exported mesh back into an editable parametric model.5 6
Richer files introduce a different problem too: which parts of the context are actually portable?
Prusa can store PrusaSlicer settings inside a 3MF project and recover them later.8 That does not mean another slicer must assign the same meaning to every application-specific preference. Prusa itself notes that print settings saved by one slicer may not convert properly in another.7 The standardized container can therefore carry both broadly interoperable model data and project information that only some software understands.
The same .3mf can behave as a standardized exchange format and as an application-enriched project file.
STL avoids this argument by using a rather magnificent piece of engineering diplomacy: it has almost nothing to enrich.
A manufacturing file is not a design archive
This distinction connects to another change happening around 3D-printing tools: preserving the source file is starting to matter as much as preserving the printable export.
When Manyfold added previews for FreeCAD files, the feature looked tiny. A self-hosted 3D library could display a .FCStd file directly instead of forcing its owner to make an export merely to get a useful preview. But the shift matters. The parametric file no longer has to remain a private working document hidden behind the STL that gets published. It can stay in the library beside the object it describes.
Take a very simple mounting bracket. STL is enough to print it. If a 4 mm hole needs to become 5 mm, you can still edit the mesh, cut the region, or reconstruct the part. In the source model, the same change may be as small as editing one dimension. Both files can represent what looks like the same object while transmitting very different amounts of agency to the next person.
That matters for anything expected to last. Immediate compatibility and future editability do not necessarily want the same format. STL is excellent at delivering a surface to almost any tool. It is poor at explaining how that surface came into existence. 3MF can carry more manufacturing context. STEP and native files can preserve more of the design structure.
Publishing several formats is therefore not obsessive file housekeeping. “Can print it,” “can prepare it,” and “can modify it” are three different promises.
The dumb format can be the best meeting point
Imagine three people.
One designs a replacement part in FreeCAD. Another prepares it in PrusaSlicer. The third owns a printer whose manufacturer may no longer exist five years from now.
If they want to preserve the design, STL is a bad archive. Keep the native source. Export STEP as well when future CAD editing and cross-tool exchange matter. Document the critical dimensions and manufacturing assumptions instead of hoping a triangulated shell will explain itself.
If they want to share additive-manufacturing preparation, 3MF is usually much better. Units, multiple objects and project information remove avoidable ambiguity. In a workflow such as PrusaSlicer, saving the actual project as 3MF preserves substantially more useful work than saving a lone STL.8
But if they need the smallest plausible common denominator between two unknown tools, STL remains extremely hard to beat.
That is not a technical victory. It is a social one.
A living standard is not only a well-designed specification. It is a sufficiently broad agreement that neither side has to stop and ask what the other side can read.
This is why replacement formats can spend years “winning” on paper before the old one disappears from practice. 3MF now has an open specification, broad software support and an international ISO standard.5 10 It has something many proposed successors never acquire: a credible path to becoming boring infrastructure.
But it is trying to replace a format whose strongest feature is that it already is boring infrastructure.
Do not publish only the STL
The practical lesson is less dramatic than declaring a winner.
For an object that somebody may need to modify, repair or adapt, publishing only an STL is like publishing a flattened PDF and throwing away the source document. The result can still be perfectly useful. It simply becomes much harder to transform cleanly later.
For a parametric part, keep the native file. Add STEP when you want CAD systems to exchange editable engineering geometry. Add 3MF when manufacturing preparation, units, multiple components or richer additive information matter. Keep STL when maximum compatibility with existing tools is useful.
The sensible move is often not to choose one universal format.
It is to publish several levels of understanding of the same object.
Chuck Hull's stereolithography work in the 1980s was about shortening the path from a digital model to a physical prototype.4 STL served that movement remarkably well because it erased a huge amount of complexity between those two things.
Nearly forty years later, that simplification has become its technical debt.
It is still its superpower too.
