diff --git a/doc/Home.md b/doc/Home.md
index e0a69b37d5..702f2e2cfc 100644
--- a/doc/Home.md
+++ b/doc/Home.md
@@ -21,7 +21,7 @@ Orca slicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wik
## Printer Settings
-
+
- [Air filtration/Exhaust fan handling](air-filtration)
- [Auxiliary fan handling](Auxiliary-fan)
@@ -31,7 +31,7 @@ Orca slicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wik
## Material Settings
-
+
- [Single Extruder Multimaterial](semm)
- [Pellet Printers (pellet flow coefficient)](pellet-flow-coefficient)
@@ -44,7 +44,7 @@ First steps to prepare your model/s for printing.
## Process Settings
-
+
The below sections provide a detailed settings explanation as well as tips and tricks in setting these for optimal print results.
@@ -52,78 +52,70 @@ The below sections provide a detailed settings explanation as well as tips and t

-- [Layer Height Settings](quality_settings_layer_height)
-- [Line Width Settings](quality_settings_line_width)
-- [Seam Settings](quality_settings_seam)
-- [Precision](quality_settings_precision)
- - [Precise Wall](quality_settings_precision#precise-wall)
- - [Precise Z Height](quality_settings_precision#precise-z-height)
- - [Slice gap closing radius](quality_settings_precision#slice-gap-closing-radius)
- - [Resolution](quality_settings_precision#resolution)
- - [Arc fitting](quality_settings_precision#arc-fitting)
- - [X-Y Compensation](quality_settings_precision#x-y-compensation)
- - [Elephant foot compensation](quality_settings_precision#elephant-foot-compensation)
- - [Precise wall](quality_settings_precision#precise-wall)
- - [Precise Z Height](quality_settings_precision#precise-z-height)
- - [Polyholes](quality_settings_precision#polyholes)
-- [Ironing](quality_settings_ironing)
-- [Wall generator](quality_settings_wall_generator)
-- [Walls and surfaces](quality_settings_wall_and_surfaces)
-- [Bridging](quality_settings_bridging)
-- [Overhangs](quality_settings_overhangs)
+-  [Layer Height Settings](quality_settings_layer_height)
+-  [Line Width Settings](quality_settings_line_width)
+-  [Seam Settings](quality_settings_seam)
+-  [Precision](quality_settings_precision)
+-  [Ironing](quality_settings_ironing)
+-  [Wall generator](quality_settings_wall_generator)
+-  [Walls and surfaces](quality_settings_wall_and_surfaces)
+-  [Bridging](quality_settings_bridging)
+-  [Overhangs](quality_settings_overhangs)
### Strength Settings

-- [Walls](strength_settings_walls)
-- [Top and Bottom Shells](strength_settings_top_bottom_shells)
-- [Infill](strength_settings_infill)
-- [Advanced](strength_settings_advanced)
+-  [Walls](strength_settings_walls)
+-  [Top and Bottom Shells](strength_settings_top_bottom_shells)
+-  [Infill](strength_settings_infill)
+ -  [Template Metalanguage for infill rotation](strength_settings_infill_rotation_template_metalanguage)
+-  [Advanced](strength_settings_advanced)
### Speed Settings

-- [Initial Layer Speed](speed_settings_initial_layer_speed)
-- [Other Layers Speed](speed_settings_other_layers_speed)
-- [Overhang Speed](speed_settings_overhang_speed)
-- [Travel Speed](speed_settings_travel)
-- [Acceleration](speed_settings_acceleration)
-- [Jerk (XY)](speed_settings_jerk_xy)
-- [Advanced / Extrusion rate smoothing](speed_settings_advanced)
+-  [Initial Layer Speed](speed_settings_initial_layer_speed)
+-  [Other Layers Speed](speed_settings_other_layers_speed)
+-  [Overhang Speed](speed_settings_overhang_speed)
+-  [Travel Speed](speed_settings_travel)
+-  [Acceleration](speed_settings_acceleration)
+-  [Jerk (XY)](speed_settings_jerk_xy)
+-  [Advanced / Extrusion rate smoothing](speed_settings_advanced)
### Support Settings

-- [Support](support_settings_support)
-- [Raft](support_settings_raft)
-- [Support Filament](support_settings_filament)
-- [Support Ironing](support_settings_ironing)
-- [Advanced](support_settings_advanced)
-- [Tree Supports](support_settings_tree)
+-  [Support](support_settings_support)
+-  [Raft](support_settings_raft)
+-  [Support Filament](support_settings_filament)
+-  [Support Ironing](support_settings_ironing)
+-  [Advanced](support_settings_advanced)
+-  [Tree Supports](support_settings_tree)
### Multimaterial Settings

-- [Prime Tower](multimaterial_settings_prime_tower)
-- [Filament for Features](multimaterial_settings_filament_for_features)
-- [Ooze Prevention](multimaterial_settings_ooze_prevention)
-- [Flush Options](multimaterial_settings_flush_options)
-- [Advanced](multimaterial_settings_advanced)
+-  [Prime Tower](multimaterial_settings_prime_tower)
+-  [Filament for Features](multimaterial_settings_filament_for_features)
+-  [Ooze Prevention](multimaterial_settings_ooze_prevention)
+-  [Flush Options](multimaterial_settings_flush_options)
+-  [Advanced](multimaterial_settings_advanced)
### Others Settings

-- [Skirt](others_settings_skirt)
-- [Brim](others_settings_brim)
-- [Special Mode](others_settings_special_mode)
-- [G-Code Output](others_settings_g_code_output)
-- [Post Processing Scripts](others_settings_post_processing_scripts)
-- [Notes](others_settings_notes)
+-  [Skirt](others_settings_skirt)
+-  [Brim](others_settings_brim)
+-  [Special Mode](others_settings_special_mode)
+-  [Fuzzy Skin](others_settings_fuzzy_skin)
+-  [G-Code Output](others_settings_g_code_output)
+-  [Post Processing Scripts](others_settings_post_processing_scripts)
+-  [Notes](others_settings_notes)
## Calibrations
diff --git a/doc/calibration/Calibration.md b/doc/calibration/Calibration.md
index 21a7b0d2eb..685b294d07 100644
--- a/doc/calibration/Calibration.md
+++ b/doc/calibration/Calibration.md
@@ -6,7 +6,7 @@ It covers key aspects such as flow rate, pressure advance, temperature towers, r
To access the calibration features, you can find them in the **Calibration** section of the Orca Slicer interface.
-
+
> [!IMPORTANT]
> After completing the calibration process, remember to create a new project in order to exit the calibration mode.
@@ -15,43 +15,43 @@ The recommended order for calibration is as follows:
1. **[Temperature](temp-calib):** Start by calibrating the temperature of the nozzle and the bed. This is crucial as it affects the viscosity of the filament, which in turn influences how well it flows through the nozzle and adheres to the print bed.
-
+
2. **[Flow](flow-rate-calib):** Calibrate the flow rate to ensure that the correct amount of filament is being extruded. This is important for achieving accurate dimensions and good layer adhesion.
-
+
3. **[Pressure Advance](pressure-advance-calib):** Calibrate the pressure advance settings to improve print quality and reduce artifacts caused by pressure fluctuations in the nozzle.
- **[Adaptive Pressure Advance](adaptive-pressure-advance-calib):** This is an advanced calibration technique that can be used to further optimize the pressure advance settings for different print speeds and geometries.
-
+
4. **[Retraction](retraction-calib):** Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and Pressure Advance calibration is recommended, as it ensures that the printer is already set up for optimal extrusion.
-
+
5. **[Max Volumetric Speed](volumetric-speed-calib):** Calibrate the maximum volumetric speed of the filament. This is important for ensuring that the printer can handle the flow rate of the filament without causing issues such as under-extrusion or over-extrusion.
-
+
6. **[Cornering](cornering-calib):** Calibrate the Jerk/Junction Deviation settings to improve print quality and reduce artifacts caused by sharp corners and changes in direction.
-
+
7. **[Input Shaping](input-shaping-calib):** This is an advanced calibration technique that can be used to reduce ringing and improve print quality by compensating for mechanical vibrations in the printer.
-
+
8. **[VFA](vfa-calib):** A VFA speed test is available to find resonance speeds.
-
+
---
**[Tolerance](tolerance-calib):** Calibrate the tolerances of your printer to ensure that it can accurately reproduce the dimensions of the model being printed. This is important for achieving a good fit between parts and for ensuring that the final print meets the desired specifications.
-
+
---
diff --git a/doc/calibration/adaptive-pressure-advance-calib.md b/doc/calibration/adaptive-pressure-advance-calib.md
index ebabb20859..40208a7f08 100644
--- a/doc/calibration/adaptive-pressure-advance-calib.md
+++ b/doc/calibration/adaptive-pressure-advance-calib.md
@@ -145,7 +145,7 @@ It is recommended that the PA step is set to a small value, to allow you to make
PA pattern calibration configuration window have been changed to simplify test setup. Now all is needed is to fill list of accelerations and speeds into relevant fields of the calibration window:
-
+
Test patterns generated for each acceleration-speed pair and all parameters are set accordingly. No additional actions needed from user side. Just slice and print all plates generated.
diff --git a/doc/calibration/cornering-calib.md b/doc/calibration/cornering-calib.md
index 393c16d62e..9baed365be 100644
--- a/doc/calibration/cornering-calib.md
+++ b/doc/calibration/cornering-calib.md
@@ -72,3 +72,9 @@ JD = 0,4 \cdot \frac{\text{Jerk}^2}{\text{Accel.}}
```cpp
//#define CLASSIC_JERK
```
+
+## Credits
+
+- **Junction Deviation Machine Limit** [@RF47](https://github.com/RF47)
+- **Junction Deviation Calibration** [@IanAlexis](https://github.com/IanAlexis)
+- **Fast tower model** [@RF47](https://github.com/RF47)
diff --git a/doc/calibration/flow-rate-calib.md b/doc/calibration/flow-rate-calib.md
index 87d956671f..ce40c927a8 100644
--- a/doc/calibration/flow-rate-calib.md
+++ b/doc/calibration/flow-rate-calib.md
@@ -1,16 +1,42 @@
# Flow rate
-The Flow Ratio determines how much filament is extruded and plays a key role in achieving high-quality prints. A properly calibrated flow ratio ensures consistent layer adhesion and accurate dimensions. If the flow ratio is too low, under-extrusion may occur, leading to gaps, weak layers, and poor structural integrity. On the other hand, a flow ratio that is too high can cause over-extrusion, resulting in excess material, rough surfaces, and dimensional inaccuracies.
+The Flow Ratio determines how much filament is extruded and plays a key role in achieving high-quality prints. A properly calibrated flow ratio ensures consistent layer adhesion and accurate dimensions.
+
+- Too **low** flow ratio will cause under-extrusion, leading to gaps, weak layers, and poor structural integrity.
+- Too **high** flow ratio can cause over-extrusion, resulting in excess material, rough surfaces, and dimensional inaccuracies.
+
+- [Calibration Types](#calibration-types)
+ - [OrcaSlicer \> 2.3.0 Archimedean chords + YOLO (Recommended)](#orcaslicer--230-archimedean-chords--yolo-recommended)
+ - [OrcaSlicer \<= 2.3.0 Monotonic Line + 2-Pass Calibration](#orcaslicer--230-monotonic-line--2-pass-calibration)
+- [Credits](#credits)
> [!WARNING]
> **Bambulab Printers:** make sure you do not select the 'Flow calibration' option.
-> 
+> 
-> [!IMPORTANT]
-> PASS 1 and PASS 2 follow the older flow ratio formula `FlowRatio_old*(100 + modifier)/100`.
-> YOLO (Recommended) and YOLO (perfectionist version) use a new system that is very simple `FlowRatio_old±modifier`.
+> [!NOTE]
+> After v2.3.0, the [Top Pattern](strength_settings_top_bottom_shells#surface-pattern) changed to [Archimedean chords](strength_settings_infill#archimedean-chords) from Monotonic Line.
-
+## Calibration Types
+
+- **2-Pass Calibration:** Old method using two passes to determine the optimal flow rate using the formula `FlowRatio_old*(100 + modifier)/100`.
+- **YOLO:** Simplified method that adjusts the flow rate in a single pass using the formula `FlowRatio_old±modifier`.
+ - **Recommended:** Calibration range `[-0.05, +0.05]`, flow rate step is `0.01`.
+ - **Perfectionist Version:** Calibration range `[-0.04, +0.035]`, flow rate step is `0.005`.
+
+### OrcaSlicer > 2.3.0 Archimedean chords + YOLO (Recommended)
+
+This example demonstrates the use of [Archimedean chords](strength_settings_infill#archimedean-chords) for flow rate calibration using the YOLO (Recommended) method.
+
+WIP...
+
+
+
+### OrcaSlicer <= 2.3.0 Monotonic Line + 2-Pass Calibration
+
+This example demonstrates the use of Monotonic Line for flow rate calibration using the 2-Pass Calibration method.
+
+
Calibrating the flow rate involves a two-step process.
@@ -18,19 +44,23 @@ Calibrating the flow rate involves a two-step process.
2. Select `Pass 1` in the `Calibration` menu
3. A new project consisting of nine blocks will be created, each with a different flow rate modifier. Slice and print the project.
4. Examine the blocks and determine which one has the smoothest top surface.
- 
+ 
- 
+ 
5. Update the flow ratio in the filament settings using the following equation: `FlowRatio_old*(100 + modifier)/100`. If your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+5`, the new value should be calculated as follows: `0.98x(100+5)/100 = 1.029`. **Remember** to save the filament profile.
6. Perform the `Pass 2` calibration. This process is similar to `Pass 1`, but a new project with ten blocks will be generated. The flow rate modifiers for this project will range from `-9 to 0`.
7. Repeat steps 4. and 5. In this case, if your previous flow ratio was 1.029 and you selected the block with a flow rate modifier of -6, the new value should be calculated as follows: `1.029x(100-6)/100 = 0.96726`. **Remember** to save the filament profile.
-
+
-
+

> [!TIP]
> @ItsDeidara has made a html to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant).
+
+## Credits
+
+- **[Archimedean Chords Idea](https://makerworld.com/es/models/189543-improved-flow-ratio-calibration-v3#profileId-209504)**: [Jimcorner](https://makerworld.com/es/@jimcorner)
diff --git a/doc/calibration/input-shaping-calib.md b/doc/calibration/input-shaping-calib.md
index 2624aedf17..10f50943f2 100644
--- a/doc/calibration/input-shaping-calib.md
+++ b/doc/calibration/input-shaping-calib.md
@@ -7,6 +7,7 @@ During high-speed movements, vibrations can cause a phenomenon called "ringing,"
- [Marlin](#marlin)
- [ZV Input Shaping](#zv-input-shaping)
- [Fixed-Time Motion](#fixed-time-motion)
+- [Credits](#credits)
## Klipper
@@ -129,3 +130,8 @@ ZV Input Shaping introduces an anti-vibration signal into the stepper motion for
### Fixed-Time Motion
TODO: This calibration test is currently under development. See the [Marlin documentation](https://marlinfw.org/docs/gcode/M493.html) for more information.
+
+## Credits
+
+- **Input Shaping Calibration:** [@IanAlexis](https://github.com/IanAlexis) and [@RF47](https://github.com/RF47)
+- **Klipper testing:** [@ShaneDelmore](https://github.com/ShaneDelmore)
diff --git a/doc/calibration/pressure-advance-calib.md b/doc/calibration/pressure-advance-calib.md
index fe1a37ab44..70d52bc7eb 100644
--- a/doc/calibration/pressure-advance-calib.md
+++ b/doc/calibration/pressure-advance-calib.md
@@ -13,7 +13,7 @@ Orca Slicer includes three approaches for calibrating the pressure advance value
> [!WARNING]
> **Bambulab Printers:** make sure you do not select the 'Flow calibration' option.
-> 
+> 
## Line method
@@ -41,20 +41,20 @@ The pattern method is adapted from [Andrew Ellis' pattern method generator](http
Test configuration window allow user to generate one or more tests in a single projects. Multiple tests will be placed on each plate with extra plates added if needed.
1. Single test \
- 
+ 
2. Batch mode testing (multiple tests on a single plate) \
- 
+ 
Once test generated, one or more small rectangular prisms could be found on the plate, one for each test case. This object serves a few purposes:
1. The test pattern itself is added in as custom G-Code at each layer, same as you could do by hand actually. The rectangular prism gives us the layers in which to insert that G-Code. This also means that **you'll see the full test pattern when you move to the Preview pane:**
-
+
1. The prism acts as a handle, enabling you to move the test pattern wherever you'd like on the plate by moving the prism
2. Each test object is pre-configured with target parameters which are reflected in the objects name. However, test parameters may be adjusted for each prism individually by referring to the object list pane:
-
+
Next, Ellis' generator provided the ability to adjust specific printer, filament, and print profile settings. You can make these same changes in Orca Slicer by adjusting the settings in the Prepare pane as you would with any other print. When you initiate the calibration test, Ellis' default settings are applied. A few things to note about these settings:
diff --git a/doc/calibration/tolerance-calib.md b/doc/calibration/tolerance-calib.md
index e4d0eb9098..818b796b66 100644
--- a/doc/calibration/tolerance-calib.md
+++ b/doc/calibration/tolerance-calib.md
@@ -7,7 +7,7 @@ To correct for these variations, Orca Slicer provides:
- Shrinkage (XY)
- 
+ 
- Process Compensation:
@@ -16,13 +16,13 @@ To correct for these variations, Orca Slicer provides:
- Precise wall
- Precise Z height
- 
+ 
## Handy Models
Orca Slicer includes several handy models to help you test and calibrate your printer.
Right-click on your plate in Prepare mode and select "Add Handy Model" to access these models.
-
+
### Orca Tolerance Test
diff --git a/doc/developer-reference/How-to-wiki.md b/doc/developer-reference/How-to-wiki.md
index bb650dcac1..1d8a3b7f43 100644
--- a/doc/developer-reference/How-to-wiki.md
+++ b/doc/developer-reference/How-to-wiki.md
@@ -163,16 +163,16 @@ Format = `![[filename]](` + Base URL + filename.extension + Raw tag + `)`
#### Examples
-- For an image in `doc/images/` named `example.png`:
+- For an image in `doc/images/` named `calibration.png`:
```markdown
- 
+ 
```
-- For an image in a subdirectory like `doc/images/calibration/pa-example.svg`:
+- For an image in a subdirectory like `doc/images/GUI/combobox.png`:
```markdown
- 
+ 
```
> [!IMPORTANT]
@@ -196,11 +196,11 @@ Avoid the resize of images and let the Wiki handle it automatically.
If resizing is necessary (e.g., for thumbnails), use the following syntax:
-HTML Format = `
+
```
### Image Cropping and Highlighting
diff --git a/doc/images/Flow-Rate/flowcalibration-example.png b/doc/images/Flow-Rate/flowcalibration-example.png
new file mode 100644
index 0000000000..5f325f2977
Binary files /dev/null and b/doc/images/Flow-Rate/flowcalibration-example.png differ
diff --git a/doc/images/Flow-Rate/flowcalibration-yolo.gif b/doc/images/Flow-Rate/flowcalibration-yolo.gif
new file mode 100644
index 0000000000..38420b5bda
Binary files /dev/null and b/doc/images/Flow-Rate/flowcalibration-yolo.gif differ
diff --git a/doc/images/Flow-Rate/flow-calibration.gif b/doc/images/Flow-Rate/monotonic-flow-rate/flow-calibration-monotonic.gif
similarity index 100%
rename from doc/images/Flow-Rate/flow-calibration.gif
rename to doc/images/Flow-Rate/monotonic-flow-rate/flow-calibration-monotonic.gif
diff --git a/doc/images/Flow-Rate/flowrate-0-5.jpg b/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-0-5-monotonic.jpg
similarity index 100%
rename from doc/images/Flow-Rate/flowrate-0-5.jpg
rename to doc/images/Flow-Rate/monotonic-flow-rate/flowrate-0-5-monotonic.jpg
diff --git a/doc/images/Flow-Rate/flowrate-6.jpg b/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-6-monotonic.jpg
similarity index 100%
rename from doc/images/Flow-Rate/flowrate-6.jpg
rename to doc/images/Flow-Rate/monotonic-flow-rate/flowrate-6-monotonic.jpg
diff --git a/doc/images/Flow-Rate/flowrate-pass1.jpg b/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-pass1-monotonic.jpg
similarity index 100%
rename from doc/images/Flow-Rate/flowrate-pass1.jpg
rename to doc/images/Flow-Rate/monotonic-flow-rate/flowrate-pass1-monotonic.jpg
diff --git a/doc/images/Flow-Rate/flowrate-pass2.jpg b/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-pass2-monotonic.jpg
similarity index 100%
rename from doc/images/Flow-Rate/flowrate-pass2.jpg
rename to doc/images/Flow-Rate/monotonic-flow-rate/flowrate-pass2-monotonic.jpg
diff --git a/doc/images/Fuzzy-skin/Fuzzy-skin-Combined-mode.png b/doc/images/Fuzzy-skin/Fuzzy-skin-Combined-mode.png
new file mode 100644
index 0000000000..2e24fd6251
Binary files /dev/null and b/doc/images/Fuzzy-skin/Fuzzy-skin-Combined-mode.png differ
diff --git a/doc/images/Fuzzy-skin/Fuzzy-skin-Displacement-mode.png b/doc/images/Fuzzy-skin/Fuzzy-skin-Displacement-mode.png
new file mode 100644
index 0000000000..7be718382b
Binary files /dev/null and b/doc/images/Fuzzy-skin/Fuzzy-skin-Displacement-mode.png differ
diff --git a/doc/images/Fuzzy-skin/Fuzzy-skin-Extrusion-mode.png b/doc/images/Fuzzy-skin/Fuzzy-skin-Extrusion-mode.png
new file mode 100644
index 0000000000..f3144638dc
Binary files /dev/null and b/doc/images/Fuzzy-skin/Fuzzy-skin-Extrusion-mode.png differ
diff --git a/doc/images/Precision/layer-height-spheres.png b/doc/images/Precision/layer-height-spheres.png
new file mode 100644
index 0000000000..27441eeef7
Binary files /dev/null and b/doc/images/Precision/layer-height-spheres.png differ
diff --git a/doc/images/Precision/layer-height.svg b/doc/images/Precision/layer-height.svg
new file mode 100644
index 0000000000..d86cfe813b
--- /dev/null
+++ b/doc/images/Precision/layer-height.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/doc/images/Precision/reverse-odd-texture.png b/doc/images/Precision/reverse-odd-texture.png
new file mode 100644
index 0000000000..bc4ec2221e
Binary files /dev/null and b/doc/images/Precision/reverse-odd-texture.png differ
diff --git a/doc/images/bridging/bridge-counterbore-none.png b/doc/images/bridging/bridge-counterbore-none.png
new file mode 100644
index 0000000000..e797b3b209
Binary files /dev/null and b/doc/images/bridging/bridge-counterbore-none.png differ
diff --git a/doc/images/bridging/bridge-counterbore-partially.gif b/doc/images/bridging/bridge-counterbore-partially.gif
new file mode 100644
index 0000000000..83eaadd7d1
Binary files /dev/null and b/doc/images/bridging/bridge-counterbore-partially.gif differ
diff --git a/doc/images/bridging/bridge-counterbore-sacrificial.png b/doc/images/bridging/bridge-counterbore-sacrificial.png
new file mode 100644
index 0000000000..31af638539
Binary files /dev/null and b/doc/images/bridging/bridge-counterbore-sacrificial.png differ
diff --git a/doc/images/bridging/thick-bridges.png b/doc/images/bridging/thick-bridges.png
new file mode 100644
index 0000000000..91985947e7
Binary files /dev/null and b/doc/images/bridging/thick-bridges.png differ
diff --git a/doc/images/fill/Template-metalanguage/+30+90.png b/doc/images/fill/Template-metalanguage/+30+90.png
new file mode 100644
index 0000000000..bb5044f88e
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/+30+90.png differ
diff --git a/doc/images/fill/Template-metalanguage/+30-10.png b/doc/images/fill/Template-metalanguage/+30-10.png
new file mode 100644
index 0000000000..686f2d38aa
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/+30-10.png differ
diff --git a/doc/images/fill/Template-metalanguage/+30.png b/doc/images/fill/Template-metalanguage/+30.png
new file mode 100644
index 0000000000..45422d0930
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/+30.png differ
diff --git a/doc/images/fill/Template-metalanguage/+360-100p.png b/doc/images/fill/Template-metalanguage/+360-100p.png
new file mode 100644
index 0000000000..5c35aa6e82
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/+360-100p.png differ
diff --git a/doc/images/fill/Template-metalanguage/+45-100.png b/doc/images/fill/Template-metalanguage/+45-100.png
new file mode 100644
index 0000000000..c7f871d4f3
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/+45-100.png differ
diff --git a/doc/images/fill/Template-metalanguage/+45-50.png b/doc/images/fill/Template-metalanguage/+45-50.png
new file mode 100644
index 0000000000..fbf8982af2
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/+45-50.png differ
diff --git a/doc/images/fill/Template-metalanguage/+45.png b/doc/images/fill/Template-metalanguage/+45.png
new file mode 100644
index 0000000000..90a63e2817
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/+45.png differ
diff --git a/doc/images/fill/Template-metalanguage/+90.png b/doc/images/fill/Template-metalanguage/+90.png
new file mode 100644
index 0000000000..8b15c6c48d
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/+90.png differ
diff --git a/doc/images/fill/Template-metalanguage/0+30+90.png b/doc/images/fill/Template-metalanguage/0+30+90.png
new file mode 100644
index 0000000000..c4423eda40
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/0+30+90.png differ
diff --git a/doc/images/fill/Template-metalanguage/0-30.png b/doc/images/fill/Template-metalanguage/0-30.png
new file mode 100644
index 0000000000..f1428d4393
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/0-30.png differ
diff --git a/doc/images/fill/Template-metalanguage/0.png b/doc/images/fill/Template-metalanguage/0.png
new file mode 100644
index 0000000000..7339ecdb62
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/0.png differ
diff --git a/doc/images/fill/Template-metalanguage/10period.png b/doc/images/fill/Template-metalanguage/10period.png
new file mode 100644
index 0000000000..e3b1337d1b
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/10period.png differ
diff --git a/doc/images/fill/Template-metalanguage/14+15R.png b/doc/images/fill/Template-metalanguage/14+15R.png
new file mode 100644
index 0000000000..8c9f6b0481
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/14+15R.png differ
diff --git a/doc/images/fill/Template-metalanguage/45.png b/doc/images/fill/Template-metalanguage/45.png
new file mode 100644
index 0000000000..ba0d0a6df0
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/45.png differ
diff --git a/doc/images/fill/Template-metalanguage/90.png b/doc/images/fill/Template-metalanguage/90.png
new file mode 100644
index 0000000000..350923b56b
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/90.png differ
diff --git a/doc/images/fill/Template-metalanguage/arcsinus-joint.png b/doc/images/fill/Template-metalanguage/arcsinus-joint.png
new file mode 100644
index 0000000000..cccf96fc25
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/arcsinus-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/cubic-joint-inverse.png b/doc/images/fill/Template-metalanguage/cubic-joint-inverse.png
new file mode 100644
index 0000000000..293b9bb728
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/cubic-joint-inverse.png differ
diff --git a/doc/images/fill/Template-metalanguage/cubic-joint.png b/doc/images/fill/Template-metalanguage/cubic-joint.png
new file mode 100644
index 0000000000..44d08dbd69
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/cubic-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/h-sinus-joint-lazy.png b/doc/images/fill/Template-metalanguage/h-sinus-joint-lazy.png
new file mode 100644
index 0000000000..0304d3f8e0
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/h-sinus-joint-lazy.png differ
diff --git a/doc/images/fill/Template-metalanguage/hv-quarter-joint.png b/doc/images/fill/Template-metalanguage/hv-quarter-joint.png
new file mode 100644
index 0000000000..2958aca689
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/hv-quarter-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/infill-counting-flipped.png b/doc/images/fill/Template-metalanguage/infill-counting-flipped.png
new file mode 100644
index 0000000000..02ab00f7c5
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/infill-counting-flipped.png differ
diff --git a/doc/images/fill/Template-metalanguage/infill-counting.png b/doc/images/fill/Template-metalanguage/infill-counting.png
new file mode 100644
index 0000000000..229f68596e
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/infill-counting.png differ
diff --git a/doc/images/fill/Template-metalanguage/linear-joint.png b/doc/images/fill/Template-metalanguage/linear-joint.png
new file mode 100644
index 0000000000..f9158eb14c
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/linear-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/multiple-joint-initial-angle.png b/doc/images/fill/Template-metalanguage/multiple-joint-initial-angle.png
new file mode 100644
index 0000000000..d854c7a6a9
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/multiple-joint-initial-angle.png differ
diff --git a/doc/images/fill/Template-metalanguage/multiple-joint-middle-angle.png b/doc/images/fill/Template-metalanguage/multiple-joint-middle-angle.png
new file mode 100644
index 0000000000..d1f782bb1b
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/multiple-joint-middle-angle.png differ
diff --git a/doc/images/fill/Template-metalanguage/multiple-joint.png b/doc/images/fill/Template-metalanguage/multiple-joint.png
new file mode 100644
index 0000000000..b691d9daf7
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/multiple-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/pseudorandom-joint.png b/doc/images/fill/Template-metalanguage/pseudorandom-joint.png
new file mode 100644
index 0000000000..746365b9e5
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/pseudorandom-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/random-joint.png b/doc/images/fill/Template-metalanguage/random-joint.png
new file mode 100644
index 0000000000..0700b2c7a7
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/random-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/squared-joint-inverse.png b/doc/images/fill/Template-metalanguage/squared-joint-inverse.png
new file mode 100644
index 0000000000..b2c82ba708
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/squared-joint-inverse.png differ
diff --git a/doc/images/fill/Template-metalanguage/squared-joint.png b/doc/images/fill/Template-metalanguage/squared-joint.png
new file mode 100644
index 0000000000..73eace2592
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/squared-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/v-sinus-joint-lazy.png b/doc/images/fill/Template-metalanguage/v-sinus-joint-lazy.png
new file mode 100644
index 0000000000..a0462665b2
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/v-sinus-joint-lazy.png differ
diff --git a/doc/images/fill/Template-metalanguage/v-sinus-joint.png b/doc/images/fill/Template-metalanguage/v-sinus-joint.png
new file mode 100644
index 0000000000..c66f9ecd3b
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/v-sinus-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/vh-quarter-joint.png b/doc/images/fill/Template-metalanguage/vh-quarter-joint.png
new file mode 100644
index 0000000000..b04dcf0183
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/vh-quarter-joint.png differ
diff --git a/doc/images/fill/Template-metalanguage/z-h-sinus-joint.png b/doc/images/fill/Template-metalanguage/z-h-sinus-joint.png
new file mode 100644
index 0000000000..89649c6566
Binary files /dev/null and b/doc/images/fill/Template-metalanguage/z-h-sinus-joint.png differ
diff --git a/doc/images/ironing/ironing-all-solid-layers.png b/doc/images/ironing/ironing-all-solid-layers.png
new file mode 100644
index 0000000000..6cb6b87a35
Binary files /dev/null and b/doc/images/ironing/ironing-all-solid-layers.png differ
diff --git a/doc/images/ironing/ironing-inset.png b/doc/images/ironing/ironing-inset.png
new file mode 100644
index 0000000000..d5d2f5a6b6
Binary files /dev/null and b/doc/images/ironing/ironing-inset.png differ
diff --git a/doc/images/ironing/ironing-top-surfaces.png b/doc/images/ironing/ironing-top-surfaces.png
new file mode 100644
index 0000000000..6fca662588
Binary files /dev/null and b/doc/images/ironing/ironing-top-surfaces.png differ
diff --git a/doc/images/ironing/ironing-topmost-surface.png b/doc/images/ironing/ironing-topmost-surface.png
new file mode 100644
index 0000000000..7abac1c28f
Binary files /dev/null and b/doc/images/ironing/ironing-topmost-surface.png differ
diff --git a/doc/images/ironing/ironing.png b/doc/images/ironing/ironing.png
new file mode 100644
index 0000000000..72523234c2
Binary files /dev/null and b/doc/images/ironing/ironing.png differ
diff --git a/doc/images/overhangs/extra-perimeters-on-overhangs.png b/doc/images/overhangs/extra-perimeters-on-overhangs.png
new file mode 100644
index 0000000000..2037dbb91b
Binary files /dev/null and b/doc/images/overhangs/extra-perimeters-on-overhangs.png differ
diff --git a/doc/images/overhangs/overhang-printable.png b/doc/images/overhangs/overhang-printable.png
new file mode 100644
index 0000000000..57b3c04bc6
Binary files /dev/null and b/doc/images/overhangs/overhang-printable.png differ
diff --git a/doc/images/overhangs/overhang.png b/doc/images/overhangs/overhang.png
new file mode 100644
index 0000000000..39cb573b5a
Binary files /dev/null and b/doc/images/overhangs/overhang.png differ
diff --git a/doc/images/seam/scarf-joint-seam.png b/doc/images/seam/scarf-joint-seam.png
new file mode 100644
index 0000000000..870dbd984b
Binary files /dev/null and b/doc/images/seam/scarf-joint-seam.png differ
diff --git a/doc/images/seam/seam-gap.gif b/doc/images/seam/seam-gap.gif
new file mode 100644
index 0000000000..058c4f6587
Binary files /dev/null and b/doc/images/seam/seam-gap.gif differ
diff --git a/doc/images/seam/seam-gap.png b/doc/images/seam/seam-gap.png
deleted file mode 100644
index fcd8a631bf..0000000000
Binary files a/doc/images/seam/seam-gap.png and /dev/null differ
diff --git a/doc/images/seam/seam-staggered-inner.gif b/doc/images/seam/seam-staggered-inner.gif
new file mode 100644
index 0000000000..e389680b67
Binary files /dev/null and b/doc/images/seam/seam-staggered-inner.gif differ
diff --git a/doc/print_settings/others/others_settings_fuzzy_skin.md b/doc/print_settings/others/others_settings_fuzzy_skin.md
new file mode 100644
index 0000000000..03234a1276
--- /dev/null
+++ b/doc/print_settings/others/others_settings_fuzzy_skin.md
@@ -0,0 +1,121 @@
+# Fuzzy Skin
+
+Randomly jitter while printing the wall, so that the surface has a rough look. This setting controls the fuzzy position.
+
+- [Fuzzy Skin Mode](#fuzzy-skin-mode)
+ - [Contour](#contour)
+ - [Contour and Hole](#contour-and-hole)
+ - [All Walls](#all-walls)
+ - [Fuzzy Skin Generator Mode](#fuzzy-skin-generator-mode)
+ - [Displacement](#displacement)
+ - [Extrusion](#extrusion)
+ - [Combined](#combined)
+- [Noise Type](#noise-type)
+ - [Classic](#classic)
+ - [Perlin](#perlin)
+ - [Billow](#billow)
+ - [Ridged Multifractal](#ridged-multifractal)
+ - [Voronoi](#voronoi)
+- [Point distance](#point-distance)
+- [Skin thickness](#skin-thickness)
+- [Skin feature size](#skin-feature-size)
+- [Skin Noise Octaves](#skin-noise-octaves)
+- [Skin Noise Persistence](#skin-noise-persistence)
+- [Apply fuzzy skin to first layer](#apply-fuzzy-skin-to-first-layer)
+- [Credits](#credits)
+
+## Fuzzy Skin Mode
+
+### Contour
+
+Use "Contour" to apply fuzzy skin only to the outer contour of the model.
+
+### Contour and Hole
+
+Use "Contour and Hole" to apply fuzzy skin to the outer contour and holes of the model. This is useful for models with internal features that you want to highlight.
+
+### All Walls
+
+Use "All Walls" to apply fuzzy skin to external and inner walls of the model.
+
+### Fuzzy Skin Generator Mode
+
+Determines how the fuzzy skin effect will be reproduced:
+
+### Displacement
+
+
+
+The classic method is when the pattern on the walls is achieved by shifting the printhead perpendicular to the wall.
+It gives a predictable result, but decreases the strength entire shells and open the pores inside the walls. It also increases the mechanical stress on the kinematics of the printer. The speed of general printing is slowing down.
+
+### Extrusion
+
+
+
+The fuzzy skin condition is obtained by changing the amount of extruded plastic as the print head moves linearly. There is no extra load on the kinematics, there is no decrease in the printing speed, the pores do not open, but the drawing turns out to be smoother by a factor of 2. It is suitable for creating "loose" walls to reduce internal stress into extruded plastic, or masking printing defects on the side walls - a matte effect.
+
+> [!CAUTION]
+> The "Fuzzy skin thicknesses" parameter cannot be more than about 70%-125% (selected individually for different conditions) of the nozzle diameter! This is a complex condition that also depends on the height of the layer, and determines how thin the lines can be extruded.
+> [Arachne](quality_settings_wall_generator#arachne) wall generator mode should also be enabled.
+
+### Combined
+
+
+
+This is a combination of Displacement and Extrusion modes. The clarity of the drawing is the same in the classic mode, but the walls remain strong and tight. The load on the kinematics is 2 times lower. The printing speed is faster than in Displacement mode, but the elapsed time will still be longer.
+
+> [!WARNING]
+> The limits on line thickness are the same as in the Extrusion mode.
+
+## Noise Type
+
+Noise type to use for fuzzy skin generation.
+
+### Classic
+
+Classic uniform random noise.
+
+### Perlin
+
+Perlin noise, which gives a more consistent texture.
+
+### Billow
+
+Billow noise is similar to Perlin noise, but has a clumpier appearance. It can create more pronounced features and is often used for natural textures.
+
+### Ridged Multifractal
+
+Ridged noise with sharp, jagged features. Creates marble-like textures.
+
+### Voronoi
+
+Voronoi noise divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture.
+
+## Point distance
+
+average distance between the random points introduced on each line segment.
+
+## Skin thickness
+
+The width within which to jitter. It's advised to be below outer wall line width."
+
+## Skin feature size
+
+The base size of the coherent noise features, in mm. Higher values will result in larger features.
+
+## Skin Noise Octaves
+
+The number of octaves of coherent noise to use. Higher values increase the detail of the noise, but also increase computation time.
+
+## Skin Noise Persistence
+
+The decay rate for higher octaves of the coherent noise. Lower values will result in smoother noise.
+
+## Apply fuzzy skin to first layer
+
+Whether to apply fuzzy skin on the first layer.
+
+## Credits
+
+- **Generator Mode author:** [@pi-squared-studio](https://github.com/pi-squared-studio).
diff --git a/doc/print_settings/others/others_settings_special_mode.md b/doc/print_settings/others/others_settings_special_mode.md
index fa78e4ea57..26a224500b 100644
--- a/doc/print_settings/others/others_settings_special_mode.md
+++ b/doc/print_settings/others/others_settings_special_mode.md
@@ -14,23 +14,6 @@
- [Spiral starting flow ratio](#spiral-starting-flow-ratio)
- [Spiral finishing flow ratio](#spiral-finishing-flow-ratio)
- [Timelapse](#timelapse)
-- [Fuzzy Skin](#fuzzy-skin)
- - [Fuzzy Skin Mode](#fuzzy-skin-mode)
- - [Contour](#contour)
- - [Contour and Hole](#contour-and-hole)
- - [All Walls](#all-walls)
- - [Noise Type](#noise-type)
- - [Classic](#classic)
- - [Perlin](#perlin)
- - [Billow](#billow)
- - [Ridged Multifractal](#ridged-multifractal)
- - [Voronoi](#voronoi)
- - [Point distance](#point-distance)
- - [Skin thickness](#skin-thickness)
- - [Skin feature size](#skin-feature-size)
- - [Skin Noise Octaves](#skin-noise-octaves)
- - [Skin Noise Persistence](#skin-noise-persistence)
- - [Apply fuzzy skin to first layer](#apply-fuzzy-skin-to-first-layer)
## Slicing Mode
@@ -90,69 +73,3 @@ Sets the finishing flow ratio while ending the spiral. Normally the spiral trans
## Timelapse
WIP...
-
-## Fuzzy Skin
-
-Randomly jitter while printing the wall, so that the surface has a rough look. This setting controls the fuzzy position.
-
-### Fuzzy Skin Mode
-
-#### Contour
-
-Use "Contour" to apply fuzzy skin only to the outer contour of the model.
-
-#### Contour and Hole
-
-Use "Contour and Hole" to apply fuzzy skin to the outer contour and holes of the model. This is useful for models with internal features that you want to highlight.
-
-#### All Walls
-
-Use "All Walls" to apply fuzzy skin to external and inner walls of the model.
-
-### Noise Type
-
-Noise type to use for fuzzy skin generation.
-
-#### Classic
-
-Classic uniform random noise.
-
-#### Perlin
-
-Perlin noise, which gives a more consistent texture.
-
-#### Billow
-
-Billow noise is similar to Perlin noise, but has a clumpier appearance. It can create more pronounced features and is often used for natural textures.
-
-#### Ridged Multifractal
-
-Ridged noise with sharp, jagged features. Creates marble-like textures.
-
-#### Voronoi
-
-Voronoi noise divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture.
-
-### Point distance
-
-average distance between the random points introduced on each line segment.
-
-### Skin thickness
-
-The width within which to jitter. It's advised to be below outer wall line width."
-
-### Skin feature size
-
-The base size of the coherent noise features, in mm. Higher values will result in larger features.
-
-### Skin Noise Octaves
-
-The number of octaves of coherent noise to use. Higher values increase the detail of the noise, but also increase computation time.
-
-### Skin Noise Persistence
-
-The decay rate for higher octaves of the coherent noise. Lower values will result in smoother noise.
-
-### Apply fuzzy skin to first layer
-
-Whether to apply fuzzy skin on the first layer.
diff --git a/doc/print_settings/quality/quality_settings_bridging.md b/doc/print_settings/quality/quality_settings_bridging.md
index 5a429163bf..19e594417c 100644
--- a/doc/print_settings/quality/quality_settings_bridging.md
+++ b/doc/print_settings/quality/quality_settings_bridging.md
@@ -11,34 +11,36 @@
## Flow ratio
-Decrease this value slightly (for example 0.9) to reduce the amount of material for bridge, to improve sag.
-
+Decrease this value slightly (for example 0.9) to reduce the amount of material for bridge, to improve sag.
The actual bridge flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio.
## Bridge density
-This value governs the thickness of the bridge layer. This is the first layer over sparse infill. Decrease this value slightly (for example 0.9) to improve surface quality over sparse infill.
-
-The actual internal bridge flow used is calculated by multiplying this value with the bridge flow ratio, the filament flow ratio, and if set, the object's flow ratio.
+This value governs the thickness of the bridge layer. This is the first layer over sparse infill. Decrease this value slightly (for example 0.9) to improve surface quality over sparse infill.
+The actual internal bridge flow used is calculated by multiplying this value with the [bridge flow ratio](#flow-ratio), the filament flow ratio, and if set, the object's flow ratio.
## Thick bridges
-When enabled, thick bridges increase the reliability and strength of bridges, allowing you to span longer distances. However, this may result in a rougher surface finish. Disabling this option can improve the visual quality of bridges, but is recommended only for shorter spans or when using large nozzle sizes.
+
+
+When enabled, thick bridges increase the reliability and strength of bridges, allowing you to span longer distances. However, this may result in a rougher surface finish.
+Disabling this option can improve the visual quality of bridges, but is recommended only for shorter spans or when using large nozzle sizes.
+It's recommended to enable this option for internal bridges, as it helps improve the reliability of internal bridges over sparse infill.
## Extra bridge layers
-This option enables the generation of an extra bridge layer over internal and/or external bridges.
+This option enables the generation of an extra bridge layer over bridges.
Extra bridge layers help improve bridge appearance and reliability, as the solid infill is better supported. This is especially useful in fast printers, where the bridge and solid infill speeds vary greatly. The extra bridge layer results in reduced pillowing on top surfaces, as well as reduced separation of the external bridge layer from its surrounding perimeters.
-It is generally recommended to set this to at least 'External bridge only', unless specific issues with the sliced model are found.
+It is generally recommended to set this to at least **External bridge only**, unless specific issues with the sliced model are found.
**Options:**
-1. **Disabled** - does not generate second bridge layers. This is the default and is set for compatibility purposes.
-2. **External bridge only** - generates second bridge layers for external-facing bridges only. Please note that small bridges that are shorter or narrower than the set number of perimeters will be skipped as they would not benefit from a second bridge layer. If generated, the second bridge layer will be extruded parallel to the first bridge layer to reinforce the bridge strength.
-3. **Internal bridge only** - generates second bridge layers for internal bridges over sparse infill only. Please note that the internal bridges count towards the top shell layer count of your model. The second internal bridge layer will be extruded as close to perpendicular to the first as possible. If multiple regions in the same island, with varying bridge angles are present, the last region of that island will be selected as the angle reference.
-4. **Apply to all** - generates second bridge layers for both internal and external-facing bridges.
+- **Disabled** - does not generate second bridge layers. This is the default and is set for compatibility purposes.
+- **External bridge only** - generates second bridge layers for external-facing bridges only. Please note that small bridges that are shorter or narrower than the set number of perimeters will be skipped as they would not benefit from a second bridge layer. If generated, the second bridge layer will be extruded parallel to the first bridge layer to reinforce the bridge strength.
+- **Internal bridge only** - generates second bridge layers for internal bridges over sparse infill only. Please note that the internal bridges count towards the top shell layer count of your model. The second internal bridge layer will be extruded as close to perpendicular to the first as possible. If multiple regions in the same island, with varying bridge angles are present, the last region of that island will be selected as the angle reference.
+- **Apply to all** - generates second bridge layers for both internal and external-facing bridges.
## Filter out small internal bridges
@@ -50,14 +52,20 @@ However, in heavily slanted or curved models, especially where too low a sparse
Enabling limited filtering or no filtering will print internal bridge layer over slightly unsupported internal solid infill. The options below control the sensitivity of the filtering, i.e. they control where internal bridges are created:
-1. **Filter** - enables this option. This is the default behavior and works well in most cases.
-2. **Limited filtering** - creates internal bridges on heavily slanted surfaces while avoiding unnecessary bridges. This works well for most difficult models.
-3. **No filtering** - creates internal bridges on every potential internal overhang. This option is useful for heavily slanted top surface models; however, in most cases, it creates too many unnecessary bridges.
+- **Filter:** enables this option. This is the default behavior and works well in most cases.
+- **Limited filtering:** creates internal bridges on heavily slanted surfaces while avoiding unnecessary bridges. This works well for most difficult models.
+- **No filtering:** creates internal bridges on every potential internal overhang. This option is useful for heavily slanted top surface models; however, in most cases, it creates too many unnecessary bridges.
## Bridge Counterbore hole
-This option creates bridges for counterbore holes, allowing them to be printed without support. Available modes include:
+When printing counterbore holes, the unsupported area can lead to sagging or poor surface quality. Also the perimeters of the counterbore hole may not be printed correctly, leading to gaps or weak points in the structure.
-1. **None**: No bridge is created.
-2. **Partially Bridged**: Only a part of the unsupported area will be bridged.
-3. **Sacrificial Layer**: A full sacrificial bridge layer is created.
\ No newline at end of file
+This option creates bridges for counterbore holes, allowing them to be printed without support.
+Available modes include:
+
+- **None:** No bridge is created.
+ 
+- **Partially Bridged:** Only a part of the unsupported area will be bridged, creating a supporting layer for the next layer.
+ 
+- **Sacrificial Layer:** A full sacrificial bridge layer is created. This will close the counterbore hole, allowing the next layer to be printed without sagging. The sacrificial layer must be broken through after printing.
+ 
diff --git a/doc/print_settings/quality/quality_settings_ironing.md b/doc/print_settings/quality/quality_settings_ironing.md
index d68e9df1c1..bdb116668e 100644
--- a/doc/print_settings/quality/quality_settings_ironing.md
+++ b/doc/print_settings/quality/quality_settings_ironing.md
@@ -1,30 +1,50 @@
# Ironing
-Ironing is a process used to improve the surface finish of 3D prints by smoothing out the top layers. This is achieved by selectively melting the outermost layer of the print, allowing it to flow and fill in any gaps or imperfections.
+Ironing is a process used to improve the surface finish of 3D prints by smoothing out the top layers. This is achieved by printing a second time at the same height, but with a very [low flow rate](#flow) and a specific [pattern](#pattern). The result is a smoother surface that can enhance the aesthetic quality of the print increasing print time.
+
+
+
+> [!IMPORTANT]
+> Ironing can cause filament to move very slowly through the hotend, which increases the risk of heat creep and potential clogging. Monitor your printer during ironing and ensure your hotend cooling is adequate to prevent jams.
## Type
This setting controls which layer being ironed.
+- **Top Surfaces**: All [top surfaces](strength_settings_top_bottom_shells) will be ironed. This is the most common setting and is used to smooth out the top layers of the print.
+ 
+- **Topmost Surface**: Only the last [top layer](strength_settings_top_bottom_shells) of the print will be ironed. This is useful for prints where only the last layer needs to be smoothed.
+ 
+- **All solid layers**: All solid layers, including [internal solid infill](strength_settings_infill#internal-solid-infill) and [top layers](strength_settings_top_bottom_shells), will be ironed. This can be useful for prints that require a very smooth finish on all solid surfaces but may increase print time significantly.
+ 
+
## Pattern
-The pattern that will be used when ironing.
+The pattern that will be used when ironing. Usually, the best pattern is the one with the most efficient coverage of the surface.
+You can learn more about the different patterns in the [Sparse infill pattern](strength_settings_infill#sparse-infill-pattern) section.
## Flow
-The amount of material to extrude during ironing. Relative to flow of normal layer height. Too high value results in overextrusion on the surface.
+The amount of material to extrude during ironing.
+This % is a percentage of the normal flow rate. A lower value will result in a smoother finish but may not cover the surface completely. A higher value may cover the surface better but can lead to over extrusion or rougher finish.
## Line spacing
-The distance between the lines of ironing.
+The distance between the lines of ironing.
+It's recommended to set this value to be equal to or less than the nozzle diameter for optimal coverage and surface finish.
## Inset
-The distance to keep from the edges. A value of 0 sets this to half of the nozzle diameter.
+The distance to keep from the edges, which can help prevent over-extrusion at the edges of the surface being ironed.
+
+
+
+If this value is set to 0, the ironing toolpath will start directly at the perimeter edges without any inward offset. This means the ironing pattern will extend all the way to the outer boundaries of the top surface being ironed.
## Angle
-The angle ironing is done at. A negative number disables this function and uses the default method.
+The angle ironing is done at.
+A negative number disables this function and uses the [sparse infill direction](strength_settings_infill#sparse-infill-direction).
## Speed
diff --git a/doc/print_settings/quality/quality_settings_layer_height.md b/doc/print_settings/quality/quality_settings_layer_height.md
index 0ea6fa515a..4fd695faef 100644
--- a/doc/print_settings/quality/quality_settings_layer_height.md
+++ b/doc/print_settings/quality/quality_settings_layer_height.md
@@ -1,19 +1,52 @@
# Layer Height
-This setting controls how tall each printed layer will be. Typically, a smaller layer height produces a better-looking part with less jagged edges, especially around curved sections (like the top of a sphere). However, lower layer heights mean more layers to print, proportionally increasing print time.
+Layer height defines the vertical thickness of each printed layer, playing a crucial role in both print quality and printing speed.
-## Tips
+Using smaller layer heights increases print time but results in:
-1. **The optimal layer height depends on the size of your nozzle**. The set layer height must not be taller than 80% of the diameter of the nozzle, else there is little "squish" between the printed layer and the layer below, leading to weaker parts.
+- Smoother surface finishes
+- Less noticeable layer lines
+- Enhanced detail on curves
+- [Better performance on overhangs](#layer-height-overhangs-impacts)
-2. While technically there is no limit to how small a layer height one can use, **typically most printers struggle to print reliably with a layer height that is smaller than 20% of the nozzle diameter**. This is because with smaller layer heights, less material is extruded per mm and, at some point, the tolerances of the extruder system result in variations in the flow to such an extent that visible artifacts occur, especially if printing at high speeds.
+
-For example, it is not uncommon to see "fish scale" type patterns on external walls when printing with a 0.4 mm nozzle at 0.08 mm layer height at speeds of 200mm/sec+. If you observe that pattern, simply increase your layer height to 30% of your nozzle height and/or slow down the print speed considerably.
+- [Quick Reference](#quick-reference)
+- [Layer Height Guidelines](#layer-height-guidelines)
+- [First Layer Height](#first-layer-height)
+- [Layer Height Overhangs Impacts](#layer-height-overhangs-impacts)
+
+## Quick Reference
+
+| Nozzle Size | Min | Max | [First Layer Height](#first-layer-height) |
+|-------------|--------|--------|-------------------------------------------|
+| 0.2mm | 0.04mm | 0.16mm | 0.12mm |
+| 0.3mm | 0.06mm | 0.24mm | 0.18mm |
+| 0.4mm | 0.08mm | 0.32mm | 0.25mm |
+| 0.5mm | 0.10mm | 0.40mm | 0.30mm |
+| 0.6mm | 0.12mm | 0.48mm | 0.35mm |
+| 0.8mm | 0.16mm | 0.64mm | 0.45mm |
+| 1.0mm | 0.20mm | 0.80mm | 0.55mm |
+
+## Layer Height Guidelines
+
+Usually, the optimal range for layer height is between 20% and 80% of the nozzle diameter.
+
+- **Below 20%:** Flow inconsistencies and "fish scale" patterns may occur, especially at high speeds.
+- **Over 80%:** Increased risk of layer adhesion issues and reduced print quality.
## First Layer Height
-This setting controls how tall the first layer of the print will be. Typically, this is set to 50% of the nozzle width for optimal bed adhesion.
+Controls the thickness of the initial layer.
+A thicker first layer improves bed adhesion and compensates for build surface imperfections.
-### Tip
+**Recommended:** 0.25mm for 0.4mm nozzle (62.5% of nozzle diameter)
+**Maximum:** 65% of nozzle diameter
-A thicker first layer is more forgiving to slight variations to the evenness of the build surface, resulting in a more uniform, visually, first layer. Set it to 0.25mm for a 0.4mm nozzle, for example, if your build surface is uneven or your printer has a slightly inconsistent z offset between print runs. However, as a rule of thumb, try not to exceed 65% of the nozzle width so as to not compromise bed adhesion too much.
+## Layer Height Overhangs Impacts
+
+Layer height directly affects [overhang angle](quality_settings_overhangs#maximum-angle) capability and quality.
+
+
+
+**Smaller layer heights** enable steeper overhangs by reducing the unsupported distance between layers, while **larger layer heights** increase this gap, leading to more sagging and requiring support material at shallower angles.
diff --git a/doc/print_settings/quality/quality_settings_line_width.md b/doc/print_settings/quality/quality_settings_line_width.md
index ceacab17e0..c508ff7044 100644
--- a/doc/print_settings/quality/quality_settings_line_width.md
+++ b/doc/print_settings/quality/quality_settings_line_width.md
@@ -1,43 +1,62 @@
# Line Width
-These settings control how wide the extruded lines are.
+These settings define how wide each extruded line of filament will be.
+Line width can be configured in two ways:
-- **Default:** The default line width in mm or as a percentage of the nozzle size.
+- Fixed value in millimeters (mm)
+- Percentage of the nozzle diameter
-- **First Layer:** The line width of the first layer. Typically, this is wider than the rest of the print, to promote better bed adhesion. See tips below for why.
+> [!TIP]
+> Using percentages allows the slicer to automatically adjust the line width when the nozzle size changes, helping maintain consistent print quality across different nozzle sizes.
-- **Outer Wall:** The line width in mm or as a percentage of the nozzle size used when printing the model’s external wall perimeters.
+A good starting point is setting the line width to **100% of the nozzle diameter**. Values below this may lead to poor adhesion, while values above **150%** can cause **over-extrusion**, resulting in blobs or poor surface quality.
+However, slightly wider lines generally improve **layer bonding** and **print strength**, especially for internal features like walls and infill.
-- **Inner Wall:** The line width in mm or as a percentage of the nozzle size used when printing the model’s internal wall perimeters.
+> [!NOTE]
+> **100% line width will extrude slightly narrower than the nozzle**, but once squished onto the layer below, it flattens to match the nozzle size.
+> You can read more on the flow math here: [Flow Math](https://manual.slic3r.org/advanced/flow-math).
-- **Top Surface:** The line width in mm or as a percentage of the nozzle size used when printing the model’s top surface.
+> [!IMPORTANT]
+> This will match only if using the [**Classic** wall generator](quality_settings_wall_generator#classic).
+> [**Arachne**](quality_settings_wall_generator#arachne) will adjust the line width dynamically based on the model's geometry, using this values as a reference.
-- **Sparse Infill:** The line width in mm or as a percentage of the nozzle size used when printing the model’s sparse infill.
+## Line Types
-- **Internal Solid Infill:** The line width in mm or as a percentage of the nozzle size used when printing the model’s internal solid infill.
+In OrcaSlicer, you can assign different line widths to specific parts of the print. Each type can be customized:
-- **Support:** The line width in mm or as a percentage of the nozzle size used when printing the model’s support structures.
+### Default
-## Tips
+Fallback value used when a specific line width is not set (set to `0`).
-1. **Typically, the line width will be anything from 100% up to 150% of the nozzle width**. Due to the way the slicer’s flow math works, a 100% line width will attempt to extrude slightly “smaller” than the nozzle size and when squished onto the layer below will match the nozzle orifice. You can read more on the flow math here: [Flow Math](https://manual.slic3r.org/advanced/flow-math).
+### First Layer
-2. **For most cases, the minimum acceptable recommended line width is 105% of the nozzle diameter**, typically reserved for the outer walls, where greater precision is required. A wider line is less precise than a thinner line.
+A wider first layer (with a higher [first layer height](quality_settings_layer_height#first-layer-height)) improves bed adhesion and compensates for uneven build surfaces.
-3. **Wider lines provide better adhesion to the layer below**, as the material is squished more with the previous layer. For parts that need to be strong, setting this value to 120-150% of the nozzle diameter is recommended and has been experimentally proven to significantly increase part strength.
+### Outer Wall
-4. **Wider lines improve step over and overhang appearance**, i.e., the overlap of the currently printed line to the surface below. So, if you are printing models with overhangs, setting a larger external perimeter line width will improve the overhang’s appearance to an extent.
+Controls dimensional accuracy and surface finish.
+Recommended: **105%–120%** of the nozzle diameter for clean overhangs and detail.
-5. **For top surfaces, typically a value of ~100%-105% of the nozzle width is recommended** as it provides the most precision, compared to a wider line.
+### Inner Wall
-6. **For external walls, you need to strike a balance between precision and step over and, consequently, overhang appearance.** Typically these values are set to ~105% of nozzle diameter for models with limited overhangs up to ~120% for models with more significant overhangs.
+Can be set wider than the outer wall to enhance structural strength.
+Typical value: **≥120%**.
-7. **For internal walls, you typically want to maximize part strength**, so a good starting point is approximately 120% of the nozzle width, which gives a good balance between print speed, accuracy, and material use. However, depending on the model, larger or smaller line widths may make sense in order to reduce gap fill and/or line width variations if you are using Arachne.
+### Top Surface
-8. **Don’t feel constrained to have wider internal wall lines compared to external ones**. While this is the default for most profiles, for models where significant overhangs are present, printing wider external walls compared to the internal ones may yield better overhang quality without increasing material use!
+Affects the quality of visible top layers.
+Recommended: **100%–105%** for smooth results without over-extrusion.
-9. **For sparse infill, the line width also affects how dense, visually, the sparse infill will be.** The sparse infill aims to extrude a set amount of material based on the percentage infill selected. When increasing the line width, the space between the sparse infill extrusions is larger in order to roughly maintain the same material usage. Typically for sparse infill, a value of 120% of nozzle diameter is a good starting point.
+### Sparse Infill
-10. **For supports, using 100% or less line width will make the supports weaker** by reducing their layer adhesion, making them easier to remove.
+Recommended to use a conservative value, typically around 115% to improve layer adhesion without getting near volumetric flow limitations.
+If you need stronger infill, it's recommended to use [infill line multiplier](strength_settings_infill#fill-multiline) when possible.
-11. **If your printer is limited mechanically, try to maintain the material flow as consistent as possible between critical features of your model**, to ease the load on the extruder having to adapt its flow between them. This is especially useful for printers that do not use pressure advance/linear advance and if your extruder is not as capable mechanically. You can do that by adjusting the line widths and speeds to reduce the variation between critical features (e.g., external and internal wall flow). For example, print them at the same speed and the same line width, or print the external perimeter slightly wider and slightly slower than the internal perimeter. Material flow can be visualized in the sliced model – flow drop down.
+### Internal Solid Infill
+
+Used for solid top/bottom layers or [100% infill](strength_settings_infill##sparse-infill-density).
+Recommended: **~110%** for good layer adhesion and visual quality.
+
+### Support
+
+Typically set to **100%** to balance material usage and functionality. Reducing it too much can lead to weak support structures that may not hold up during printing or break easily during removal leaving debris on the model.
diff --git a/doc/print_settings/quality/quality_settings_overhangs.md b/doc/print_settings/quality/quality_settings_overhangs.md
index cb9976ca39..a3cddcb4f6 100644
--- a/doc/print_settings/quality/quality_settings_overhangs.md
+++ b/doc/print_settings/quality/quality_settings_overhangs.md
@@ -1,18 +1,36 @@
# Overhangs
+- [Detect overhang wall](#detect-overhang-wall)
+- [Make overhang printable](#make-overhang-printable)
+ - [Maximum angle](#maximum-angle)
+ - [Hole area](#hole-area)
+- [Extra perimeters on overhangs](#extra-perimeters-on-overhangs)
+- [Reverse on even](#reverse-on-even)
+ - [Reverse internal only](#reverse-internal-only)
+ - [Reverse threshold](#reverse-threshold)
+
## Detect overhang wall
-Detect the overhang percentage relative to line width and use different speed to print. For 100% overhang, bridge speed is used.
+Detect the overhang percentage relative to line width and use different speed to print.
+When detecting line width with 100% overhang, bridge options are used.
+
+
## Make overhang printable
-Modify the geometry to print overhangs without support material.
+This setting will modify the geometry to print overhangs without support material.
+Every overhang exceeding the [maximum angle](#maximum-angle) will be modified to be printable.
### Maximum angle
Maximum angle of overhangs to allow after making more steep overhangs printable.
90° will not change the model at all and allow any overhang, while 0 will replace all overhangs with conical material.
+
+
+> [!TIP]
+> Usually, a value between 45° and 60° works well for most printers and models.
+
### Hole area
Maximum area of a hole in the base of the model before it's filled by conical material.
@@ -20,21 +38,44 @@ A value of 0 will fill all the holes in the model base.
## Extra perimeters on overhangs
-Create additional perimeter paths over steep overhangs and areas where bridges cannot be anchored.
+Create additional perimeter (overhang wall) paths over steep overhangs and areas where bridges cannot be anchored.
+
+
## Reverse on even
-Extrude perimeters that have a part over an overhang in the reverse direction on even layers. This alternating pattern can drastically improve steep overhangs.
-This setting can also help reduce part warping due to the reduction of stresses in the part walls.
+Extrude perimeters in the reverse direction on even layers. This alternating pattern can drastically improve steep overhangs thanks to material squishing direction.
+
+This setting can also help reduce part warping due to the reduction of stresses as they are now distributed in alternating directions. Useful for warp prone material, like ABS/ASA, and also for elastic filaments, like TPU and Silk PLA.
+It can also help reduce warping on floating regions over supports.
+
+For this setting to be the most effective, it is recommended to set the [Reverse Threshold](#reverse-threshold) to 0 so that all walls print in alternating directions on even layers irrespective of their overhang degree.
+A disadvantage of this setting is that the outer wall may show a texture due to the alternating extrusion direction.
+
+
+
+> [!NOTE]
+> Only be available if [Wall loop direction](quality_settings_wall_and_surfaces#wall-loop-direction) is set on **Auto** and [spiral vase mode](others_settings_special_mode#spiral-vase) is **disabled**.
### Reverse internal only
-Apply the reverse perimeters logic only on internal perimeters.
-This setting greatly reduces part stresses as they are now distributed in alternating directions. This should reduce part warping while also maintaining external wall quality. This feature can be very useful for warp prone material, like ABS/ASA, and also for elastic filaments, like TPU and Silk PLA. It can also help reduce warping on floating regions over supports.
-For this setting to be the most effective, it is recommended to set the Reverse Threshold to 0 so that all internal walls print in alternating directions on even layers irrespective of their overhang degree.
+A simple way to reduce the texture on the outer wall is to only reverse the internal walls.
+This will still provide almost all of the benefits of alternating extrusion direction on even layers (if using [inner/outer](quality_settings_wall_and_surfaces#innerouter)), but the outer wall will be printed in the same direction, resulting in a smoother surface finish.
### Reverse threshold
-Number of mm the overhang need to be for the reversal to be considered useful. Can be a % of the perimeter width.
-Value 0 enables reversal on every even layers regardless.
-When [Detect overhang wall](#detect-overhang-wall) is not enabled, this option is ignored and reversal happens on every even layers regardless.
+You can set a threshold for the overhang reversal to be considered useful.
+Can be set as:
+
+- **0**: Disables the threshold, meaning that all walls will be reversed on even layers.
+- **mm**: A fixed distance in millimeters.
+- **%**: A percentage of the perimeter width.
+
+When using this setting, the walls will make the reversal texture in the layers where the overhang is above the threshold, and the rest of the walls will be printed in the normal direction.
+This could result in uneven texture, sometimes considered worse than the full reversal texture, so it is recommended to use this setting only if you are sure that the overhang reversal will not be useful for your model.
+
+> [!NOTE]
+> Only available when:
+> - [Detect overhang wall](#detect-overhang-wall) is enabled
+> - [Reverse internal only](#reverse-internal-only) is disabled
+> If those conditions are not met, this setting will be hidden.
diff --git a/doc/print_settings/quality/quality_settings_precision.md b/doc/print_settings/quality/quality_settings_precision.md
index 78538bed38..5801688f6b 100644
--- a/doc/print_settings/quality/quality_settings_precision.md
+++ b/doc/print_settings/quality/quality_settings_precision.md
@@ -14,11 +14,13 @@ This section covers the settings that affect the precision of your prints. These
## Slice gap closing radius
-Cracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low.
+Cracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing.
+The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low.
## Resolution
-The G-code path is generated after simplifying the contour of models to avoid too many points and G-code lines. Smaller value means higher resolution and more time to slice.
+The G-code path is generated after simplifying the contour of models to avoid too many points and G-code lines.
+Smaller value means higher resolution and more time to slice. If you are using big models in low processing power machines, you may want to increase this value to speed up the slicing process.
## Arc fitting
@@ -65,11 +67,10 @@ The 'Precise Wall' is a distinctive feature introduced by OrcaSlicer, aimed at i
### Technical explanation
-Below is a technical explanation of how this feature works.
+First, it's important to understand some basic concepts like flow, extrusion width, and space.
+Slic3r has an excellent document that covers these topics in detail. You can refer to this [article](https://manual.slic3r.org/advanced/flow-math).
-First, it's important to understand some basic concepts like flow, extrusion width, and space. Slic3r has an excellent document that covers these topics in detail. You can refer to this [article](https://manual.slic3r.org/advanced/flow-math).
-
-Now, let's dive into the specifics. Slic3r and its forks, such as PrusaSlicer, SuperSlicer, and OrcaSlicer, assume that the extrusion path has an oval shape, which accounts for the overlaps. For example, if we set the wall width to 0.4mm and the layer height to 0.2mm, the combined thickness of two walls laid side by side is 0.714mm instead of 0.8mm due to the overlapping.
+Slic3r and its forks, such as PrusaSlicer, SuperSlicer and OrcaSlicer, assume that the extrusion path has an oval shape, which accounts for the overlaps. For example, if we set the wall width to 0.4mm and the layer height to 0.2mm, the combined thickness of two walls laid side by side is 0.714mm instead of 0.8mm due to the overlapping.
- **Precise Wall Off**
@@ -87,7 +88,7 @@ OrcaSlicer adheres to Slic3r's approach to handling flow. To address the downsid
## Precise Z Height
-This feature ensures the accurate Z height of the model after slicing, even if the model height is not a multiple of the layer height.
+This feature ensures the accurate Z height of the model after slicing, even if the model height is not a multiple of the [layer height](quality_settings_layer_height).
For example, slicing a 20mm x 20mm x 20.1mm cube with a layer height of 0.2mm would typically result in a final height of 20.2mm due to the layer height increments.
diff --git a/doc/print_settings/quality/quality_settings_seam.md b/doc/print_settings/quality/quality_settings_seam.md
index 890f0eff20..ad23847028 100644
--- a/doc/print_settings/quality/quality_settings_seam.md
+++ b/doc/print_settings/quality/quality_settings_seam.md
@@ -1,12 +1,42 @@
-# Seam Section
+# Seam
Unless printed in spiral vase mode, every layer needs to begin somewhere and end somewhere. That start and end of the extrusion is what results in what visually looks like a seam on the perimeters. This section contains options to control the visual appearance of a seam.
+- [Seam Position](#seam-position)
+ - [Aligned](#aligned)
+ - [Aligned Back](#aligned-back)
+ - [Nearest](#nearest)
+ - [Back](#back)
+ - [Random](#random)
+- [Modifiers](#modifiers)
+ - [Staggered inner seams](#staggered-inner-seams)
+ - [Seam gap](#seam-gap)
+ - [Scarf joint seam](#scarf-joint-seam)
+ - [Scarf joint seam Type](#scarf-joint-seam-type)
+ - [Conditional scarf joint](#conditional-scarf-joint)
+ - [Scarf joint speed](#scarf-joint-speed)
+ - [Scarf joint height](#scarf-joint-height)
+ - [Scarf around entire wall](#scarf-around-entire-wall)
+ - [Scarf length](#scarf-length)
+ - [Scarf steps](#scarf-steps)
+ - [Scarf joint flow ratio](#scarf-joint-flow-ratio)
+ - [Scarf joint for inner walls](#scarf-joint-for-inner-walls)
+ - [Role based wipe speed](#role-based-wipe-speed)
+ - [Wipe speed](#wipe-speed)
+ - [Wipe on loop (inward movement)](#wipe-on-loop-inward-movement)
+ - [Wipe Before External](#wipe-before-external)
+- [Tips](#tips)
+- [Troubleshooting Seam Performance](#troubleshooting-seam-performance)
+ - [Troubleshooting the Start of a Seam](#troubleshooting-the-start-of-a-seam)
+ - [Troubleshooting the End of a Seam](#troubleshooting-the-end-of-a-seam)
+ - [The Role of Wall Ordering in Seam Appearance](#the-role-of-wall-ordering-in-seam-appearance)
+
## Seam Position
Controlling the position of seams can help improve the appearance and strength of the final print.
-Typically, aligned or back work the best, especially in combination with seam painting. However, as seams create weak points and slight surface "bulges" or "divots", random seam placement may be optimal for parts that need higher strength as that weak point is spread to different locations between layers (e.g., a pin meant to fit through a hole).
+Typically, [Aligned Back](#aligned-back), [Aligned](#aligned), or [Back](#back) work the best, especially in combination with seam painting.
+However, as seams create weak points and slight surface "bulges" or "divots", [random](#random) seam placement may be optimal for parts that need higher strength as that weak point is spread to different locations between layers (e.g., a pin meant to fit through a hole).
### Aligned
@@ -16,10 +46,11 @@ Will attempt to align the seam to a hidden internal facet of the model.
### Aligned Back
-Combines "Aligned" and "Back" strategies by prioritizing seam placement away from the front-facing side while still finding optimal hidden locations for other orientations. This is particularly useful for directional models like sculptures or figurines that have a clear front view.
+Combines [Aligned](#aligned) and [Back](#back) strategies by prioritizing seam placement away from the front-facing side while still finding optimal hidden locations for other orientations.
+This is particularly useful for directional models like sculptures or figurines that have a clear front view.
Unlike "Back" which always places seams at the rearmost position, "Aligned Back" uses intelligent positioning that avoids the front while maintaining sophisticated seam hiding capabilities.
-
+
### Nearest
@@ -44,41 +75,109 @@ This option places the seam randomly across the object, which can help to distri
### Staggered inner seams
-As the seam location forms a weak point in the print (it's a discontinuity in the extrusion process after all!), staggering the seam on the internal perimeters can help reduce stress points. This setting moves the start of the internal wall's seam around across layers as well as away from the external perimeter seam. This way, the internal and external seams don't all align at the same point and between them across layers, distributing those weak points further away from the seam location, hence making the part stronger. It can also help improve the water tightness of your model.
+As the seam location forms a weak point in the print, staggering the seam on the internal perimeters can help reduce stress points. This setting moves the start of the internal wall's seam around across layers as well as away from the external perimeter seam. This way, the internal and external seams don't all align at the same point and between them across layers, distributing those weak points further away from the seam location, hence making the part stronger. It can also help improve the water tightness of your model.
+
+
### Seam gap
-Controls the gap in mm or as a percentage of the nozzle size between the two ends of a loop starting and ending with a seam. A larger gap will reduce the bulging seen at the seam. A smaller gap reduces the visual appearance of a seam. For a well-tuned printer with pressure advance, a value of 0-15% is typically optimal.
+Controls the gap in mm or as a percentage of the nozzle size between the two ends of a loop starting and ending with a seam.
-
+- A larger gap will reduce the bulging seen at the seam.
+- A smaller gap reduces the visual appearance of a seam.
+
+ For a well-tuned printer with [pressure advance](pressure-advance-calib) and [filament retraction](retraction-calib), a value of **0-15%** is typically optimal.
+
+
### Scarf joint seam
-Read more here: [Better Seams - An Orca Slicer Guide](https://www.printables.com/model/783313-better-seams-an-orca-slicer-guide-to-using-scarf-s).
+Adjusts the extrusion flow rate at seam points to create a smooth overlap between the start and end of each loop, minimizing visible defects.
-### Role-based wipe speed
+
-Controls the speed of a wipe motion, i.e., how fast the nozzle will move over a printed area to "clean" it before traveling to another area of the model. It is recommended to turn this option on, to ensure the nozzle performs the wipe motion with the same speed that the feature was printed with.
+Advantages:
+
+- Reduces visible z-seams
+- Improves cosmetic quality of curved surfaces
+- Can slightly improve part strength at seams by softening transitions
+
+Disadvantages:
+
+- May increase print time slightly
+- Less effective on sharp corners and overhangs
+- Requires tuning of parameters like length, speed, and flow for best results
+
+> [!NOTE]
+> Read more here: [Better Seams - An Orca Slicer Guide](https://www.printables.com/model/783313-better-seams-an-orca-slicer-guide-to-using-scarf-s).
+
+#### Scarf joint seam Type
+
+- **Contour:** Applies scarf seams exclusively to the outermost perimeter of the model.
+- **Contour and hole:** Extends scarf seams to both the outer perimeter and the inner walls surrounding holes within the part.
+
+#### Conditional scarf joint
+
+Dynamically applies scarf joints only on smooth, curved perimeters where traditional seams would be visually prominent. Sharp corners will still use standard seams to maintain dimensional accuracy.
+
+#### Scarf joint speed
+
+This option sets the printing speed for scarf joints.
+It is recommended to print scarf joints at a slow speed (less than 100 mm/s).
+It's also advisable to enable [Extrusion rate smoothing](speed_settings_advanced) if the set speed varies significantly from the speed of the outer or inner walls. If the speed specified here is higher than the speed of the outer or inner walls, the printer will default to the slower of the two speeds. When specified as a percentage (e.g., 80%), the speed is calculated based on the respective outer or inner wall speed. The default value is set to 100%.
+
+#### Scarf joint height
+
+Defines the vertical offset for the start of the scarf ramp, specified either in millimeters or as a percentage of the current layer height.
+A value of 0 means the scarf begins at the same height as the current layer and ramps up to the full layer height over the scarf length.
+For example, on the second layer with a 0.2 mm layer height, setting this to 50% (0.1 mm) will start the scarf at 0.3 mm and ramp up to 0.4 mm by the end of the scarf length, while the rest of the lines print at 0.4 mm.
+This setting helps create a smoother transition and can reduce visible seam artifacts.
+
+#### Scarf around entire wall
+
+If enabled, the scarf joint wraps around the full perimeter of the wall. Typically disabled, as this may increase print time without significant seam improvement.
+
+#### Scarf length
+
+Defines the horizontal length over which the scarf ramp transitions. A value of 0 disables the scarf joint. The default (e.g. 20 mm) generally offers smooth and effective blending.
+
+#### Scarf steps
+
+Minimum number of segments used to build the scarf transition.
+More steps create a smoother gradient, but the default value (10) is sufficient in most cases.
+
+#### Scarf joint flow ratio
+
+Adjusts extrusion flow during scarf printing. A value of 100% applies standard flow. Lower values reduce flow but may introduce under-extrusion.
+Recommended to keep at 100%.
+
+#### Scarf joint for inner walls
+
+When enabled, scarf joints are also applied to inner perimeters (e.g., holes). This has minimal visual impact and is usually left disabled unless inner seam quality is a priority.
+
+### Role based wipe speed
+
+Controls the speed of a wipe motion, i.e., how fast the nozzle will move over a printed area to "clean" it before traveling to another area of the model.
+It is recommended to turn this option on, to ensure the nozzle performs the wipe motion with the same speed that the feature was printed with.
### Wipe speed
If role-based wipe speed is disabled, set this field to the absolute wipe speed or as a percentage over the travel speed.
-### Wipe on loop(inward movement)
+### Wipe on loop (inward movement)
-When finishing printing a "loop" (i.e., an extrusion that starts and ends at the same point), move the nozzle slightly inwards towards the part. That move aims to reduce seam unevenness by tucking in the end of the seam to the part. It also slightly cleans the nozzle before traveling to the next area of the model, reducing stringing.
+When finishing printing a "loop" (i.e., an extrusion that starts and ends at the same point), move the nozzle slightly inwards towards the part. That move aims to reduce seam unevenness by tucking in the end of the seam to the part. It also slightly cleans the nozzle before traveling to the next area of the model, reducing stringing.
+This setting will use your printer/material Wipe Distance and retract amount before wipe values.

-
-

### Wipe Before External
To minimize the visibility of potential over-extrusion at the start of an external perimeter, the de-retraction move is performed slightly on the inside of the model and, hence, the start of the external perimeter. That way, any potential over-extrusion is hidden from the outside surface.
- This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order, as in these modes, it is more likely an external perimeter is printed immediately after a de-retraction move, which would cause slight extrusion variance at the start of a seam.
+This is useful when printing with [Outer/Inner](quality_settings_wall_and_surfaces#outerinner) or [Inner/Outer/Inner](quality_settings_wall_and_surfaces#innerouterinner) wall print order, as in these modes, it is more likely an external perimeter is printed immediately after a de-retraction move, which would cause slight extrusion variance at the start of a seam.
## Tips
diff --git a/doc/print_settings/quality/quality_settings_wall_and_surfaces.md b/doc/print_settings/quality/quality_settings_wall_and_surfaces.md
index 2422fdde77..c5d5719f7c 100644
--- a/doc/print_settings/quality/quality_settings_wall_and_surfaces.md
+++ b/doc/print_settings/quality/quality_settings_wall_and_surfaces.md
@@ -38,7 +38,7 @@ Use Outer/Inner for the same external wall quality and dimensional accuracy bene
### Print infill first
-When this option is enabled, the infill is printed first, followed by the walls. This can be useful for some overhangs where the infill can support the walls.
+When this option is enabled, the [infill](strength_settings_infill) and [top/bottom shells](strength_settings_top_bottom_shells) is printed first, followed by the walls. This can be useful for some overhangs where the infill can support the walls.

@@ -51,15 +51,15 @@ When using this option is recommended to use the [Precise Wall](quality_settings
## Wall loop direction
The direction which the wall loops are extruded when looking down from the top.
-By default all walls are extruded in counter-clockwise, unless Reverse on even is enabled.
-Set this to any option other than Auto will force the wall direction regardless of the Reverse on even.
+By default all walls are extruded in counter-clockwise, unless [Reverse on even](quality_settings_overhangs#reverse-on-even) is enabled.
+Set this to any option other than Auto will force the wall direction regardless of the [Reverse on even](quality_settings_overhangs#reverse-on-even).
> [!NOTE]
> This option will be disabled if spiral vase mode is enabled.
## Surface flow ratio
-This factor affects the amount of material for top or bottom solid infill. You can decrease it slightly to have smooth surface finish.
+This factor affects the amount of material for [top or bottom solid infill](strength_settings_top_bottom_shells). You can decrease it slightly to have smooth surface finish.
The actual top surface flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio.
> [!TIP]
@@ -67,14 +67,15 @@ The actual top surface flow used is calculated by multiplying this value with th
## Only one wall
-Use only one wall on flat surfaces, to give more space to the top infill pattern.
+Use only one wall on flat surfaces, to give more space to the [top infill pattern](strength_settings_top_bottom_shells#surface-pattern).
Specially useful in small features, like letters, where the top surface is very small and concentric pattern from walls would not cover it properly.

### Threshold
-If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters. This value can be a mm or a % of the perimeter extrusion width.
+If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters.
+This value can be a mm or a % of the perimeter extrusion width.

@@ -83,21 +84,30 @@ If a top surface has to be printed and it's partially covered by another layer,
## Avoid crossing walls
-Maximum detour distance for avoiding crossing wall. Don't detour if the detour distance is larger than this value. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. Zero to disable.
+This option instructs the slicer to avoid crossing perimeters (walls) during travel moves.
+Instead of traveling directly through a wall, the print head will detour around it, which can significantly reduce surface defects and stringing.
+
+While this increases print time slightly, the improvement in print quality—especially with materials prone to stringing like **PETG** or **TPU**, often justifies the tradeoff.
+Highly recommended for detailed or aesthetic prints.

### Max detour length
-Maximum detour distance for avoiding crossing wall. Don't detour if the detour distance is larger than this value.
-Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path.
+Defines the maximum distance the printer is allowed to detour to avoid crossing a wall.
+Can be set as:
-Zero will detour no matter the distance.
+- **Absolute value in millimeters:** exactly how far the detour can extend (e.g., `5mm`).
+- **Percentage** of the direct travel path (e.g., `50%`).
+- **0** disables the **limit** and allows detours of **any length**.
+
+Use this setting to balance between print time and wall quality—longer detours mean fewer wall crossings but slower prints.
## Small area flow compensation
Enables adaptive flow control for small infill areas.
-This feature helps address extrusion problems that often occur in small regions of solid infill, such as the tops of narrow letters or fine features. In these cases, standard extrusion flow may be too much for the available space, leading to over-extrusion or poor surface quality.
+This feature helps address extrusion problems that often occur in small regions of solid infill, such as the tops of narrow letters or fine features.
+In these cases, standard extrusion flow may be too much for the available space, leading to over-extrusion or poor surface quality.

diff --git a/doc/print_settings/quality/quality_settings_wall_generator.md b/doc/print_settings/quality/quality_settings_wall_generator.md
index fe39915e17..89482d3562 100644
--- a/doc/print_settings/quality/quality_settings_wall_generator.md
+++ b/doc/print_settings/quality/quality_settings_wall_generator.md
@@ -2,6 +2,17 @@
The Wall Generator defines how the outer and inner walls (perimeters) of the model are printed.
+- [Classic](#classic)
+- [Arachne](#arachne)
+ - [Wall transitioning threshhold angle](#wall-transitioning-threshhold-angle)
+ - [Wall transitioning filter margin](#wall-transitioning-filter-margin)
+ - [Wall transitioning length](#wall-transitioning-length)
+ - [Wall distribution count](#wall-distribution-count)
+ - [Minimum wall width](#minimum-wall-width)
+ - [First layer minimum wall width](#first-layer-minimum-wall-width)
+ - [Minimum feature size](#minimum-feature-size)
+ - [Minimum wall length](#minimum-wall-length)
+
## Classic
The Classic wall generator is a simple and reliable method used in many slicers. It creates as many walls as possible (limited by [Wall Loops](strength_settings_walls#wall-loops)) by extruding along the model’s perimeter using the defined [Line Width](quality_settings_line_width).
@@ -47,11 +58,12 @@ Specifies the minimum wall width for the first layer. It is recommended to match
### Minimum feature size
-Minimum width required for a model feature to be printed. Features below this value are skipped; features above it are widened to match the **Minimum Wall Width**. Expressed as a percentage of nozzle diameter.
+Minimum width required for a model feature to be printed. Features below this value are skipped; features above it are widened to match the [Minimum Wall Width](#minimum-wall-width). Expressed as a percentage of nozzle diameter.
### Minimum wall length
-Avoids very short or isolated wall segments that add unnecessary time. Increasing this value removes short unconnected walls, improving efficiency.
+Avoids very short or isolated wall segments that add unnecessary time.
+Increasing this value removes short unconnected walls, **improving efficiency**.
> [!NOTE]
> Top and bottom surfaces are not affected by this setting to avoid visual artifacts.
diff --git a/doc/print_settings/speed/speed_settings_jerk_xy.md b/doc/print_settings/speed/speed_settings_jerk_xy.md
index e4cc2693bf..3aaccc4a96 100644
--- a/doc/print_settings/speed/speed_settings_jerk_xy.md
+++ b/doc/print_settings/speed/speed_settings_jerk_xy.md
@@ -82,5 +82,5 @@ JD = 0,4 \cdot \frac{\text{Jerk}^2}{\text{Accel.}}
- [JD Explained and Visualized, by Paul Wanamaker](https://reprap.org/forum/read.php?1,739819)
- [Computing JD for Marlin Firmware](https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html)
- [Improving GRBL: Cornering Algorithm](https://onehossshay.wordpress.com/2011/09/24/improving_grbl_cornering_algorithm/)
-- [Pressure Advance Calibration](../../calibration/pressure-advance-calib.md)
-- [Adaptive Pressure Advance](../../calibration/adaptive-pressure-advance-calib.md)
+- [Pressure Advance Calibration](pressure-advance-calib)
+- [Adaptive Pressure Advance](adaptive-pressure-advance-calib)
diff --git a/doc/print_settings/speed/speed_settings_overhang_speed.md b/doc/print_settings/speed/speed_settings_overhang_speed.md
index 63d6d1331d..b362bfe474 100644
--- a/doc/print_settings/speed/speed_settings_overhang_speed.md
+++ b/doc/print_settings/speed/speed_settings_overhang_speed.md
@@ -14,7 +14,7 @@ This can help improve print quality and reduce issues like stringing or sagging.
Enable this option to slow down printing in areas where perimeters may have curled upwards. For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.
-
+
It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed slow enough that perimeter curling does not happen. If printing with a high external perimeter speed, this parameter may introduce slight artifacts when slowing down due to the large variance in print speeds. If you notice artifacts, ensure your pressure advance is tuned correctly.
diff --git a/doc/print_settings/strength/strength_settings_advanced.md b/doc/print_settings/strength/strength_settings_advanced.md
index 19504126fd..076be86dff 100644
--- a/doc/print_settings/strength/strength_settings_advanced.md
+++ b/doc/print_settings/strength/strength_settings_advanced.md
@@ -1,5 +1,6 @@
# Strength Advanced
+- [Align infill direction to model](#align-infill-direction-to-model)
- [Bridge infill direction](#bridge-infill-direction)
- [Minimum sparse infill threshold](#minimum-sparse-infill-threshold)
- [Infill Combination](#infill-combination)
@@ -7,6 +8,10 @@
- [Detect narrow internal solid infill](#detect-narrow-internal-solid-infill)
- [Ensure vertical shell thickness](#ensure-vertical-shell-thickness)
+## Align infill direction to model
+
+Aligns infill and surface fill directions to follow the model's orientation on the build plate. When enabled, fill directions rotate with the model to maintain optimal strength characteristics.
+
## Bridge infill direction
Bridging angle override. If left to zero, the bridging angle will be calculated automatically. Otherwise the provided angle will be used for bridges. Use 180° for zero angle.
diff --git a/doc/print_settings/strength/strength_settings_infill.md b/doc/print_settings/strength/strength_settings_infill.md
index 320f93ee7b..a306d1b554 100644
--- a/doc/print_settings/strength/strength_settings_infill.md
+++ b/doc/print_settings/strength/strength_settings_infill.md
@@ -10,6 +10,7 @@ Infill is the internal structure of a 3D print, providing strength and support.
- [Rotation](#rotation)
- [Infill Wall Overlap](#infill-wall-overlap)
- [Apply gap fill](#apply-gap-fill)
+- [Filter out tiny gaps](#filter-out-tiny-gaps)
- [Anchor](#anchor)
- [Internal Solid Infill](#internal-solid-infill)
- [Sparse Infill Pattern](#sparse-infill-pattern)
@@ -38,6 +39,7 @@ Infill is the internal structure of a 3D print, providing strength and support.
- [Hilbert Curve](#hilbert-curve)
- [Archimedean Chords](#archimedean-chords)
- [Octagram Spiral](#octagram-spiral)
+- [Credits](#credits)
## Sparse infill density
@@ -84,13 +86,17 @@ This setting allows you to generate your selected [infill pattern](#sparse-infil
## Direction and Rotation
+> [!TIP]
+> You can use [Template Metalanguage for infill rotation](strength_settings_infill_rotation_template_metalanguage) to create more complex patterns.
+
### Direction
Controls the direction of the infill lines to optimize or strengthen the print.
### Rotation
-This parameter adds a rotation to the sparse infill direction for each layer according to the specified template. The template is a comma-separated list of angles in degrees.
+This parameter adds a rotation to the sparse infill direction for each layer according to the specified template.
+The template is a comma-separated list of angles in degrees.
For example:
@@ -110,8 +116,10 @@ Other examples:
0,60,120,180
```
-If there are more layers than angles, the sequence repeats.
> [!NOTE]
+> If there are more layers than angles, the sequence repeats.
+
+> [!IMPORTANT]
> Not all sparse infill patterns support rotation.
## Infill Wall Overlap
@@ -141,6 +149,10 @@ If you would like all gap fill, including the classic perimeter generated one, r
However this is not advised, as gap fill between perimeters is contributing 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](quality_settings_wall_generator#arachne) and use this option to control whether the cosmetic top and bottom surface gap fill is generated.
+## Filter out tiny gaps
+
+Don't print gap fill with a length is smaller than the threshold specified (in mm). This setting applies to top, bottom and solid infill and, if using the classic perimeter generator, to wall gap fill.
+
## Anchor
Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as percentage (example: 15%) it is calculated over infill extrusion width.
@@ -525,3 +537,8 @@ Esthetic pattern with low strength and high print time.
- **Material/Time (Higher better):** Normal-Low

+
+## Credits
+
+- **[Fill Multiline](#fill-multiline) implementation** - [@RF47](https://github.com/RF47)
+- **Wiki page:** [IanAlexis](https://github.com/IanAlexis).
diff --git a/doc/print_settings/strength/strength_settings_infill_rotation_template_metalanguage.md b/doc/print_settings/strength/strength_settings_infill_rotation_template_metalanguage.md
new file mode 100644
index 0000000000..456da55c67
--- /dev/null
+++ b/doc/print_settings/strength/strength_settings_infill_rotation_template_metalanguage.md
@@ -0,0 +1,221 @@
+# Infill rotation template metalanguage
+
+This metalanguage provides a way to define the [direction and rotation](strength_settings_infill#direction-and-rotation) of patterns in 3D printing.
+
+- [Basic instructions](#basic-instructions)
+ - [Defined angle](#defined-angle)
+ - [Runtime instructions](#runtime-instructions)
+ - [Solid sign](#solid-sign)
+ - [Joint sign](#joint-sign)
+ - [Counting](#counting)
+ - [Length modifier](#length-modifier)
+- [Description of instructions and examples](#description-of-instructions-and-examples)
+ - [Simple absolute instructions](#simple-absolute-instructions)
+ - [Relative instructions](#relative-instructions)
+ - [Repetitive, adjusting and one-time instructions](#repetitive-adjusting-and-one-time-instructions)
+ - [Range instructions](#range-instructions)
+ - [Constant layer number instructions](#constant-layer-number-instructions)
+ - [Solid layers into sparse infill instructions](#solid-layers-into-sparse-infill-instructions)
+- [Complex template examples](#complex-template-examples)
+- [Credits](#credits)
+
+## Basic instructions
+
+`[±]α[*ℤ or !][solid or joint sign, or its combinations][-][ℕ, B or T][length modifier][* or !]` - full length template instruction for the **sparse** infill
+
+`[±]α[*ℤ or !][joint sign][-][ℕ][* or !]` - full length template instruction for the **solid** infill
+
+`[±]α*` - just setting an initial rotation angle
+
+`[solid or joint sign]ℕ[!]` - putting the solid layers ℕ times without them rotating
+
+`[B or T][!]` - putting the solid layers according to the number of bottom or top shell layers without them rotating
+
+> [!NOTE]
+> `[...]` - values in square brackets are optional
+
+### Defined angle
+
+`[±]α` - command for setting rotation infill angle (for joint infills at some height range, this angle is finite):
+
+- `α:β` - set the angle α value as a percentage of the full 360 degree rotation
+- `+α` - set positive relative angle CCW
+- `-α` - set negative relative angle CW
+
+### Runtime instructions
+
+`[*, *ℤ or !]` - runtime instructions:
+
+- `*` - the mark of "dummy" instruction. It's needed for setting an initial angle. No further action will be taken
+- `*ℤ` - repeat the instruction ℤ times
+- `!` - the one-time running instruction
+
+### Solid sign
+
+`[solid sign]` - the mark for inserting a solid layer:
+
+- `D` - insert native sparse patterned layer but with 100% density
+- `S` - insert user-defined solid layer
+- `O` - insert Concentric solid layer
+- `M` - insert Monotonic solid layer
+- `R` - insert Rectilinear solid layer
+
+### Joint sign
+
+`[joint sign]` - the symbol which determines the method of connection for turning of the infill:
+
+- `/` - linear displacement of the infill. e.g. `+22.5/50%`
+ 
+- `#` - infill of multiple layers with vertical displacement at finish angle. e.g. `+22.5#50%`
+ 
+- `#-` - infill of multiple layers with vertical displacement at initial angle. e.g. `+22.5#-50%`
+ 
+- `|` - infill of multiple layers with vertical displacement at middle angle. e.g. `+22.5|50%`
+ 
+- `N` - infill formed by sinus function (vertical connection). e.g. `+22.5N50%`
+ 
+- `n` - infill formed by sinus function (vertical connection, lazy). e.g. `+22.5n50%`
+ 
+- `Z` - infill formed by sinus function (horizontal connection). e.g. `+22.5Z50%`
+ 
+- `z` - infill formed by sinus function (horizontal connection, lazy). e.g. `+22.5z50%`
+ 
+- `L` - infill formed by quarter of circle (horizontal to vertical connection). e.g. `+22.5L50%`
+ 
+- `l` - infill formed by quarter of circle (vertical to horizontal connection). e.g. `+22.5l50%`
+ 
+- `U` - infill formed by squared function. e.g. `+22.5U50%`
+ 
+- `u-` - infill formed by squared function (inverse). e.g. `+22.5u-50%`
+ 
+- `Q` - infill formed by cubic function. e.g. `+22.5Q50%`
+ 
+- `q-` - infill formed by cubic function (inverse). e.g. `+22.5q-50%`
+ 
+- `$` - infill formed by arcsinus method. e.g. `+22.5$50%`
+ 
+- `~` - infill formed with random angle. e.g. `+22.5~50%`
+ 
+- `^` - infill formed with pseudorandom angle. e.g. `+22.5^50%`
+ 
+
+### Counting
+
+`[-]ℕ` - counting the distance at which the turn will take place:
+
+- `ℕ` - the count will take place by ℕ layers. e.g. `+22.5/50%`
+ 
+- `-ℕ` - indicates that the joint form will be flipped upward. e.g. `+22.5/-50%`
+ 
+- `B` - the count will take place over the next layers equal to the bottom_shell_layers parameter
+- `T` - the count will take place over the next layers equal to the top_shell_layers parameter
+
+### Length modifier
+
+`ℕ[length modifier]` - the distance at which the specified turn will take place:
+
+- `ℕmm` - the distance in millimeters
+- `ℕcm` - the distance in centimeters
+- `ℕm` - the distance in meters
+- `ℕ'` - the distance in feet
+- `ℕ"` - the distance in inches
+- `ℕ#` - the distance in range of standard height of ℕ layers
+- `ℕ%` - the distance as a percentage of model height
+
+## Description of instructions and examples
+
+Each instruction is written by a combination of symbols and numbers and separated by a comma or a space.
+For more complex instructions, autoformatting is used to make the template easier to read.
+
+> [!NOTE]
+> All examples are shown with a 5% density rectilinear infill on a model of a cube 20x20x20mm which has 100 layers of 0.2mm thickness. Without walls and upper and lower shells. Initial angle is 0.
+
+### Simple absolute instructions
+
+They include a simple definition of the angle for each layer. Note that the initial setting of this angle is also affected by the value in the sparse or solid infill angle field.
+
+- `0`, `15`, `45.5`, `256.5605`... - just fill at the existing angle. The initial direction starts at the X-axis, and the acceptable range of values is from 0 to 360
+ - `0` as well as `+0`, `-0` or just empty template
+ 
+ - `45`
+ 
+ - `0, 30` - is a simple alternation through each layer in the direction of 0 and 30 degrees.
+ 
+- `0%`, `10%`, `25%`, `100%`... - infill angle determined from relative terms from a full turn of 360 degree rotation. Rotate by 0, 36, 90, and 0 degrees.
+ - `25%` - the equivalent of `90` instruction.
+ 
+- `30, 60, 90, 120, 150, 0` - a more complex command defines a turn every layer at 30 degrees. At the end of the template line, the next instruction is read first, and this process continues until the entire height of the model is filled.
+
+### Relative instructions
+
+- `+30` - this is a short instruction for counterclockwise rotation. The equivalent of `30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 0` or `30, 60, 90, 120, 150, 0` instruction.
+ 
+- `-30` - this is the same instruction, but with clockwise rotation. The equivalent of `330, 300, 270, 240, 210, 180, 150, 120, 90, 60, 30, 0` or `330, 300, 270, 240, 210, 0` instruction.
+- `+150` - you can specify a different multiple of the irrational angle for better fill dispersion = `150, 300, 90, 240, 30, 180, 330, 120, 270, 60, 210, 0` ...
+- `+45` - The equivalent of `45, 90, 135, 180, 225, 270, 315, 0` or `45, 90, 135, 0` instruction.
+ 
+- `+90` - The equivalent of `90, 180, 270, 0` or `90, 0` instruction.
+ 
+- `+15%` - useful for dividing angles on a decimal basis = `54, 108, 162, 270, 324, 18, 72, 126, 180, 234, 288, 342, 36, 90, 144, 196, 252, 306, 0` ...
+- `+30, +90` - a complex instruction setting the rotation of each layer in these positions = `30, 120, 150, 240, 270, 0` ...
+ 
+- `0, +30, +90` - a complex instruction setting the rotation of each layer in these positions = `0, 30, 120` ...
+ 
+
+### Repetitive, adjusting and one-time instructions
+
+- `5, 10, +20` - simple instructions without modifiers. Sets the angles in sequence = 5, 10, 30, 5, 10, 30, 5, 10 ...
+- `5, 10*, +20` - the `*` sign sets the initial angle without quantitative designation and without layer processing. It is useful for setting the orientation of a group of layers, which will be described below. Sets the angles in sequence = 5, 30, 5, 30, 5, 30, 5 ...
+- `5, 10!, +20` - the `!` sign indicates that the instruction will be executed only once for the entire height of the model. Sets the angles in sequence = 5, 10, 30, 5, 25, 5, 25, 5 ...
+- `5, 10*!, +20` - the combination of `*` and `!` signs is also usable = 5, 30, 5, 25, 5, 25, 5, 25 ...
+- `5, 10*3, +20` - if a number is written after the `*` sign, it indicates the number of repetitions of this instruction. Sets the angles in sequence = 5, 10, 10, 10, 30, 5, 10, 10, 10, 30, 5, 10 ...
+
+### Range instructions
+
+A combined set of layers will be organized, where the rotation of one layer relative to the other will also be predetermined.
+You can specify how many layers will be rotated by a certain angle, and according to which mathematical law this rotation will be performed. This law is determined by writing a certain symbol and specifying a numeric value after it.
+The following signs are available that determine the shape of the turn: `/` `#` `#-` `|` `N` `n` `Z` `z` `L` `l` `U` `u` `Q` `q` `$` `~` `^`. For their purpose, see [joint sign](#joint-sign).
+
+Also, after the numeric value there is a range modifier, then this rotation will occur according to the described length.
+The following modifiers are available that determine the range of turn: `mm` `cm` `m` `'` `"` `#` `%`. For their purpose, see [length modifier](#length-modifier).
+
+If there is a `-` sign before the numeric value, then the initial fill angle changes with the final one. This is useful for joining the linear infills in some cases. Absolute values of the rotation angle using the range instructions have no effect.
+It is important to know that this will not be the exact length, but will be tied to the nearest layer from below.
+
+- `+45/100` - rotate the next 100 layers linearly at a 45 degree angle. For this model, this instruction is equivalent to `+45/100%` as it contains 100 layers.
+ 
+- When changing the height of the instruction `+45/50` or `+45/50%` - the final angle will be 90, as the turn will occur twice.
+ 
+- `-50%Z1cm` - rotate one centimeter of infill by sinus function at a 180 degree CW.
+
+### Constant layer number instructions
+
+There are 2 letter signs `T` and `B` that can determine the number of shell layers on the top and bottom of the model. It is useful for calculating skipping this amount to align the fill, or inserting the required number of horizontal solid bulkheads.
+
+- `B!, +30` - skip the first shell layers from rotation, then fill with 30 degree turn each layer
+- `+30/1cm, T` - rotate one centimeter of infill linearly at a 30 degree angle, then skip the number of layers equal to the count of the upper shell layers without rotation.
+
+### Solid layers into sparse infill instructions
+
+The following instructions allow you to embed solid layers in a sparse fill. The following commands are available `D` `S` `O` `M` `R`. For their purpose, see [solid sign](#solid-sign).
+
+It is possible to combine them with the rotation method and layer number constant - `DT` `S/` `M#` `OB`...
+
+- `#14, +15R` - put 14 layers of sparse infill then put one rectilinear layer of solid infill with 15 degree turn
+ 
+- `B!, 240M3, #25` - skip the first shell layers from rotation, fill model with 3 solid monotonic layers at 240 degrees, then put 25 sparse layers at the same angle
+- `+30/1cm, ST` - rotate one centimeter of infill linearly at 30 degrees, then put solid layers equal to the count of the top shell layers
+- `+30M3` or `+90M/3` - fill whole model with solid infill with 30 degree turn at each layer
+
+## Complex template examples
+
+- `+10L25%, -10l25%, -10L25%, +10l25%` - fill the model with sine period with 10 degree amplitude
+ 
+- `+30/-10#` - rotate the infill at height of 10 standard layers (or @ standard layer height is 0.2mm x 10 = 2mm) inverse linearly at a 30 degree angle.
+ 
+- `+360~100%` or `+100%~100%` - fill the model with infill with random direction at each layer.
+ 
+
+## Credits
+
+- **Feature author:** [@pi-squared-studio](https://github.com/pi-squared-studio).
diff --git a/doc/print_settings/strength/strength_settings_top_bottom_shells.md b/doc/print_settings/strength/strength_settings_top_bottom_shells.md
index 45e7c942a5..7870d47232 100644
--- a/doc/print_settings/strength/strength_settings_top_bottom_shells.md
+++ b/doc/print_settings/strength/strength_settings_top_bottom_shells.md
@@ -24,14 +24,14 @@ Top solid infill area is enlarged slightly to overlap with wall for better bondi
This setting controls the pattern of the surface. The options are:
-- **Concentric:** Fills the surface with inward-tracing loops that follow the outer contour.
-- **Rectilinear:** Fills the surface with straight lines alternating direction per layer.
+- **[Concentric](strength_settings_infill#concentric):** Fills the surface with inward-tracing loops that follow the outer contour.
+- **[Rectilinear](strength_settings_infill#rectilinear):** Fills the surface with straight lines alternating direction per layer.
- **Monotonic:** Prints lines in a uniform direction for a smoother visual surface.
- **Monotonic Lines:** Similar to Monotonic but avoids overlapping with the perimeter, reducing excess material at joints. May introduce visible seams.
-- **Aligned Rectilinear:** The surface is printed with rectilinear lines that are aligned with the infill pattern.
-- **Hilbert Curve:** Applies a space-filling curve for even material distribution and a unique appearance. Slow to print but useful in esthetic applications.
-- **Archimedean Chords:** Generates concentric arc-like lines, promoting uniform material spread.
-- **Octagram Spiral:** Creates an octagonal spiral for decorative, esthetic surfaces.
+- **[Aligned Rectilinear](strength_settings_infill#aligned-rectilinear):** The surface is printed with rectilinear lines that are aligned with the infill pattern.
+- **[Hilbert Curve](strength_settings_infill#hilbert-curve):** Applies a space-filling curve for even material distribution and a unique appearance. Slow to print but useful in esthetic applications.
+- **[Archimedean Chords](strength_settings_infill#archimedean-chords):** Generates concentric arc-like lines, promoting uniform material spread.
+- **[Octagram Spiral](strength_settings_infill#octagram-spiral):** Creates an octagonal spiral for decorative, esthetic surfaces.
> [!NOTE]
> Some patterns may have further information in its [Sparse Infill Pattern Wiki](strength_settings_infill#sparse-infill-pattern)
diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
index 77955d11c2..700a61c90c 100644
--- a/src/slic3r/GUI/Tab.cpp
+++ b/src/slic3r/GUI/Tab.cpp
@@ -2108,10 +2108,10 @@ void TabPrint::build()
optgroup->append_single_option_line("seam_slope_steps", "quality_settings_seam#scarf-joint-seam");
optgroup->append_single_option_line("scarf_joint_flow_ratio", "quality_settings_seam#scarf-joint-seam");
optgroup->append_single_option_line("seam_slope_inner_walls", "quality_settings_seam#scarf-joint-seam");
- optgroup->append_single_option_line("role_based_wipe_speed","quality_settings_seam");
- optgroup->append_single_option_line("wipe_speed", "quality_settings_seam");
- optgroup->append_single_option_line("wipe_on_loops","quality_settings_seam");
- optgroup->append_single_option_line("wipe_before_external_loop","quality_settings_seam");
+ optgroup->append_single_option_line("role_based_wipe_speed","quality_settings_seam#role-based-wipe-speed");
+ optgroup->append_single_option_line("wipe_speed", "quality_settings_seam#wipe-speed");
+ optgroup->append_single_option_line("wipe_on_loops","quality_settings_seam#wipe-on-loop-inward-movement");
+ optgroup->append_single_option_line("wipe_before_external_loop","quality_settings_seam#wipe-before-external");
optgroup = page->new_optgroup(L("Precision"), L"param_precision");
@@ -2230,11 +2230,11 @@ void TabPrint::build()
optgroup->append_single_option_line("solid_infill_direction", "strength_settings_infill");
optgroup->append_single_option_line("solid_infill_rotate_template", "strength_settings_infill");
optgroup->append_single_option_line("gap_fill_target", "strength_settings_infill#apply-gap-fill");
- optgroup->append_single_option_line("filter_out_gap_fill", "strength_settings_infill");
+ optgroup->append_single_option_line("filter_out_gap_fill", "strength_settings_infill#filter-out-tiny-gaps");
optgroup->append_single_option_line("infill_wall_overlap", "strength_settings_infill#infill-wall-overlap");
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
- optgroup->append_single_option_line("align_infill_direction_to_model");
+ optgroup->append_single_option_line("align_infill_direction_to_model", "strength_settings_advanced#align-infill-direction-to-model");
optgroup->append_single_option_line("bridge_angle", "strength_settings_advanced#bridge-infill-direction");
optgroup->append_single_option_line("internal_bridge_angle", "strength_settings_advanced#bridge-infill-direction"); // ORCA: Internal bridge angle override
optgroup->append_single_option_line("minimum_sparse_infill_area", "strength_settings_advanced#minimum-sparse-infill-threshold");
@@ -2455,15 +2455,15 @@ optgroup->append_single_option_line("skirt_loops", "others_settings_skirt#loops"
optgroup->append_single_option_line("timelapse_type", "others_settings_special_mode#timelapse");
optgroup = page->new_optgroup(L("Fuzzy Skin"), L"fuzzy_skin");
- optgroup->append_single_option_line("fuzzy_skin", "others_settings_special_mode#fuzzy-skin");
- optgroup->append_single_option_line("fuzzy_skin_mode");
- optgroup->append_single_option_line("fuzzy_skin_noise_type", "others_settings_special_mode#fuzzy-skin-mode");
- optgroup->append_single_option_line("fuzzy_skin_point_distance", "others_settings_special_mode#point-distance");
- optgroup->append_single_option_line("fuzzy_skin_thickness", "others_settings_special_mode#skin-thickness");
- optgroup->append_single_option_line("fuzzy_skin_scale", "others_settings_special_mode#skin-feature-size");
- optgroup->append_single_option_line("fuzzy_skin_octaves", "others_settings_special_mode#skin-noise-octaves");
- optgroup->append_single_option_line("fuzzy_skin_persistence", "others_settings_special_mode#skin-noise-persistence");
- optgroup->append_single_option_line("fuzzy_skin_first_layer", "others_settings_special_mode#apply-fuzzy-skin-to-first-layer");
+ optgroup->append_single_option_line("fuzzy_skin", "others_settings_fuzzy_skin");
+ optgroup->append_single_option_line("fuzzy_skin_mode", "others_settings_fuzzy_skin#fuzzy-skin-mode");
+ optgroup->append_single_option_line("fuzzy_skin_noise_type", "others_settings_fuzzy_skin#noise-type");
+ optgroup->append_single_option_line("fuzzy_skin_point_distance", "others_settings_fuzzy_skin#point-distance");
+ optgroup->append_single_option_line("fuzzy_skin_thickness", "others_settings_fuzzy_skin#skin-thickness");
+ optgroup->append_single_option_line("fuzzy_skin_scale", "others_settings_fuzzy_skin#skin-feature-size");
+ optgroup->append_single_option_line("fuzzy_skin_octaves", "others_settings_fuzzy_skin#skin-noise-octaves");
+ optgroup->append_single_option_line("fuzzy_skin_persistence", "others_settings_fuzzy_skin#skin-noise-persistence");
+ optgroup->append_single_option_line("fuzzy_skin_first_layer", "others_settings_fuzzy_skin#apply-fuzzy-skin-to-first-layer");
optgroup = page->new_optgroup(L("G-code output"), L"param_gcode");
optgroup->append_single_option_line("reduce_infill_retraction", "others_settings_g_code_output#reduce-infill-retraction");