Infill before walls (infill_first)

Infill before walls is on or off.

What does each slicer call it?

Five slicers, five spellings of one setting. The scope column is which preset the key belongs to, which is what decides whether changing it follows the printer, the filament, or the print profile.

Slicer Key Scope
PrusaSlicer infill_first process
Bambu Studio is_infill_first process
OrcaSlicer is_infill_first process
Cura infill_before_walls process
Creality Print is_infill_first process

What does each slicer say about it?

Each slicer offers its own values, so each gets its own line.

  • PrusaSlicer: On or off. Prints infill before the walls on each layer.
  • Bambu Studio: Prints infill before walls when on. Off prints walls first, the usual order for clean outer surfaces.
  • OrcaSlicer: Prints infill before walls when on. Off prints walls first, which gives better outer quality in most cases.
  • Cura: Prints infill before walls. Infill first makes stronger walls; walls first is more accurate, but infill may show through.
  • Creality Print: Prints infill before walls when on. Walls first usually gives a better outer surface.

Where does it live in the file?

All five slicers file this under the process preset, so its value follows the print profile rather than the model. A .3mf is a zip, so unzip it and search for infill_first, is_infill_first and infill_before_walls, or open the file in preslice and read the Raw tab, which searches every member at once.

Four of the five slicers write their settings into a sidecar part beside the geometry. Cura writes them into the model XML itself, so there is no config part to open.

Slicer Part Format
PrusaSlicer Metadata/Slic3r_PE.config INI, one key = value per line
Bambu Studio Metadata/project_settings.config JSON, one flat object
OrcaSlicer Metadata/project_settings.config JSON, one flat object
Cura 3D/3dmodel.model XML metadata inside the model part, under a cura namespace
Creality Print Metadata/project_settings.config JSON, one flat object

What values are valid?

Each slicer declares its own type, default, and bounds for its key. They do not always agree, and where they disagree the file is still valid in both: the slicer that wrote it is the one that enforced its own rule.

Slicer Type Unit Default Range
PrusaSlicer bool not declared 0 not declared
Bambu Studio bool not declared not declared not declared
OrcaSlicer bool not declared 0 not declared
Cura bool not declared on not declared
Creality Print bool not declared not declared not declared

PrusaSlicer, Bambu Studio, OrcaSlicer, Cura and Creality Print declare no range for this key, so nothing in the file bounds it.

This value is not a number, so PrusaSlicer, Bambu Studio, OrcaSlicer, Cura and Creality Print declare no unit for it.

Every type, default, and bound above is read from the slicer's own field definitions rather than from measurement: PrusaSlicer's PrintConfig.cpp, Bambu Studio's PrintConfig.cpp, OrcaSlicer's PrintConfig.cpp, Cura's fdmprinter.def.json and Creality Print's PrintConfig.cpp.

Can I read it from my own file?

Yes, without installing a slicer. Open preslice and drop a .3mf on the page. It unzips and parses the file in your browser, and shows infill before walls under its own name alongside the rest of the print settings. The file stays in your browser; see what leaves it.