Ability to Clean or Purge Unused Data From Large 3MF Projects

I often work out of a single “master” project where I import many 3MFs, tweak parts, delete unused ones, and reuse components to build new variations. Over time, these projects become very large (500–700 MB). Even after deleting large parts, the file size only partially drops (e.g., to ~300 MB), and performance remains slow.

This raises the question: do deleted models and data still exist inside the 3MF as hidden or unused content? If so, it would be very helpful to have a way to purge unused meshes, history, and project data without exporting to a brand-new project.

Exporting a clean 3MF works, but it breaks workflows for users who maintain large “Frankenstein-style” master projects with many reusable parts. A built-in cleanup/optimize project function would greatly improve performance for advanced and production-focused users.

There are many 3MF file viewers on the web. Try a few and see if any reveal hidden objects in your 3MF…

2 Likes

I tested this in two separate steps. (Solved ?)

First, I compared Save As versus Export Generic 3MF on the same project:

  • Save As produced a file that was the same size (351 MB), indicating no cleanup or compaction occurs.

  • Export Generic 3MF resulted in a much larger file (611 MB), suggesting the export rebuilds and flattens geometry rather than deduplicating or reducing data.

Second, I backed up the original project and then deleted build plates one at a time, observing file size and load time after each deletion. With each plate removed, the file size dropped and the project opened noticeably faster. This indicates that plate-level data is actually removed when a plate is deleted, and that accumulated plates are a major contributor to both file size and performance issues.

In practice, deleting unused plates is currently the most effective way to reduce bloat and restore performance within an existing project. There still does not appear to be a way to compact or purge unused data (history, references, etc.) without exporting to a new project.

Pssst!!!

Don’t tell anyone but a 3MF file is actually a .ZIP file.

You didn’t hear it from me.


But seriously, if you want to find out why your 3MF file is bloating and want to try your hand and manually manipulating the internal file content, that task is relatively straight forward. Take the .3MF and rename it .ZIP. Then just browse or extract the archive and re-archive when your done.

Bambu does a lot of non-standard things to their 3MF format and doesn’t document them. I know, you’re shaking your head and saying “Surely you don’t mean that Bambu Labs would be opaque and non-transparent in their tech” but it’s true, ask anyone. :rofl:

Notice Bambu isn’t on this list:

If you want to get your inner-geek on, here’s the spec at the 3MF consortium website:

Here’s a simple sample Bambu file and the directory tree underneath it. This is just Benchy model saved as follows:

benchy.3mf (92.9 KB)

benchy.3mf
├── [Content_Types].xml
├── 3D
│ ├── 3dmodel.model
│ ├── Objects
│ │ └── painters-pyramid-v2.stl_1.model
│ └── _rels
│ └── 3dmodel.model.rels
├── Metadata
│ ├── model_settings.config
│ ├── project_settings.config
│ ├── slice_info.config
│ ├── pick_1.png
│ ├── plate_1.png
│ ├── plate_1_small.png
│ ├── plate_no_light_1.png
│ └── top_1.png
└── _rels
└── .rels

_________________________________

Once you extract your files to your folder, you can then do an analysis of subfolder size. I tend to use disktective as a my go-to source for file size analysis but there are plenty of other tools out there that do similar analysis

LOL, thanks! I will have to check this out.