A macOS Quick Look Preview extension. Press SPACE in the Finder on a
.3mf, .gcode or .bgcode file and it shows, large, the thumbnail image
already embedded in the file by your slicer (PrusaSlicer, Bambu Studio, Orca,
etc.).
The embedded thumbnail the extension shows when you press Space on a .3mf file.
This is the missing piece next to ThumbHost3mf: that project registers the thumbnail (the Finder icon, extension point
com.apple.quicklook.thumbnail); this one registers the preview (the large SPACE window, extension pointcom.apple.quicklook.preview). The two can coexist.
Scope of v1: only display the embedded image. Rendering the 3D mesh is left
for v2 (see DECISIONS.md).
Grab the prebuilt app from the latest release:
- Download and unzip
MF3Preview-<version>-macos.zip. - Move
MF3Preview.appinto/Applications(required — Quick Look only loads the extension from there). - Launch it once so macOS registers the extension, then quit it.
- Select a
.3mfin the Finder and press Space.
The release build is ad-hoc signed and not notarized (no paid Apple Developer account), so on first launch macOS may block it: System Settings → Privacy & Security → Open Anyway, or run
xattr -dr com.apple.quarantine /Applications/MF3Preview.app.
Prefer to build and sign it yourself with your free Personal Team? See Building in Xcode below.
- macOS (Apple Silicon or Intel) with Xcode installed.
- An Apple ID (the free / Personal Team account is enough — a paid Apple Developer account is not required).
- (Optional, only to regenerate the project) XcodeGen:
brew install xcodegen. The.xcodeprojis already committed, so to just build it you do not need XcodeGen.
- Open
MF3Preview.xcodeprojin Xcode. - Select the MF3Preview target → Signing & Capabilities tab:
- Check Automatically manage signing.
- In Team, select your Personal Team (your name / free Apple ID).
- Do the same for the PreviewExtension target (use the same Team).
With a Personal Team the
Bundle Identifiermust be unique to your account. If Xcode complains, change thecom.guconstantinoprefix to something of your own in both targets (keeping the appex as…<app>.PreviewExtension). - Select the MF3Preview scheme and Product → Build (⌘B).
From the command line (debug):
xcodebuild -project MF3Preview.xcodeproj -scheme MF3Preview \
-configuration Debug -destination 'platform=macOS' buildmacOS only activates the Quick Look extension if the host app lives in
/Applications (or a subfolder of it) — not in ~/Applications,
Downloads or Desktop.
- In Xcode: Product → Archive (or copy the
.appfrom the build folder). - Copy
MF3Preview.appinto/Applications. - Launch the app once (double-click). This registers the extension with the system. You can close it afterwards — it only needs to run once to register.
- (Optional) Confirm in System Settings → General → Login Items & Extensions → Quick Look that 3MF Preview appears and is enabled.
Because the app is not notarized (notarization requires a paid account), opening it on another machine may trigger a "cannot verify the developer" block. To allow it (one-time step):
System Settings → Privacy & Security → scroll to the message about the blocked app → "Open Anyway" → confirm.
On your own machine (the one that signed it with your Personal Team) this usually doesn't even appear.
- Download a real
.3mflocally that has a thumbnail (most files exported by PrusaSlicer/Bambu/Orca since ~2021 do).⚠️ Make sure the file is actually downloaded — not a 0 KB iCloud placeholder. Non-downloaded items have no content for Quick Look to read. - In the Finder, select the file and press SPACE. The embedded image should appear, large.
Reset the Quick Look cache and the Finder:
qlmanage -r && qlmanage -r cache && killall FinderYou can also force a preview from the command line to debug:
qlmanage -p /path/to/file.3mfAnd list the Quick Look preview extensions the system sees:
pluginkit -mAvvv -p com.apple.quicklook.preview | grep -i mf3Common-problem checklist:
- The
.appis not in/Applications→ move it and launch it again. - The app was never opened after installing → open it once.
- The
.3mfhas no embedded thumbnail, or it's a non-downloaded iCloud item. - Stale cache → run the
qlmanage -r …commands above.
| Extension | Thumbnail source | Image formats |
|---|---|---|
.3mf |
image under Metadata/… inside the ZIP/OPC |
PNG (JPG/QOI also accepted) |
.gcode |
base64 PNG in the comments | PNG (JPG/QOI also accepted) |
.bgcode |
thumbnail block in the "GCDE" container | PNG / JPG / QOI |
Path priority inside the .3mf: Metadata/thumbnail.png →
Metadata/plate_1.png → Metadata/plate_1_small.png → Metadata/top_1.png →
first *.png under Metadata/.
Without a paid Apple Developer account, the free path is a self-hosted
Homebrew tap with the non-notarized .app:
# (planned, does not exist yet)
brew tap guconstantino/3mfpreview
brew install --cask 3mf-preview…plus the one-time Gatekeeper step above. The frictionless (notarized)
experience would require the $99/year paid account — a conscious decision to
defer, recorded in DECISIONS.md (section 8).
Apache-2.0. The thumbnail-extraction logic is a Swift
re-implementation derived from
ThumbHost3mf by
David Phillip Oster (Apache-2.0). The QOI decoder is a port of qoi.h by
Dominic Szablewski (MIT). See NOTICE and ARCHITECTURE.md.
