Tutorial 24: Lace Fade Vase
Create a vase that's solid at the bottom and gradually fades to translucent lace at the top. Use Conditional with Set Flow to reduce extrusion in the upper portion, creating a gossamer, ethereal effect.

What you'll learn
- How to use the Conditional (If/Else) block
- How to build conditions using Max (non-zero = true)
- How Set Flow controls extrusion amount mid-print
- How to create zone-based effects with
normZthresholds
Prerequisites
- Completion of Tutorial 2 (Spiral Vase with Dynamic Radius) is recommended.
Step 1: Define variables
Step 1
Create four slider variables
Add four Set Variable blocks with Show in Viewport enabled:
- vaseRadius =
25— wall radius
Step 2: Center and add Spiral Up
Step 2
Add Translate and Spiral Up
Add Translate (center on bed). Inside the body, add Spiral Up with Start Z = Layer Height, End Z = vaseHeight, Rotations = vaseHeight / Layer Height.
Step 3: Build the Conditional for zone detection
Conditional
Interactive preview is available in the interactive reader.
Step 3
Add Conditional with Max-based condition
Inside the Spiral Up body, add a Conditional block. For the Condition, build: max(0, normZ − fadeStart).
- Max block with A =
0, B = Arithmetic (−) with Variable (normZ) minus Get Variable (fadeStart)
When normZ is below fadeStart, the result is 0 (false → Else branch). When above, the result is positive (true → Then branch).
Step 4: Set Flow in both branches
Set Flow
Interactive preview is available in the interactive reader.
Step 4
Fade flow in Then, full flow in Else
In the Then body (above fade zone): add Set Flow with Value = Map Range: Input = normZ, In Min = fadeStart, In Max = 1, Out Min = 1 (full flow at fade start), Out Max = minFlow (reduced at top).
In the Else body (below fade zone): add Set Flow with Value = 1 (100% normal extrusion).
Step 5: Add the Circle
Step 5
Draw the vase wall after the Conditional
After the Conditional block (via next), add a Circle with CX = 0, CY = 0, Radius = vaseRadius. The circle draws at whatever flow rate was just set by the Conditional branches.
Complete block program
Full program — Tutorial 24
Interactive preview is available in the interactive reader.
Final block structure
| # | Block | Where | Values |
|---|---|---|---|
| 1–4 | Set Variable | Path Group | vaseRadius=25, vaseHeight=60, fadeStart=0.6, minFlow=0.3 |
| 5 | Translate | Path Group | X = bedsize_x/2, Y = bedsize_y/2 |
| 6 | ↳ Spiral Up | Inside Translate | Start Z, End Z, Rotations |
| 7 | Conditional | Inside Spiral Up | Condition = max(0, normZ − fadeStart) |
| 8 | ↳ Then: Set Flow | Then branch | mapRange(normZ, fadeStart→1, 1→minFlow) |
| 9 | ↳ Else: Set Flow | Else branch | 1 (full flow) |
| 10 | Circle | After Conditional | Radius = vaseRadius |
Outcome
You should see a vase that's solid and opaque in the lower 60%, then gradually fades to a lace-like transparency in the top 40%. The under-extrusion creates beautiful gaps and a gossamer, ethereal quality.
Load this tutorial
Interactive preview is available in the interactive reader.
Interactive preview is available in the interactive reader.
What's Next
You've completed all intermediate SynthBlocks tutorials! You now know how to use every major block type. Ready for more advanced patterns? Explore the Difficult category for complex multi-module workflows and advanced parametric designs.