generate2 = () => svg`<svg height="700" viewBox="${-margin} ${-margin} ${w + margin*2} ${h + margin*2}" style="background: black;">
${style()}
${array(ny).map(y => array(nx).map(x => {
let p = random() < smoothstep(y, 3, ny-4)
let n = p ? randInt(5) : x % 5
let diff = n != x%5
return `<g transform="translate(${x*10},${y*10})">
${symbols[n]} fill="${diff ? palette[randInt(3)] : colors[1]}" ${y%2&&!diff ? '': `transform-origin="5 5" transform="rotate(${diff?random([0,90]):90})"`}/>
</g>`
}).join('')).join('')}
</svg>`