filled_segment = n => {
const inside = t => polar([
400*(1 - Math.pow((n+t)*1, -.4-.2*(1-Math.pow(n+t,-.3)))),
Math.PI/2 - (Math.log2(n + t) % 1) * Math.PI*2]);
const outside = t => polar([
400*(1 - Math.pow((n+1-t)*2.3, -.4-.2*(1-Math.pow(n+1-t,-.3)))),
Math.PI/2 - (Math.log2(n+1-t) % 1) * Math.PI*2]);
return bezpts_to_svgpath(bezeval(inside, [0, 1], bounds, 0.01)) +
bezpts_to_svgpath(bezeval(outside, [0, 1], bounds, 0.01)).replace(/M/, 'L') + 'Z';
}