A five-object plate becomes one STL with the same triangle total; the plate layout, object names, filament assignments, colour and process profile are absent. In Bambu Studio, select the object, use the context menu’s Export as STL, and decide whether to apply a negative-volume boolean before the file is written.
Project 3MF and model 3MF are different objects
A model 3MF describes geometry, a declared unit and possibly materials. A project 3MF adds the slicer state: which objects sit on which plate, which filament feeds which part, which process profile is active, and which per-object overrides apply. Bambu Studio’s Save Project writes the second kind, and its wiki says the format is built on the 3MF Production Extension.
The difference is visible in the package. Under the Production Extension, the root model can reference object data in separate .model parts through a path attribute.
| What the file holds | Project 3MF | STL | Downstream effect of the loss |
|---|---|---|---|
| Geometry | Yes | Yes | None; triangles survive |
| Declared unit | Yes | No | The receiver must assume millimetres |
| Object names and build items | Yes | No | Rebuild the part list by hand |
| Plate layout and multiple plates | Yes | No | Re-arrange every object before printing |
| Filament assignment and colour | Yes | No | Reassign filament and colour manually |
| Process profile and per-object settings | Yes | No | Rebuild the print recipe |
| Production Extension structure | Yes | No | The flat STL cannot be reopened as a project |
What lives inside a Bambu project
The geometry is in the model parts, but the project state is spread across the package. The root file indexes parts stored elsewhere; the path attribute points at them. The package can also carry the colour and material assignments that Bambu’s Standard 3MF color page describes, plus the plate and process state that makes a project a project.
Geometry and transforms are one layer; filament slots, process settings and plate order are another. An STL writer only needs the first.
The extension also changes what a converter has to read. In a core 3MF, every object lives in one model part. Under the extension, the root model holds the build list and the object data can live in other parts, which a reader reaches through the path attribute. A converter that walks only the root sees references, not triangles.
A reader that opens every model part can still flatten the plate, because each build item names an object and each object resolves to a mesh. What it cannot recover is the project layer: plate order, filament slots and process state are not geometry, even when they sit in the same package.
How do you export an STL from Bambu Studio?
In Bambu Studio 02.09 (checked November 2026), select the object and use the context menu’s Export as STL for one object, or use the File menu export for the whole plate. Labels in 1.x builds differed, so match the menu by function if yours is older. Bambu’s exporter transforms each object’s model parts into place and merges them. If the object contains negative volumes, it asks whether to apply a mesh boolean before export. Both behaviours are in Plater::export_stl in the Bambu Studio source (master branch, accessed 12 November 2026).
Decide about the boolean before you export. An STL with an unapplied negative volume contains the cutter as a solid, and no downstream tool knows it was meant to subtract. The same exporter can write one STL per object into a directory, which is the cleaner route when the parts have to stay separate.
What this converter does with a Bambu 3MF
Open the converter and drop the project. The browser reader unzips the package, reads the model parts, applies each build item’s transform and the declared unit, and merges everything into one indexed mesh. It writes binary STL with millimetre coordinates and reports one triangle count, one vertex count and one bounding box.
It does not read plate order, filament slots, process settings or per-object overrides, and it does not run a boolean. If the project uses a structure the reader cannot parse, the conversion fails rather than producing a partial plate. In that case, export from Bambu Studio, which wrote the file and understands it.
Five objects, one STL
A model 3MF with 5 object elements and 60 triangle elements converted to one 3,084-byte STL. The export has 60 triangles, a 108 × 20 × 20 mm bounding box and 5 disconnected shells.
| Reading | Value |
|---|---|
| Object elements | 5 |
| Triangles in the 3MF | 60 |
| Triangles in the STL | 60 |
| Connected shells | 5 |
This fixture is a plain model 3MF, not a Bambu project, so it tests the merge step and not the Production Extension. Download plate-five.3mf. We ran the converter in Chrome on 13 November 2026 and read the exported STL back for triangles, bounds and shells. PrusaSlicer 2.9.7 opened the saved STL as 60 facets, manifold, 5 parts, 108 × 20 × 20 mm; admesh 0.98.5 reported the same 5 parts and trimesh 4.12.2 read it as watertight. No print was made; the test page lists the readings.
What the STL cannot carry
STL is a triangle list with an 84-byte header and 50 bytes per triangle. It has no unit field, no object table, no material slot and no settings block. Every project value has to be re-entered in the receiving slicer: layer height, walls, infill, supports, temperatures, filament mapping and plate arrangement.
That layout gives a size check. A 500,000-triangle plate is 84 + 500,000 × 50 = 25,000,084 bytes, about 25 MB. If the file is far from that figure, the triangle total or the binary format is not what you assumed.
If the receiving slicer is not Bambu Studio, the process profile may not exist there under the same name. A profile is tied to a printer definition and a filament definition, and those are part of the project, not the mesh.
Does exporting from Bambu Studio keep the plate?
No. Export as STL writes geometry, and the plate arrangement is a property of the project. Bambu’s exporter applies each object’s instance transform, so the coordinates keep their position in the build space, but the STL carries no plate origin, no plate count and no object list.
If you export one file per object, compare the bounding boxes of the files to reconstruct where each part sat. If you export the whole plate as one file, the arrangement is baked into the coordinates but there is no way to move a part afterward. Neither export records which plate the objects came from.
How do you check a converted Bambu plate?
Compare the triangle count with the source plate and the bounding box with the plate’s extents in millimetres. Count the shells: one shell per object if the objects do not touch, fewer if they intersect. Then check the slicer preview for internal walls at the junctions, which is the signature of a merged but un-unioned plate.
A bounding box that matches while the shell count is low means the geometry arrived and the parts were never separate. That is a plate problem, not a conversion problem, and it needs a boolean before printing.
When should you not convert a Bambu 3MF?
When the print depends on the project: multi-colour, per-object filament, multiple plates, a tuned process profile, or a printer that reads the 3MF directly. Converting is for a receiver that only takes STL, such as an older slicer, a printer’s web upload, or a mesh editor. If the receiver is Bambu Studio or Orca, send the project and keep everything.
Skip the conversion when the model’s negative volumes matter and you cannot apply the boolean first. The STL will contain the wrong solid, and the slicer will print the cutter along with the part.
| The next tool needs | Send | Why |
|---|---|---|
| Geometry only | STL | The triangles are all it reads |
| Colour, parts or plate order | Project 3MF | Those live in the project layer |
| The print recipe | Project 3MF | Settings are tied to the project |
The 3MF vs STL comparison sets out the rest of the boundary.
By the 3mftostl.io Editor Team, reviewed 14 November 2026. Editorial standards.
How this page was written: the package structure and compatibility notes come from Bambu Lab’s wiki and the 3MF Production Extension, and the export behaviour comes from Bambu Studio’s Plater::export_stl source. The converter behaviour is this site’s implementation. The five-object fixture in “Five objects, one STL” is a synthetic model 3MF, not a Bambu project; it was converted in Chrome on 13 November 2026 and the exported STL was read back for triangle count, bounds and shell count. No print was run and the file was not opened in Bambu Studio. AI-assisted first draft, checked against the sources and reviewed by the Editor Team.
Sources:
- Bambu Lab, Bambu Studio 3mf Compatibility, Production Extension and slicer support — accessed 12 November 2026.
- Bambu Lab, Standard 3MF File Color Parsing, colour support scope — accessed 12 November 2026.
- Bambu Lab, BambuStudio Plater.cpp,
Plater::export_stl, master branch, accessed 12 November 2026. - 3MF Consortium, 3MF Production Extension, path attribute — accessed 12 November 2026.
- Library of Congress, STL File Format, Binary, 80-byte header and 50 bytes per triangle — accessed 12 November 2026.
Related on this site: where the parts go when a plate becomes one STL and how PrusaSlicer’s project 3MF differs.
Convert your own 3MF
Drop a 3MF file and get one STL in millimetres. Runs in this tab; nothing is uploaded and no account is needed.