// https://www.shadertoy.com/view/MslGRn #define vec2 float2 #define vec3 float3 #define vec4 float4 #define ivec2 int2 #define ivec3 int3 #define ivec4 int4 #define mat2 float2x2 #define mat3 float3x3 #define mat4 float4x4 #define fract frac #define mix lerp #define iTime Time.x #define iResolution ViewSize uniform float2 mouse< string name = "Virtual Mouse Coordinates"; string field_type = "slider"; float2 minimum = {0, 0}; float2 maximum = {100., 100.}; float2 scale = {.01, .01}; float2 step = {.01, .01}; > = {0., 0.}; uniform float4x4 ViewProj< bool automatic = true; >; uniform float4 Time< bool automatic = true; >; uniform float4 ViewSize< bool automatic = true; >; int2 iMouse() { return int2(mouse.x * ViewSize.x, mouse.y * ViewSize.y); } #define TAU 6.2831853 struct M { float d; vec3 c; }; void mmin(float d, vec3 c, inout M m){if (d