Gallery Twisted Vase
Twisted Vase
A hexagonal vase twisted from bottom to top — a vase-mode favourite. Change the sides, the twist or the height.
Needs a project open in ArgilCAD. The CAD engine starts when a project is open, and it builds the model from the code. It runs on a computer; phones and tablets open ArgilCAD as a viewer.
- Open ArgilCAD and create or open a project.
- Paste the code into the prompt box or the Code Editor.
- Run it — then change any dimension, or ask the AI for a change. Running code is free.
- Size
- 62.7 × 66 × 120 mm
- Parts
- 1
- Category
- Home
- How it was made
- Written by hand
- Licence
- CC BY-NC-SA 4.0
Code model.py · 35 lines
"""Twisted vase — a vase-mode favourite, built on the same kernel ArgilCAD runs.
Paste into ArgilCAD's code editor as is: the last line assigns `result`.
"""
from math import sin, cos, pi
from build123d import *
height = 120.0 # mm
radius = 34.0 # widest point (hexagon circumradius), mm
sides = 6
twist = 60 # degrees, bottom to top
wall = 1.6 # mm, across the flats
base = 2.0 # floor thickness, mm
corner = 6.0 # corner rounding, mm
steps = 10 # loft sections
def section(z, inset=0.0, fillet_r=corner):
"""Rounded polygon at height z, turned by its share of the twist."""
u = z / height
r = radius * (0.72 + 0.28 * sin(pi * (0.15 + 0.85 * u))) - inset
with BuildSketch(Plane.XY.offset(z)) as s:
RegularPolygon(r, sides, rotation=twist * u)
fillet(s.vertices(), radius=fillet_r)
return s.sketch.faces()[0]
outer = loft([section(height * i / steps) for i in range(steps + 1)])
# insetting the circumradius by wall/cos(pi/n) leaves exactly `wall` across the flats
inset = wall / cos(pi / sides)
inner = loft([section(base + (height + 1 - base) * i / steps, inset, corner - wall)
for i in range(steps + 1)])
result = outer - inner
Dimensions you can change
| Variable | Default | Range | What it is |
|---|---|---|---|
height | 120.0 | 40 – 250 mm | |
radius | 34.0 | 15 – 80 mm | |
sides | 6 | 3 – 12 | |
twist | 60 | 0 – 180 ° | |
wall | 1.6 | 0.8 – 4 mm |
© 2026 Argil Design · CC BY-NC-SA 4.0 — share and remix with credit; no commercial use or sale; remixes under the same licence.