//draw closed path and some modifications
for (int i = 1; i < 20; ++i) // only round edges
draw(shift(0,-30)*roundedpath(B,i/4), rgb(0.5, i*0.049,0) + linewidth(0.5));
for (int i = 1; i < 20; ++i) // round edged and scale
draw(shift(0,-60)*roundedpath(B,i/4,1-i/50), rgb(1, 1 - i*0.049,i*0.049) + linewidth(0.5));
for (int i = 1; i < 50; ++i) // shift (round edged und scaled shifted version)
draw(shift(-30,-60)*shift(10,0)*roundedpath(shift(-10,0)*B,i/10,1-i/80), rgb( i*0.024, 1 - i*0.024,0) + linewidth(0.5));
for (int i = 1; i < 20; ++i) // shift (round edged und scaled shifted version)
draw(shift(-60,-60)*shift(10,0)*roundedpath(shift(-10,0)*B,i/4,1-i/50), gray(i/40));