Skip to content

Infill

Infill is the internal structure of a 3D print, providing strength and support. It can be adjusted to balance material usage, print time, and part strength.

Sparse infill density

Mode: Simple.
Variable: sparse_infill_density.
Type: Percentage.
CLI Example: --sparse-infill-density=20%.
Infill density determines the amount of material used to fill the interior of a 3D print. It is usually expressed as a percentage, with 100% being completely solid.

  • Higher density increases
    • Strength
    • Material usage
    • Print time.

Note

Density is usually calculated as a percentage of the total infill volume, not the total print volume.
Nevertheless, not all patterns interpret density the same way, so the actual material usage may vary.
You can see each pattern's material usage in the Patterns section.

Fill Multiline

Mode: Simple.
Variable: fill_multiline.
Type: Integer.
CLI Example: --fill-multiline=1.
This setting allows the selected infill pattern to be generated using up to 10 parallel extrusion lines per path, while preserving both the defined infill density and the overall material usage.

To check which patterns support multiline infill, see the Patterns Quick Reference table in the Infill Patterns Wiki List or each pattern's specifics in the Patterns section.

multiline-infill

Note

Orca's approach is different from other slicers that simply multiply the number of lines and material usage, generating a denser infill than expected.
Orca Slicer keeps the cross-section constant for the set density.

Infill Density % Infill Lines Orca Density Other Slicers Density
10% 2 10% 20%
25% 2 25% 50%
40% 2 40% 80%
10% 3 10% 30%
25% 3 25% 75%
40% 3 40% 100%
10% 5 10% 50%
25% 5 25% 100%
40% 5 40% 100%

Use cases

  • Increasing the number of lines (e.g., 2 or 3) can improve part strength and print speed without increasing material usage.
  • Fire-retardant applications: Some flame-resistant materials (like PolyMax PC-FR) require a minimum printed wall/infill thickness—often 1.5–3 mm—to comply with standards. Since infill contributes to overall part thickness, using multiple lines helps achieve the necessary thickness without switching to a large nozzle or printing with 100% infill. This is especially useful for high-temperature materials like PC, which are prone to warping when fully solid.
  • Creating aesthetic infill patterns (like Grid or Honeycomb) with multiple line widths—without relying on CAD modeling or being limited to a single extrusion width.
  • Increasing stability for weak infill patterns like Lightning.
  • Printing gears and other mechanisms, because multiline infill transfers torque better.

infill-multiline-aesthetic

With more lines, the pattern is laid out that many times larger and each of its lines is printed as that many parallel lines, so the same density prints the same length of line. That length has fewer corners and gentler curves, where the nozzle has to slow down, and the lines of a group end next to each other, where they are joined instead of traveling between them.

In the infill analysis, more lines usually printed faster:

Each pattern's 2 and 3 lines entries in the Patterns section show its own print time over a single line.

Tip

Three other settings cut the time of the sparse infill, with or without multiline:

  • Reduce Infill Retraction skips the retraction, wipe and Z-hop of travels that stay inside the infill, where oozing can't be seen. Each skipped retraction saves tens of milliseconds, which add up over the thousands of infill travels of a large print.
  • Infill Combination prints the sparse infill of several layers as one thicker layer, while the walls keep the original layer height. Fewer, thicker layers mean fewer infill moves for the same volume.
  • Sparse Infill Smooth Factor rounds the corners of the sparse infill path, so the toolhead keeps more of its speed through the turns. At 100% it shortened the infill print time of the patterns that support it by 4-25% (see how much for each pattern), at the cost of a larger G-code file, which its vertex budget keeps in check.

Strategy

The way multiple lines are generated depends on the selected infill pattern.
The following describes possible strategies for infill generation.

Classic Strategy

For most self-intersecting infills (e.g. Quarter Cubic) multiline will generate closed loops to avoid overlapping lines. This may lead to some increased print time.

In this example of a pattern of crossing lines and the Gyroid pattern, you can see (in purple) the closed loops generated to avoid overlapping lines.

infill-multiline-closed-loops

Non-Crossing Strategy

Grid, Triangles, Tri-hexagon, Cubic, Adaptive Cubic & Support Cubic patterns use a Non-crossing multiline strategy. For these infill patterns, an alternative approach is used, generating trapezoidal trajectories designed to avoid self-intersections of the infill lines. In each layer, the pattern rotates to ensure isotropic strength.
This strategy improves printing times by avoiding closed loops in favor of continuous printing paths.
3D Honeycomb is also non-crossing: it draws its multiline copies itself as parallel waves that never cross.

Important

NEW FEATURE: Non-Crossing Cubic, Adaptive Cubic and Support Cubic
Available in: Nightly builds or Releases greater than 2.4.2.

  • Cubic paths follow the same lines as its single-line pattern, so they still shift with the layer height: most layers look like Tri-hexagon, and the layers where the three line directions meet look like Triangles.
  • Adaptive Cubic and Support Cubic paths follow their lines of every cube size. Where a finer line ends on a coarser one, its path stops against the path of the coarser line.

infill-multiline-non-crossing

Direction and Rotation

These settings control the orientation of the sparse and solid infill lines to optimize strength and material usage.

Direction

Mode: Advanced.
Variables: infill_direction, solid_infill_direction.
Type: Float.
CLI Example: --infill-direction=1 (same pattern for the other variables above).
Controls the direction of the infill lines to optimize or strengthen the print.

Adaptive Cubic and Support Cubic do not support rotation, so the sparse infill direction and the sparse infill rotation template are disabled for them. The solid infill direction and rotation template are not affected.

fill-direction

Tip

Enable Align directions to model to make this direction follow the model's orientation on the build plate.

Rotation

This parameter sets the sparse (or solid) infill direction for each layer according to the specified template. When a template is set, the matching Direction setting is ignored.
The template is a comma-separated list of angles in degrees.

For example:

0,90

fill-rotation

The first layer uses 0°, the second uses 90°, and the pattern repeats for subsequent layers.

Other examples:

0,45,90
0,60,120,180

Note

If there are more layers than angles, the sequence repeats.

Tip

You can use Template Metalanguage for infill rotation to create more complex patterns.

Important

Not all sparse patterns support rotation.

Symmetric infill Y axis

Mode: Advanced.
Variable: symmetric_infill_y_axis.
Type: Boolean.
CLI Example: --symmetric-infill-y-axis=1.
When enabled, the infill pattern is mirrored about an axis parallel to the Y axis that passes through the center of the object. This can help achieve more uniform strength distribution in certain geometries.

Important

This setting is only available for the Zig Zag, Cross Zag and Locked Zag patterns.

You can apply this setting with multiple objects or using modifiers to control infill orientation for different parts of your print.
For example, you might want to mirror the infill pattern of symmetric components, like airplane wings or boat hulls, to enhance their structural integrity without needing a 45° rotation.

symmetric_infill_y_axis

Infill Wall Overlap

Mode: Advanced.
Variable: infill_wall_overlap.
Type: Percentage.
CLI Example: --infill-wall-overlap=20%.
Infill area is enlarged slightly to overlap with wall for better bonding. The percentage value is approximately relative to the inner wall line width. More precisely, it is relative to half the inner wall line spacing plus half the internal solid infill line spacing with the Classic wall generator, and to the inner wall line spacing with Arachne (the outer wall line spacing in both cases where only one wall is printed). Set this value to ~10-15% to minimize potential over-extrusion and accumulation of material resulting in rough surfaces.

  • Infill Wall Overlap Off

InfillWallOverlapOff

  • Infill Wall Overlap On

InfillWallOverlapOn

Apply gap fill

Mode: Advanced.
Variable: gap_fill_target.
Type: Choice.
Options: everywhere, topbottom, nowhere.
CLI Example: --gap-fill-target=everywhere.
Enables gap fill for the selected solid surfaces.
The minimum gap length that will be filled can be controlled with the Filter out tiny gaps option.

  1. Everywhere: Applies gap fill to top, bottom and internal solid surfaces for maximum strength.
  2. Top and bottom surfaces: Applies gap fill to top and bottom surfaces only, balancing print speed, reducing potential over-extrusion in the solid infill and making sure the top and bottom surfaces have no pinhole gaps.
  3. Nowhere: Disables gap fill for all solid infill areas.

Note that if using the classic perimeter generator, gap fill may also be generated between perimeters, if a full width line cannot fit between them. That perimeter gap fill is not controlled by this setting.

If you would like all gap fill, including the classic perimeter generated one, removed, set the Filter out tiny gaps value to a large number, like 999999.

However, this is not advised, as gap fill between perimeters contributes to the model's strength. For models where excessive gap fill is generated between perimeters, a better option would be to switch to the Arachne wall generator and use this option to control whether the cosmetic top and bottom surface gap fill is generated.

Filter out tiny gaps

Mode: Advanced.
Variable: filter_out_gap_fill.
Type: Float.
CLI Example: --filter-out-gap-fill=1.
Don't print gap fill with a length smaller than the specified threshold (in mm).
This setting applies to top, bottom and solid infill and, if using the classic perimeter generator, to wall gap fill.

Anchor

Mode: Advanced.
Variables: infill_anchor_max, infill_anchor.
Type: Float or Percentage.
CLI Example: --infill-anchor-max=20% (same pattern for the other variables above).
Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as a percentage (example: 15%), it is calculated over the infill extrusion width. OrcaSlicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment shorter than the Maximum length of the infill anchor is found, the infill line is connected to a perimeter segment at just one side and the length of the perimeter segment taken is limited to the Sparse infill anchor length, but no longer than the Maximum length of the infill anchor. If the Maximum length of the infill anchor is set to 0, the old algorithm for infill connection is used, which should create the same result as 1000 & 0.

When a line end cannot be connected to its neighbor, its anchor runs along the wall toward the nearest free line end, where the next infill path usually starts. Two line ends whose anchors would meet are connected instead. With multiline infill, an anchor stops short of the other lines of its group instead of printing over them.

Line ends left next to each other, about two line widths apart or closer, are joined with a short straight segment so they print as one path, also when the Maximum length of the infill anchor is 0.

Concentric loops follow the outline of the infill area instead of ending at the walls, so there is nothing to anchor and both settings are hidden for that pattern.
With the Line pattern both settings are disabled, and the Sparse infill anchor length is also disabled whenever the Maximum length of the infill anchor is 0.

  • Anchor Off

InfillAnchorOff

  • Anchor On

InfillAnchorOn

Internal Solid Infill

Mode: Simple.
Variable: internal_solid_infill_pattern.
Type: Choice.
Options: monotonic, monotonicline, rectilinear, alignedrectilinear, concentric, spiralinset, hilbertcurve, archimedeanchords, octagramspiral.
CLI Example: --internal-solid-infill-pattern=monotonic.
Line pattern of internal solid infill. If Detect narrow internal solid infill is enabled, the Concentric pattern will be used for small areas.

Extra Solid Infill

Mode: Advanced.
Variable: extra_solid_infills.
Type: Text.
CLI Example: --extra-solid-infills=value.
Insert extra solid infills at specific layers to add strength at critical points in your print. This feature allows you to strategically reinforce your part without changing the overall sparse infill density.

extra-solid-infill

The pattern supports two formats:

Interval Pattern

  • Simple interval: N - Insert 1 solid layer every N layers, equal to N#1
  • Multiple layers: N#K - Insert K consecutive solid layers every N layers
  • Optional K: N# - Shorthand for N#1

Examples:

5 or 5#1    # Insert 1 solid layer every 5 layers
5#          # Same as 5#1
10#2        # Insert 2 consecutive solid layers every 10 layers

Explicit Layer List

Specify exact layer numbers (1-based) using comma-separated values. Each entry may be a single layer N or a range N#K to insert K consecutive solid layers starting at layer N:

1,7,9       # Insert solid layers at layers 1, 7, and 9
5,15,25     # Insert solid layers at layers 5, 15, and 25
5,9#2,18    # Insert at 5; at 9 and 10 (because #2); and at 18

Note

  • Layer numbers are 1-based (first layer is layer 1)
  • #K is optional in both interval and explicit list entries (N# equals N#1)
  • Solid infill replaces the sparse infill only on the selected layers; all other layers keep the normal sparse infill pattern

Tip

Use this feature to:

  • Add strength at stress concentration points
  • Reinforce mounting holes or attachment points
  • Create internal structure for functional parts
  • Add periodic reinforcement for tall prints
  • Insert a single solid layer at a specific height by using an explicit list with a leading 0, which will be ignored because layer indices are 1-based. Example: 0,15 inserts a solid layer only at layer 15.

Warning

Layers that include solid infill can take significantly longer than surrounding layers. This time differential may lead to z-banding-like bulges. Consider adjusting cooling or speeds if you observe artifacts.

Sparse Infill Pattern

Mode: Simple.
Variable: sparse_infill_pattern.
Type: Choice.
Options: rectilinear, alignedrectilinear, zigzag, crosszag, lockedzag, line, grid, triangles, tri-hexagon, cubic, adaptivecubic, quartercubic, supportcubic, lightning, honeycomb, 3dhoneycomb, lateral-honeycomb, lateral-lattice, crosshatch, tpmsd, tpmsfk, gyroid, concentric, hilbertcurve, archimedeanchords, octagramspiral.
CLI Example: --sparse-infill-pattern=rectilinear.

Tip

See Infill Patterns Wiki List with detailed specifications, including their strengths and weaknesses.

Sparse Infill Smooth Factor

Mode: Advanced.
Variable: sparse_infill_smooth_factor.
Type: Percentage.
CLI Example: --sparse-infill-smooth-factor=20%.

Important

NEW FEATURE: Sparse infill smooth factor
Available in: Nightly builds or Releases greater than 2.4.2.

Rounds the corners of the sparse infill path, replacing each sharp direction change with a curve that joins the two straight legs meeting at it. The curvature of the curve grows from zero at both legs, so the nozzle eases into and out of the turn instead of snapping into it.
0% keeps the original sharp path, while 100% produces the largest possible curves between adjacent infill lines. A curve never consumes more than half of the shorter leg on each side of a corner, so the curves of two neighboring corners meet at most at the midpoint of the segment they share and never overlap.

Smoothing the corners reduces plastic shrinkage at each turn and helps keep the nozzle from scratching the infill during travel moves made with little or no Z-hop. It also lets the toolhead keep more of its speed through the turns instead of decelerating into every corner.

Example with the Octagram Spiral pattern:

  • 0%: the original sharp path.

infill-smooth-factor-0

  • 50%: each curve reaches a quarter of the shorter leg on both sides of the corner.

infill-smooth-factor-50

  • 100%: the curves of two neighboring corners meet at the midpoint of the segment they share, leaving no straight section between them.

infill-smooth-factor-100

How rounded corners are printed

A curve is printed as straight moves, and the printer slows down at each junction between two moves by how much it turns there. A rounded corner is therefore printed as the polygon of the curve's tangents taken at equal steps of direction, so every one of its vertices turns by the same angle.

How many vertices a corner gets follows the G-code resolution, like every other path: the fewest that keep the polygon within the resolution of the curve. It depends only on the shape of the corner and the resolution, not on the printer, and a larger curve takes more vertices.

The vertices are what make a rounded corner fast: each one is a slowdown, and the gentler its turn, the less it slows the toolhead. A curve split into a few vertices saves little, and can even print slower than the sharp corner, as the short moves between its vertices leave no room to accelerate.

A curve is only as fast as its sharpest vertex. On a Klipper printer with a square corner velocity of 9 mm/s and 10,000 mm/s² acceleration, a vertex turning by 13.6 degrees allows about 69 mm/s, and one turning by 9 degrees about 104 mm/s. At 100% the curves of neighboring corners meet on patterns like Hilbert Curve, so the whole infill path is curves and runs at that speed rather than at the sparse infill speed. That is why the G-code resolution, which sets how finely a curve is split, matters most on those patterns.

Rounded corners let the toolhead keep more of its speed through the turns, so the infill prints faster. This is how much shorter the print time of the sparse infill was than with 0%, counting the travel between its lines, in the setup of the infill analysis (the mean of a 100 mm cube, a 3DBenchy and the Stanford bunny at 5, 15, 30 and 50% density, on a Klipper printer):

Pattern 25% 50% 75% 100%
Octagram Spiral 9% 17% 23% 29%
3D Honeycomb 3% 10% 14% 21%
Honeycomb 2% 9% 13% 19%
Hilbert Curve 1% 5% 9% 18%
Tri-hexagon, 3 lines 4% 8% 12% 16%
Tri-hexagon, 2 lines 6% 11% 11% 16%
Cubic, 3 lines 3% 6% 10% 13%
Cubic, 2 lines 4% 8% 9% 13%
Cross Hatch 2% 5% 8% 12%
Grid, 3 lines 1% 5% 5% 10%
Grid, 2 lines 2% 3% 9% 8%
Triangles, 2 lines 0% 1% 2% 5%
Concentric 1% 2% 3% 4%
Lightning 1% 2% 2% 3%
Triangles, 3 lines -1% 0% 3% 2%

Octagram Spiral, Hilbert Curve and Honeycomb cut their corners deeply enough to print 29%, 15% and 7% less material at 100%, which is part of their time saving. The other patterns keep their material within 4%, so their saving comes from speed.

Note

A rounded corner takes several moves instead of one, so the G-code file gets larger as the smooth factor goes up. At 100% the infill G-code is about 1.5 to 3 times that of the sharp path for most patterns, about 5 times for Honeycomb, 6 times for Hilbert Curve and 8 times for Octagram Spiral, whose sharp path has very few vertices.

Best smooth factor for speed

  • 100% prints fastest for almost every pattern and density in the analysis: the largest curves get the most vertices and the gentlest turns. The exceptions are close: Grid with 2 lines and Triangles with 3 lines print about one point faster at 75%.
  • Lower factors save less. On average 50% saves about half of what 100% saves, and Triangles saves almost nothing below 75%. Use them for the look of the infill, not for speed.
  • A finer G-code resolution prints faster. It splits every corner into more and gentler turns: on the 100 mm cube at 100%, going from 0.012 to 0.006 mm raised the mean saving from 16% to 22%, for about 1.5 times the infill G-code. The resolution applies to the whole print, walls included.

Supported patterns

The setting only affects sparse infill, and only the patterns that implement it. It is hidden in the GUI when the selected pattern is not one of them.

Note

Grid, Triangles, Tri-hexagon and Cubic are only rounded in their trapezoidal, Non-Crossing form, which needs more than one line per infill wall. With a single line they are plain crossing lines with no corner to round.

Corners left sharp

Not every vertex of a supported pattern can be rounded, so some parts of the path stay as they are:

  • Hairpins. A turn that doubles back on itself (a direction change sharper than about 154 degrees) would collapse into a degenerate loop instead of a curve, so it is left sharp. This is what keeps the tips of the Lightning branches pointed.
  • Straight layers. Layers where a pattern degenerates into straight lines have no corner to round — the flat layers of 3D Honeycomb, the repeat layers of Cross Hatch and the straight base lines of the Triangles family.
  • Concentric corners that would leave the fill region. Its loops are offsets of the region rather than a path clipped to it, and rounding always cuts toward the inside of the turn. Around a hole, at a concave feature or across a thin region that cut falls outside the fill and would put the extrusion over a wall, so those corners keep their original shape. The reach is also capped at half the distance between two loops, since a loop is as long as the object rather than as long as one cell of a pattern.
  • Lightning turns are capped as well. Cutting a corner moves the whole branch, so the reach is limited to half the distance between two branches — or, with Fill Multiline, to half the printed branch width, which keeps the outlines drawn around merging branches from breaking up into separate loops.

Top-Bottom Direction

Mode: Simple.
Variables: top_layer_direction, bottom_layer_direction.
Type: Float.
CLI Example: --top-layer-direction=1 (same pattern for the other variables above).

Important

NEW FEATURE: Top/Bottom layer direction
Available in: Nightly builds or Releases greater than 2.4.2.

Fixed angle (in degrees) for the top and bottom surface lines.
top-direction

The top angle also applies to ironing lines.
Set to -1 to follow the default solid infill direction.

Separated Infills

Mode: Expert.
Variable: separated_infills.
Type: Boolean.
CLI Example: --separated-infills=1.

Important

NEW FEATURE: Separated infills
Available in: Nightly builds or Releases greater than 2.4.2.

Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly.
By default the entire assembly is treated as a single whole, so a centered or rotated infill pattern is referenced to one common center and rotates around it. When enabled, each part is centered on its own full 3D bounding box — producing the same pattern you would get by slicing that part on its own.

separated-infills

Parts are grouped by their real geometry when deciding what shares a center:

  • Touching or overlapping parts are treated as one body and share a single center.
  • Separate parts with disjoint projections — including distinct 3D objects — each get their own center.
  • Disconnected islands within a single mesh are centered separately.
  • Interleaved parts that never touch (chains) each get an independent center.

Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.

Note

The main disadvantage is that, for complex and large slices, centering each part independently can increase slicing time.

Applies to sparse infill, internal solid infill and bridges. Top and bottom surfaces are not affected; see Center Surface Pattern On for those.
The option is shown for the sparse infill patterns it can center:

  • Line and grid patterns: Rectilinear, Aligned Rectilinear, Zig Zag, Cross Zag, Locked Zag, Line, Grid, Triangles, Tri-hexagon, Cubic, Quarter Cubic, Lateral Lattice, Lateral Honeycomb, Hilbert Curve, Archimedean Chords and Octagram Spiral are phased through each part's bounding-box center, and rotated infill turns around it.
  • Patterns laid out from the object origin: Honeycomb, 3D Honeycomb, Cross Hatch, Gyroid, TPMS-D and TPMS-FK are moved onto each part's bounding-box center.

Adaptive Cubic and Support Cubic always fill each part on its own, with cubes refined only near that part's surfaces, so the option is not shown for them.
Lightning is generated for the whole object and is unaffected, and Concentric already follows the outline of each part.

  • Separated Infills Off: the assembly is treated as a single whole, so the infill of every object is referenced to one common center.

separated_infills_off

  • Separated Infills On: each object in the assembly gets its own self-centered infill pattern.

separated_infills_on

Credits