function draw(d) {
depth[0]++;
let out = d3.selectAll('#out')
out.append('rect')
.attr('fill',chroma.hsv((depth[0]*2)%99,((99-depth[0]*4)*0.01)%0.99,0.99).toString())
.attr('x', 0)
.attr('y', 0)
.attr('rx', d*0.1)
.attr('width', d)
.attr('height', d)
.attr('transform', `${trans.str}`)
stack.push(trans.str)
let t = `rotate(${radToDeg(-0.6435)}) translate(0 ${-d*0.8})`
trans.str = trans.str.concat(' ',t)
if(d*4>5) draw(d*0.8);
t = `translate(${d*1.4} ${d*0.8}) rotate(${radToDeg(Math.PI/2)})`;
trans.str = trans.str.concat(' ',t)
if(d*3>5) draw(d*.6);
trans.str = stack.pop();
depth[0]--
}