shader({ height: 100, inputs: { angle: viewof angle, size: viewof size } })`
fn modulo(x: f32, y: f32) -> f32 { return x - y * floor(x / y); }
fn rotate2d(a: f32) -> mat2x2<f32> {
return mat2x2(cos(a), -sin(a), sin(a), cos(a));
}
fn mainImage(fragCoord: vec2<f32>, fragColor: ptr<function, vec4<f32>>) {
let p = (fragCoord.xy - iResolution.xy / 2.0) * rotate2d(angle);
let k = f32((modulo(p.x, size * 2.0) < size) == (modulo(p.y, size * 2.0) < size));
*fragColor = vec4(vec3(k), 1.0);
}`