Examples & Recipes
Step-by-step recipes for common SynthBlocks programs. Each example builds on concepts from the previous one.
1. Simple spiral vase
The simplest printable design — a cylinder spiraling upward.
Blocks used
Interactive preview is available in the interactive reader.
Interactive preview is available in the interactive reader.
How it works:
1. The Circle produces a 20 mm radius circle centered on the bed
2. Spiral Up lifts it continuously from 0.2 mm to 50 mm
3. Result: a 40 mm diameter cylinder, 50 mm tall, printed in a continuous spiral
2. Tapered vase
A vase that starts narrow at the bottom and widens toward the top.
Key blocks
Interactive preview is available in the interactive reader.
Interactive preview is available in the interactive reader.
How it works:
1. Instead of a fixed radius, the Circle's radius input receives a Map Range block
2. Map Range takes normZ (0 at bottom, 1 at top) and remaps it to 12–30 mm
3. At the bottom the radius is 12 mm, at the top 30 mm — a tapered vase shape
Try this: Swap the Map Range output to 30–12 to invert the taper (wide at bottom, narrow at top).
3. Wavy vase
A vase with a radius that oscillates in a wave pattern over height.
Key blocks
Interactive preview is available in the interactive reader.
Interactive preview is available in the interactive reader.
How it works:
1. normZ × 18.85 (≈ 6π) produces three full sine waves over the height
2. Sin converts this to oscillating values between −1 and 1
3. Map Range translates −1…1 into 15…25 mm radius
4. Result: a vase that bulges and narrows three times
4. Speed variation over height
Print slower at the bottom (for adhesion) and faster higher up.
Key blocks
Interactive preview is available in the interactive reader.
Interactive preview is available in the interactive reader.
How it works:
1. Set Speed is placed before the Spiral Up
2. The speed value uses Map Range: 900 mm/min (15 mm/s) at bottom to 2400 mm/min (40 mm/s) at top
3. The engine applies the speed change progressively as Z increases
5. Square vase
A vase with a square cross-section instead of circular.
Key blocks
Interactive preview is available in the interactive reader.
How it works:
1. The Polyline defines a 30 mm × 30 mm square, centered on the bed
2. The closed checkbox connects the last point back to the first
3. Nest it inside Spiral Up for a continuous square-section spiral vase
6. Multiple paths (nested shapes)
Two concentric circles printed as separate paths with a travel move between them.
Key blocks
Interactive preview is available in the interactive reader.
Interactive preview is available in the interactive reader.
How it works:
1. Two Path Groups produce two independent toolpaths
2. The engine completes the inner circle, then inserts a travel move to the outer circle
3. Result: a double-walled vase
7. Offset shape
A circle offset from the center of the bed using Translate.
Key blocks
Interactive preview is available in the interactive reader.
How it works:
1. The Circle is defined at the origin (0, 0)
2. Translate shifts it 30 mm to the right
3. The circle is now centered at (30, 0) on the bed
8. Temperature gradient
Gradually change nozzle temperature over height for visual effects with color-changing filament.
Key blocks
Interactive preview is available in the interactive reader.
Interactive preview is available in the interactive reader.
How it works:
1. For Z iterates layer by layer from 0.2 to 50 mm
2. At each layer, Set Temperature adjusts the nozzle temp from 195°C to 220°C via Map Range
3. With color-changing filament, the temperature difference produces visible color shifts
Building complex designs
These examples are building blocks. In practice you combine them:
- Tapered + wavy: Multiply the taper Map Range output with a Sin wave
- Multi-shape + transforms: Use Repeat + Rotate to create radial patterns
- Layer-aware process: Use For Z with Set Speed and Set Flow for full print control
- Randomized variation: Add Random blocks to radius, position, or speed for organic results
- Named variables: Use Set Variable to accumulate values in loops — adjust initial values live from the 3D viewport