What this comparison can prove
The comparison can prove that two readable embedded values differ, or that a supported key appears on only one side. It does not prove the slicer used every embedded value, that two differently named keys mean the same thing, or that absent metadata equals a default. For that reason, missing values are shown as added or removed—not guessed from a current slicer release.
Keys are normalized only for spelling mechanics: case, spaces, dots, slashes, hyphens, and JSON array indexes. Values receive conservative whitespace, boolean, and same-unit numeric normalization. There is no hidden unit conversion or version-specific defaults table.
Why 3MF settings vary
The 3MF Core specification defines a ZIP-based model package, but slicer application settings are commonly stored in application-specific metadata parts. Prusa-family projects may use Metadata/Slic3r_PE.config. Bambu Studio's source defines files such as Metadata/project_settings.config and Metadata/print_profile.config. A geometry-only 3MF can be perfectly usable while containing none of those parts.
This tool reads supported metadata documents, validates ZIP boundaries and CRCs, and lists which sources contributed settings. It does not render geometry, compare toolpaths, validate a complete 3MF schema, interpret every vendor extension, or certify project compatibility.
How plain G-code is handled
Only comment metadata is inspected; motion, temperature, and machine commands are never executed or interpreted as the active profile. Prusa-style ; key = value lines and a small set of common Cura header fields are supported. Cura SETTING_3 payloads and binary BGCODE are explicitly left uninterpreted rather than partially decoded.
Use the exact slicer versions and printer profile history for release decisions. The official CuraEngine export documentation explains how plans become G-code, while the Bambu Studio 3MF implementation is useful evidence for its metadata filenames.
Frequently asked questions
Why are there very few Cura settings?
Common Cura G-code headers expose summary fields, while complete settings can be stored in encoded application payloads. This bounded tool does not claim to decode those payloads.
Why is a setting “removed” instead of “default”?
The second file contains no supported evidence for that key. Defaults depend on the slicer, release, printer, inheritance, and profile, so assigning one would be a guess.
Can I compare G-code with 3MF?
Yes. The comparison is by normalized key, and every row still shows its original file, metadata part, and line when available.
Does unchanged mean identical output?
No. Unsupported metadata, model geometry, modifiers, toolpaths, firmware behavior, and slicer-version changes can still differ.