1parametric
2    Morph :: slider[0,1] = 0;
3in let
4    wall_thickness = 0.075;
5    diam = 0.75;
6    height = 1;
7    handle =
8        torus {minor: .1, major: .65}
9        >> rotate {angle: 90*deg, axis: X_axis}
10        >> move [diam/2, 0, 0];
11    cutout =
12        cylinder {d: (diam - wall_thickness), h: 2*height};
13    body =
14        cylinder {d: diam, h: height}
15        >> into union [handle]
16        >> into difference [cutout];
17    base =
18        cylinder {d: diam, h: wall_thickness}
19        >> move[0,0,-(height-wall_thickness)/2];
20    mug =
21        smooth Morph .union [body, base]
22        >> colour (lib.web_colour.antique_white);
23in
24mug
25