3MF Inspector
Drop in a .3mf and get an honest readout of what's inside: the zip structure, the geometry counts, the colors, the metadata. We build 3MF QuickView, a macOS Quick Look app that parses these files for a living, so we built the browser version for fun.
runs 100% locally · your file never leaves this tab
Drop a .3mf here
or browse for one
read in this tab · nothing uploaded · nothing phoned home
This browser does not support DecompressionStream, which is needed to open compressed zip entries. Here, the inspector can read only uncompressed archives. A current Safari, Chrome, or Firefox can read compressed entries.
archive: paths are inside the .3mf zip, not on your disk · rename a copy to .zip to browse them
What it reads
The full story a .3mf can tell, read straight from the bytes.
- the zipThe whole archive, walked by hand with bounds-checked offsets: every entry, its size, its compression method. Zip64 included, because some slicers emit Zip64 records even for tiny files.
- geometryObjects, vertices, and triangles, counted exactly, per part and in total. A tiny calibration cube and a plate with millions of triangles both get real numbers.
- units & metadataThe model's unit, so the dimensions mean something, plus every model-level metadata row the slicer wrote: title, designer, application, all of it.
- colors & materialsColor groups, base materials, and distinct per-triangle paint_color values. A painted model reports its actual palette, not just "has colors."
- production refsProduction-extension references (p:path), the way Bambu, Orca, and Prusa split a build across parts. Each referenced part is opened, read, and counted too.
- archive pathsEverything labeled archive: is a real path inside the .3mf, which is a zip underneath. Rename a copy to .zip and you can walk the same paths yourself.
Where it stops, and why
Every limit below traces to one choice we're happy with: the whole inspector runs in this tab. Your file never touches a server, so the browser's rules are the rules. That trade is the feature.
- big partsModel parts over 25 MB skip the full XML parse for a streaming raw scan, because a DOM that size would flatten a browser tab. Counts stay exact; unit and metadata come from the head of the part, and color counting assumes the usual m: prefix.
- paintSub-triangle paint splits count as one paint_color value. Paint is read at triangle granularity: fine enough for an honest palette, cheap enough to stay instant in a tab.
- production depthp:path references are followed one level deep, 32 parts at most. Real exports don't nest deeper, and in an untrusted file an unbounded reference chain is a spin loop waiting to happen.
- encryptionEncrypted parts (3MF Secure Content) are reported, never decrypted, and password-protected zips stay closed. Decrypting would take your keys, and a web page that asked for those wouldn't deserve them.
This tab reads it. This app renders it.
3MF QuickView opens the same files on your Mac, where a browser tab's rules don't apply: the whole model, in its real slicer colors, rendered right in Finder. Coming soon to the Mac App Store.