The layer schedule, the selection, the weights, the quarter-turn lattice and the angle classes are all computed in Rust, the disc is masked and the layers merged there, and the page only paints the pixels it is handed. The unspun stack is the one the moire page shows; spinning it is what breaks the shared grid, and the exact nodes that survive a turn are the Gaussian-integer angles. What the stack is, and why an address is not a construction, is in the stack note.>}>
{view && }
{read?.layers}
{read && `${q.r} by ${q.r}`}
{view && `${view.ms.toFixed(0)} ms`}
{read && {`layers ${read.layers} scales ${read.scales.join(' ')}\nangles ${angles}\nmean ${place(read.mean, 4)} rms contrast ${place(read.rms, 4)} rms * sqrt(L) ${place(read.faded, 4)} centre ${place(read.centre, 4)}${aside}\nangle classes mod 90 ${read.classes} increments to a quarter turn ${read.period ?? 'none'} layer pairs sharing a class ${read.pairs}\ntop three maxima (x, y, value)\n${peaks}`}}
);
}
mount(