zCurveIFS = new IteratedFunctionSystem([
scale(1 / 3),
shift([1 / 3, 0])
.compose(rotate(pi / 4))
.compose(scale(Math.sqrt(2) / 6)),
reflect([1, 0], [1 / 2, 0])
.compose(shift([1 / 2, 1 / 6]))
.compose(rotate(-Math.PI / 2))
.compose(scale(1 / 3)),
shift([1 / 2, -1 / 6])
.compose(rotate(pi / 4))
.compose(scale(Math.sqrt(2) / 6)),
scale(1 / 3, [1, 0])
])