#include "common_uniforms" #include "render/fullscreen_vs" #include "math/sdf_shapes" @group(0) @binding(0) var uniforms: CommonUniforms; @fragment fn fs_main(@builtin(position) p: vec4f) -> @location(0) vec4f { let uv = (p.xy / uniforms.resolution - 0.5) * 2.0; let movement = vec2f(sin(uniforms.time * 0.7), cos(uniforms.time * 0.5)); let d = sdEllipse((uv * vec2f(uniforms.aspect_ratio, 1.0)) - movement, vec2f(0.5, 0.3) * (1.0 + uniforms.beat_phase * 0.2)); return mix(vec4f(0.2, 0.8, 0.4, 1.0), vec4f(0.0), smoothstep(0.0, 0.01, d)); }