Tutorial 19: Tornado Tower
Build a twisted tapered tower — a hexagonal column that simultaneously narrows and rotates as it rises, creating a dramatic tornado-like form.

What you'll learn
- How to combine Rotate and Scale together, both driven by
normZ - How Map Range with variable output creates parametric taper
- How Polygon creates regular N-sided shapes
- The power of compound transforms: twist + taper in a single design
Prerequisites
- Completion of Tutorial 5 (Twisted Prism) is recommended.
Step 1: Define variables
Step 1
Create five slider variables
Add five Set Variable blocks with Show in Viewport enabled:
- sides =
6— number of polygon sides (hexagon)
Step 2: Add For Z
Step 2
Add Translate and For Z
Add Translate (center on bed). Inside the body, add For Z with Z Start = Layer Height, Z End = towerHeight, Step = Layer Height.
Step 3: Add Rotate for the twist
Rotate
Interactive preview is available in the interactive reader.
Step 3
Twist the polygon as it rises
Inside the For Z body, add Rotate with Angle = normZ × twistAngle. At the base, no twist. At the top, a full 180° rotation.
Step 4: Add Scale for the taper
Scale
Interactive preview is available in the interactive reader.
Step 4
Taper from base to top
Inside the Rotate body, add Scale. For both SX and SY, use Map Range: Input = normZ, In 0–1, Out Min = 1 (full size at base), Out Max = topScale (tiny at top).
Step 5: Add Polygon and Travel Z
Polygon
Interactive preview is available in the interactive reader.
Step 5
Draw hexagon and move up
Inside the Scale body, add Polygon with Sides = sides, Radius = baseSize. After the Rotate block (via next), add Travel Relative Z = Layer Height.
Complete block program
Full program — Tutorial 19
Interactive preview is available in the interactive reader.
Final block structure
| # | Block | Where | Values |
|---|---|---|---|
| 1–5 | Set Variable | Path Group | sides=6, baseSize=30, towerHeight=60, twistAngle=180, topScale=0.2 |
| 6 | Translate | Path Group | X = bedsize_x/2, Y = bedsize_y/2 |
| 7 | ↳ For Z | Inside Translate | Start = LH, End = towerHeight, Step = LH |
| 8 | ↳ Rotate | Inside For Z | Angle = normZ × twistAngle |
| 9 | ↳ Scale | Inside Rotate | SX/SY = mapRange(normZ, 0→1, 1→topScale) |
| 10 | ↳ Polygon | Inside Scale | Sides, Radius from variables |
| 11 | Travel Rel Z | After Rotate | Z = Layer Height |
Outcome
You should see a hexagonal tower that twists 180° while shrinking from full size to 20% — creating a dramatic tornado or drill-bit shape.
Load this tutorial
Interactive preview is available in the interactive reader.
Interactive preview is available in the interactive reader.
What's Next
Tutorial 20: Heart Vase — Use Polyline with 12 carefully placed points to create a heart-shaped cross-section, then spiral it into a vase.