Shipping shaders
Your bundler minifies every byte of JS — but never the shader text handed to
gl.shaderSource. Build-time plugins fix that.
The production tooling lives on its own subpath
(@xgis/shader-dsl/emit-prod) and composes the
Vite/Webpack way — a { plugins: [...] } bag you pass to the emit call.
A consumer that never imports the subpath bundles zero bytes of it.
Two compact the text; one reshapes the program:
- mangle — renames the authored vocabulary (helpers, plain structs, consts →
_f0/_S0/_k0); pass aMapto get the reverse mapping back for decoding driver logs. - minify — strips whitespace and comments; token-safe by construction (WGSL/GLSL have no string literals).
- inline — a different kind of transform: it rewrites the IR, lifting every helper (single-return and linear multi-statement alike) into its call sites so the call graph disappears. Semantics-preserving, but it can grow bytes — the point is removing structure, not size.
The goal is narrow and honest: shrink the payload and raise the cost of reading or lifting your shader techniques. It is not encryption — a determined reader can still recover behaviour. These plugins make that expensive, not impossible.
import { emitModule, emitGlslModule } from '@xgis/shader-dsl'import { inline, mangle, minify } from '@xgis/shader-dsl/emit-prod'
// A Vite/Webpack-style { plugins: [...] } bag. Order is execution order:// inline() flattens the call graph, mangle() renames the survivors, minify() compacts.const glsl = emitGlslModule(m, 'fragment', { plugins: [inline(), mangle(), minify()] })const wgsl = emitModule(m, { plugins: [inline(), mangle(), minify()] }) // WGSL ships the same wayThe ABI boundary
The rule is simple: if a host looks a name up by string, we never change it.
That freezes four categories — entry points (WebGPU entryPoint),
binding names (including the _fp64 fast-math guard the
df64 helpers thread through), UBO block tags, and struct field names (std140 packing + GLSL varyings
link vertex↔fragment by name). Reflection-driven hosts bind exactly as before. Full rules in the
reference.
Try it
Pick an emit target — WGSL for WebGPU, or GLSL ES 3.00 per stage —
and toggle the plugins; the kaleidoscope shader updates live. Every target × plugin combination is emitted at
build time, so nothing here runs the DSL in your browser — the client just swaps the precomputed string.
Heads-up: toggling inline can grow the byte count (a
multi-call helper is duplicated at each site) — the badge shows a signed delta, and that growth is expected,
not a regression. Structure removal is the point.
struct Uniforms { time: f32, resolution: vec2<f32>, segments: f32,}
struct VsOut { @builtin(position) pos: vec4<f32>, @location(0) uv: vec2<f32>,}
@group(0) @binding(0) var<uniform> U: Uniforms;
fn hash(p: vec2<f32>) -> f32 { return fract((sin(dot(p, vec2<f32>(127.1, 311.7))) * 43758.5453));}
fn noise(p: vec2<f32>) -> f32 { let _cse0 = vec2<f32>(3.0); let _v0 = floor(p); let _v1 = fract(p); let _lc0 = ((_v1 * _v1) * (_cse0 - (_v1 * 2.0))).x; return mix(mix(hash(_v0), hash((_v0 + vec2<f32>(1.0, 0.0))), _lc0), mix(hash((_v0 + vec2<f32>(0.0, 1.0))), hash((_v0 + vec2<f32>(1.0, 1.0))), _lc0), ((_v1 * _v1) * (_cse0 - (_v1 * 2.0))).y);}
fn fbm(p: vec2<f32>) -> f32 { return ((((noise(p) * 0.5) + (noise((p * 2.02)) * 0.25)) + (noise((p * 4.08)) * 0.125)) + (noise((p * 8.2)) * 0.0625));}
fn palette(t: f32) -> vec3<f32> { return (vec3<f32>(0.5) + (cos(((t + vec3<f32>(0.0, 0.33, 0.67)) * 6.283)) * 0.5));}
@vertexfn vs(@builtin(vertex_index) vi: u32) -> VsOut { let _cse0 = ((f32((vi & 1u)) * 4.0) - 1.0); let _cse1 = ((f32((vi >> 1u)) * 4.0) - 1.0); return VsOut(vec4<f32>(_cse0, _cse1, 0.0, 1.0), vec2<f32>(((_cse0 * 0.5) + 0.5), ((_cse1 * 0.5) + 0.5)));}
@fragmentfn fs(vo: VsOut) -> @location(0) vec4<f32> { let _cse0 = vec2<f32>((((vo.uv.x * 2.0) - 1.0) * (U.resolution.x / U.resolution.y)), ((vo.uv.y * 2.0) - 1.0)); let _v0 = length(_cse0); let _v1 = atan2(_cse0.y, _cse0.x); let _v2 = (6.2831853 / U.segments); let _v3 = abs(((_v1 - _v2 * floor(_v1 / _v2)) - (_v2 * 0.5))); let _v4 = fbm((((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09))))); return vec4<f32>(((palette(((((_v4 * 0.7) + (((sin(((_v0 * 9.0) - (U.time * 0.8))) * 0.5) + 0.5) * 0.15)) + (_v0 * 0.3)) - (U.time * 0.03))) * ((_v4 * 0.9) + 0.35)) * (1.0 - smoothstep(0.55, 1.25, _v0))), 1.0);}struct Uniforms{time:f32,resolution:vec2<f32>,segments:f32,}struct VsOut{@builtin(position)pos:vec4<f32>,@location(0)uv:vec2<f32>,}@group(0)@binding(0)var<uniform> U:Uniforms;fn hash(p:vec2<f32>)-> f32{return fract((sin(dot(p,vec2<f32>(127.1,311.7)))* 43758.5453));}fn noise(p:vec2<f32>)-> f32{let _cse0 = vec2<f32>(3.0);let _v0 = floor(p);let _v1 = fract(p);let _lc0 =((_v1 * _v1)*(_cse0 -(_v1 * 2.0))).x;return mix(mix(hash(_v0),hash((_v0 + vec2<f32>(1.0,0.0))),_lc0),mix(hash((_v0 + vec2<f32>(0.0,1.0))),hash((_v0 + vec2<f32>(1.0,1.0))),_lc0),((_v1 * _v1)*(_cse0 -(_v1 * 2.0))).y);}fn fbm(p:vec2<f32>)-> f32{return((((noise(p)* 0.5)+(noise((p * 2.02))* 0.25))+(noise((p * 4.08))* 0.125))+(noise((p * 8.2))* 0.0625));}fn palette(t:f32)-> vec3<f32>{return(vec3<f32>(0.5)+(cos(((t + vec3<f32>(0.0,0.33,0.67))* 6.283))* 0.5));}@vertex fn vs(@builtin(vertex_index)vi:u32)-> VsOut{let _cse0 =((f32((vi & 1u))* 4.0)- 1.0);let _cse1 =((f32((vi >> 1u))* 4.0)- 1.0);return VsOut(vec4<f32>(_cse0,_cse1,0.0,1.0),vec2<f32>(((_cse0 * 0.5)+ 0.5),((_cse1 * 0.5)+ 0.5)));}@fragment fn fs(vo:VsOut)-> @location(0)vec4<f32>{let _cse0 = vec2<f32>((((vo.uv.x * 2.0)- 1.0)*(U.resolution.x / U.resolution.y)),((vo.uv.y * 2.0)- 1.0));let _v0 = length(_cse0);let _v1 = atan2(_cse0.y,_cse0.x);let _v2 =(6.2831853 / U.segments);let _v3 = abs(((_v1 - _v2 * floor(_v1 / _v2))-(_v2 * 0.5)));let _v4 = fbm((((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09)))));return vec4<f32>(((palette(((((_v4 * 0.7)+(((sin(((_v0 * 9.0)-(U.time * 0.8)))* 0.5)+ 0.5)* 0.15))+(_v0 * 0.3))-(U.time * 0.03)))*((_v4 * 0.9)+ 0.35))*(1.0 - smoothstep(0.55,1.25,_v0))),1.0);}struct Uniforms { time: f32, resolution: vec2<f32>, segments: f32,}
struct _S0 { @builtin(position) pos: vec4<f32>, @location(0) uv: vec2<f32>,}
@group(0) @binding(0) var<uniform> U: Uniforms;
fn _f0(p: vec2<f32>) -> f32 { return fract((sin(dot(p, vec2<f32>(127.1, 311.7))) * 43758.5453));}
fn _f1(p: vec2<f32>) -> f32 { let _cse0 = vec2<f32>(3.0); let _v0 = floor(p); let _v1 = fract(p); let _lc0 = ((_v1 * _v1) * (_cse0 - (_v1 * 2.0))).x; return mix(mix(_f0(_v0), _f0((_v0 + vec2<f32>(1.0, 0.0))), _lc0), mix(_f0((_v0 + vec2<f32>(0.0, 1.0))), _f0((_v0 + vec2<f32>(1.0, 1.0))), _lc0), ((_v1 * _v1) * (_cse0 - (_v1 * 2.0))).y);}
fn _f2(p: vec2<f32>) -> f32 { return ((((_f1(p) * 0.5) + (_f1((p * 2.02)) * 0.25)) + (_f1((p * 4.08)) * 0.125)) + (_f1((p * 8.2)) * 0.0625));}
fn _f3(t: f32) -> vec3<f32> { return (vec3<f32>(0.5) + (cos(((t + vec3<f32>(0.0, 0.33, 0.67)) * 6.283)) * 0.5));}
@vertexfn vs(@builtin(vertex_index) vi: u32) -> _S0 { let _cse0 = ((f32((vi & 1u)) * 4.0) - 1.0); let _cse1 = ((f32((vi >> 1u)) * 4.0) - 1.0); return _S0(vec4<f32>(_cse0, _cse1, 0.0, 1.0), vec2<f32>(((_cse0 * 0.5) + 0.5), ((_cse1 * 0.5) + 0.5)));}
@fragmentfn fs(vo: _S0) -> @location(0) vec4<f32> { let _cse0 = vec2<f32>((((vo.uv.x * 2.0) - 1.0) * (U.resolution.x / U.resolution.y)), ((vo.uv.y * 2.0) - 1.0)); let _v0 = length(_cse0); let _v1 = atan2(_cse0.y, _cse0.x); let _v2 = (6.2831853 / U.segments); let _v3 = abs(((_v1 - _v2 * floor(_v1 / _v2)) - (_v2 * 0.5))); let _v4 = _f2((((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09))))); return vec4<f32>(((_f3(((((_v4 * 0.7) + (((sin(((_v0 * 9.0) - (U.time * 0.8))) * 0.5) + 0.5) * 0.15)) + (_v0 * 0.3)) - (U.time * 0.03))) * ((_v4 * 0.9) + 0.35)) * (1.0 - smoothstep(0.55, 1.25, _v0))), 1.0);}struct Uniforms{time:f32,resolution:vec2<f32>,segments:f32,}struct _S0{@builtin(position)pos:vec4<f32>,@location(0)uv:vec2<f32>,}@group(0)@binding(0)var<uniform> U:Uniforms;fn _f0(p:vec2<f32>)-> f32{return fract((sin(dot(p,vec2<f32>(127.1,311.7)))* 43758.5453));}fn _f1(p:vec2<f32>)-> f32{let _cse0 = vec2<f32>(3.0);let _v0 = floor(p);let _v1 = fract(p);let _lc0 =((_v1 * _v1)*(_cse0 -(_v1 * 2.0))).x;return mix(mix(_f0(_v0),_f0((_v0 + vec2<f32>(1.0,0.0))),_lc0),mix(_f0((_v0 + vec2<f32>(0.0,1.0))),_f0((_v0 + vec2<f32>(1.0,1.0))),_lc0),((_v1 * _v1)*(_cse0 -(_v1 * 2.0))).y);}fn _f2(p:vec2<f32>)-> f32{return((((_f1(p)* 0.5)+(_f1((p * 2.02))* 0.25))+(_f1((p * 4.08))* 0.125))+(_f1((p * 8.2))* 0.0625));}fn _f3(t:f32)-> vec3<f32>{return(vec3<f32>(0.5)+(cos(((t + vec3<f32>(0.0,0.33,0.67))* 6.283))* 0.5));}@vertex fn vs(@builtin(vertex_index)vi:u32)-> _S0{let _cse0 =((f32((vi & 1u))* 4.0)- 1.0);let _cse1 =((f32((vi >> 1u))* 4.0)- 1.0);return _S0(vec4<f32>(_cse0,_cse1,0.0,1.0),vec2<f32>(((_cse0 * 0.5)+ 0.5),((_cse1 * 0.5)+ 0.5)));}@fragment fn fs(vo:_S0)-> @location(0)vec4<f32>{let _cse0 = vec2<f32>((((vo.uv.x * 2.0)- 1.0)*(U.resolution.x / U.resolution.y)),((vo.uv.y * 2.0)- 1.0));let _v0 = length(_cse0);let _v1 = atan2(_cse0.y,_cse0.x);let _v2 =(6.2831853 / U.segments);let _v3 = abs(((_v1 - _v2 * floor(_v1 / _v2))-(_v2 * 0.5)));let _v4 = _f2((((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09)))));return vec4<f32>(((_f3(((((_v4 * 0.7)+(((sin(((_v0 * 9.0)-(U.time * 0.8)))* 0.5)+ 0.5)* 0.15))+(_v0 * 0.3))-(U.time * 0.03)))*((_v4 * 0.9)+ 0.35))*(1.0 - smoothstep(0.55,1.25,_v0))),1.0);}struct Uniforms { time: f32, resolution: vec2<f32>, segments: f32,}
struct VsOut { @builtin(position) pos: vec4<f32>, @location(0) uv: vec2<f32>,}
@group(0) @binding(0) var<uniform> U: Uniforms;
@vertexfn vs(@builtin(vertex_index) vi: u32) -> VsOut { let _cse0 = ((f32((vi & 1u)) * 4.0) - 1.0); let _cse1 = ((f32((vi >> 1u)) * 4.0) - 1.0); return VsOut(vec4<f32>(_cse0, _cse1, 0.0, 1.0), vec2<f32>(((_cse0 * 0.5) + 0.5), ((_cse1 * 0.5) + 0.5)));}
@fragmentfn fs(vo: VsOut) -> @location(0) vec4<f32> { let _cse0 = vec2<f32>((((vo.uv.x * 2.0) - 1.0) * (U.resolution.x / U.resolution.y)), ((vo.uv.y * 2.0) - 1.0)); let _v0 = length(_cse0); let _v1 = atan2(_cse0.y, _cse0.x); let _v2 = (6.2831853 / U.segments); let _v3 = abs(((_v1 - _v2 * floor(_v1 / _v2)) - (_v2 * 0.5))); let _inl0_a0 = (((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09)))); let _inl0_cse0 = vec2<f32>(3.0); let _inl0_v0 = floor(_inl0_a0); let _inl0_v1 = fract(_inl0_a0); let _inl0_lc0 = ((_inl0_v1 * _inl0_v1) * (_inl0_cse0 - (_inl0_v1 * 2.0))).x; let _inl0_ret = mix(mix(fract((sin(dot(_inl0_v0, vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl0_v0 + vec2<f32>(1.0, 0.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl0_lc0), mix(fract((sin(dot((_inl0_v0 + vec2<f32>(0.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl0_v0 + vec2<f32>(1.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl0_lc0), ((_inl0_v1 * _inl0_v1) * (_inl0_cse0 - (_inl0_v1 * 2.0))).y); let _inl1_a0 = ((((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09)))) * 2.02); let _inl1_cse0 = vec2<f32>(3.0); let _inl1_v0 = floor(_inl1_a0); let _inl1_v1 = fract(_inl1_a0); let _inl1_lc0 = ((_inl1_v1 * _inl1_v1) * (_inl1_cse0 - (_inl1_v1 * 2.0))).x; let _inl1_ret = mix(mix(fract((sin(dot(_inl1_v0, vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl1_v0 + vec2<f32>(1.0, 0.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl1_lc0), mix(fract((sin(dot((_inl1_v0 + vec2<f32>(0.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl1_v0 + vec2<f32>(1.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl1_lc0), ((_inl1_v1 * _inl1_v1) * (_inl1_cse0 - (_inl1_v1 * 2.0))).y); let _inl2_a0 = ((((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09)))) * 4.08); let _inl2_cse0 = vec2<f32>(3.0); let _inl2_v0 = floor(_inl2_a0); let _inl2_v1 = fract(_inl2_a0); let _inl2_lc0 = ((_inl2_v1 * _inl2_v1) * (_inl2_cse0 - (_inl2_v1 * 2.0))).x; let _inl2_ret = mix(mix(fract((sin(dot(_inl2_v0, vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl2_v0 + vec2<f32>(1.0, 0.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl2_lc0), mix(fract((sin(dot((_inl2_v0 + vec2<f32>(0.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl2_v0 + vec2<f32>(1.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl2_lc0), ((_inl2_v1 * _inl2_v1) * (_inl2_cse0 - (_inl2_v1 * 2.0))).y); let _inl3_a0 = ((((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09)))) * 8.2); let _inl3_cse0 = vec2<f32>(3.0); let _inl3_v0 = floor(_inl3_a0); let _inl3_v1 = fract(_inl3_a0); let _inl3_lc0 = ((_inl3_v1 * _inl3_v1) * (_inl3_cse0 - (_inl3_v1 * 2.0))).x; let _inl3_ret = mix(mix(fract((sin(dot(_inl3_v0, vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl3_v0 + vec2<f32>(1.0, 0.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl3_lc0), mix(fract((sin(dot((_inl3_v0 + vec2<f32>(0.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl3_v0 + vec2<f32>(1.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl3_lc0), ((_inl3_v1 * _inl3_v1) * (_inl3_cse0 - (_inl3_v1 * 2.0))).y); let _v4 = ((((_inl0_ret * 0.5) + (_inl1_ret * 0.25)) + (_inl2_ret * 0.125)) + (_inl3_ret * 0.0625)); return vec4<f32>((((vec3<f32>(0.5) + (cos(((((((_v4 * 0.7) + (((sin(((_v0 * 9.0) - (U.time * 0.8))) * 0.5) + 0.5) * 0.15)) + (_v0 * 0.3)) - (U.time * 0.03)) + vec3<f32>(0.0, 0.33, 0.67)) * 6.283)) * 0.5)) * ((_v4 * 0.9) + 0.35)) * (1.0 - smoothstep(0.55, 1.25, _v0))), 1.0);}struct Uniforms{time:f32,resolution:vec2<f32>,segments:f32,}struct VsOut{@builtin(position)pos:vec4<f32>,@location(0)uv:vec2<f32>,}@group(0)@binding(0)var<uniform> U:Uniforms;@vertex fn vs(@builtin(vertex_index)vi:u32)-> VsOut{let _cse0 =((f32((vi & 1u))* 4.0)- 1.0);let _cse1 =((f32((vi >> 1u))* 4.0)- 1.0);return VsOut(vec4<f32>(_cse0,_cse1,0.0,1.0),vec2<f32>(((_cse0 * 0.5)+ 0.5),((_cse1 * 0.5)+ 0.5)));}@fragment fn fs(vo:VsOut)-> @location(0)vec4<f32>{let _cse0 = vec2<f32>((((vo.uv.x * 2.0)- 1.0)*(U.resolution.x / U.resolution.y)),((vo.uv.y * 2.0)- 1.0));let _v0 = length(_cse0);let _v1 = atan2(_cse0.y,_cse0.x);let _v2 =(6.2831853 / U.segments);let _v3 = abs(((_v1 - _v2 * floor(_v1 / _v2))-(_v2 * 0.5)));let _inl0_a0 =(((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09))));let _inl0_cse0 = vec2<f32>(3.0);let _inl0_v0 = floor(_inl0_a0);let _inl0_v1 = fract(_inl0_a0);let _inl0_lc0 =((_inl0_v1 * _inl0_v1)*(_inl0_cse0 -(_inl0_v1 * 2.0))).x;let _inl0_ret = mix(mix(fract((sin(dot(_inl0_v0,vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl0_v0 + vec2<f32>(1.0,0.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl0_lc0),mix(fract((sin(dot((_inl0_v0 + vec2<f32>(0.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl0_v0 + vec2<f32>(1.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl0_lc0),((_inl0_v1 * _inl0_v1)*(_inl0_cse0 -(_inl0_v1 * 2.0))).y);let _inl1_a0 =((((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09))))* 2.02);let _inl1_cse0 = vec2<f32>(3.0);let _inl1_v0 = floor(_inl1_a0);let _inl1_v1 = fract(_inl1_a0);let _inl1_lc0 =((_inl1_v1 * _inl1_v1)*(_inl1_cse0 -(_inl1_v1 * 2.0))).x;let _inl1_ret = mix(mix(fract((sin(dot(_inl1_v0,vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl1_v0 + vec2<f32>(1.0,0.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl1_lc0),mix(fract((sin(dot((_inl1_v0 + vec2<f32>(0.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl1_v0 + vec2<f32>(1.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl1_lc0),((_inl1_v1 * _inl1_v1)*(_inl1_cse0 -(_inl1_v1 * 2.0))).y);let _inl2_a0 =((((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09))))* 4.08);let _inl2_cse0 = vec2<f32>(3.0);let _inl2_v0 = floor(_inl2_a0);let _inl2_v1 = fract(_inl2_a0);let _inl2_lc0 =((_inl2_v1 * _inl2_v1)*(_inl2_cse0 -(_inl2_v1 * 2.0))).x;let _inl2_ret = mix(mix(fract((sin(dot(_inl2_v0,vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl2_v0 + vec2<f32>(1.0,0.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl2_lc0),mix(fract((sin(dot((_inl2_v0 + vec2<f32>(0.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl2_v0 + vec2<f32>(1.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl2_lc0),((_inl2_v1 * _inl2_v1)*(_inl2_cse0 -(_inl2_v1 * 2.0))).y);let _inl3_a0 =((((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09))))* 8.2);let _inl3_cse0 = vec2<f32>(3.0);let _inl3_v0 = floor(_inl3_a0);let _inl3_v1 = fract(_inl3_a0);let _inl3_lc0 =((_inl3_v1 * _inl3_v1)*(_inl3_cse0 -(_inl3_v1 * 2.0))).x;let _inl3_ret = mix(mix(fract((sin(dot(_inl3_v0,vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl3_v0 + vec2<f32>(1.0,0.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl3_lc0),mix(fract((sin(dot((_inl3_v0 + vec2<f32>(0.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl3_v0 + vec2<f32>(1.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl3_lc0),((_inl3_v1 * _inl3_v1)*(_inl3_cse0 -(_inl3_v1 * 2.0))).y);let _v4 =((((_inl0_ret * 0.5)+(_inl1_ret * 0.25))+(_inl2_ret * 0.125))+(_inl3_ret * 0.0625));return vec4<f32>((((vec3<f32>(0.5)+(cos(((((((_v4 * 0.7)+(((sin(((_v0 * 9.0)-(U.time * 0.8)))* 0.5)+ 0.5)* 0.15))+(_v0 * 0.3))-(U.time * 0.03))+ vec3<f32>(0.0,0.33,0.67))* 6.283))* 0.5))*((_v4 * 0.9)+ 0.35))*(1.0 - smoothstep(0.55,1.25,_v0))),1.0);}struct Uniforms { time: f32, resolution: vec2<f32>, segments: f32,}
struct _S0 { @builtin(position) pos: vec4<f32>, @location(0) uv: vec2<f32>,}
@group(0) @binding(0) var<uniform> U: Uniforms;
@vertexfn vs(@builtin(vertex_index) vi: u32) -> _S0 { let _cse0 = ((f32((vi & 1u)) * 4.0) - 1.0); let _cse1 = ((f32((vi >> 1u)) * 4.0) - 1.0); return _S0(vec4<f32>(_cse0, _cse1, 0.0, 1.0), vec2<f32>(((_cse0 * 0.5) + 0.5), ((_cse1 * 0.5) + 0.5)));}
@fragmentfn fs(vo: _S0) -> @location(0) vec4<f32> { let _cse0 = vec2<f32>((((vo.uv.x * 2.0) - 1.0) * (U.resolution.x / U.resolution.y)), ((vo.uv.y * 2.0) - 1.0)); let _v0 = length(_cse0); let _v1 = atan2(_cse0.y, _cse0.x); let _v2 = (6.2831853 / U.segments); let _v3 = abs(((_v1 - _v2 * floor(_v1 / _v2)) - (_v2 * 0.5))); let _inl0_a0 = (((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09)))); let _inl0_cse0 = vec2<f32>(3.0); let _inl0_v0 = floor(_inl0_a0); let _inl0_v1 = fract(_inl0_a0); let _inl0_lc0 = ((_inl0_v1 * _inl0_v1) * (_inl0_cse0 - (_inl0_v1 * 2.0))).x; let _inl0_ret = mix(mix(fract((sin(dot(_inl0_v0, vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl0_v0 + vec2<f32>(1.0, 0.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl0_lc0), mix(fract((sin(dot((_inl0_v0 + vec2<f32>(0.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl0_v0 + vec2<f32>(1.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl0_lc0), ((_inl0_v1 * _inl0_v1) * (_inl0_cse0 - (_inl0_v1 * 2.0))).y); let _inl1_a0 = ((((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09)))) * 2.02); let _inl1_cse0 = vec2<f32>(3.0); let _inl1_v0 = floor(_inl1_a0); let _inl1_v1 = fract(_inl1_a0); let _inl1_lc0 = ((_inl1_v1 * _inl1_v1) * (_inl1_cse0 - (_inl1_v1 * 2.0))).x; let _inl1_ret = mix(mix(fract((sin(dot(_inl1_v0, vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl1_v0 + vec2<f32>(1.0, 0.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl1_lc0), mix(fract((sin(dot((_inl1_v0 + vec2<f32>(0.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl1_v0 + vec2<f32>(1.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl1_lc0), ((_inl1_v1 * _inl1_v1) * (_inl1_cse0 - (_inl1_v1 * 2.0))).y); let _inl2_a0 = ((((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09)))) * 4.08); let _inl2_cse0 = vec2<f32>(3.0); let _inl2_v0 = floor(_inl2_a0); let _inl2_v1 = fract(_inl2_a0); let _inl2_lc0 = ((_inl2_v1 * _inl2_v1) * (_inl2_cse0 - (_inl2_v1 * 2.0))).x; let _inl2_ret = mix(mix(fract((sin(dot(_inl2_v0, vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl2_v0 + vec2<f32>(1.0, 0.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl2_lc0), mix(fract((sin(dot((_inl2_v0 + vec2<f32>(0.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl2_v0 + vec2<f32>(1.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl2_lc0), ((_inl2_v1 * _inl2_v1) * (_inl2_cse0 - (_inl2_v1 * 2.0))).y); let _inl3_a0 = ((((vec2<f32>(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2<f32>((U.time * 0.12), (-(U.time * 0.09)))) * 8.2); let _inl3_cse0 = vec2<f32>(3.0); let _inl3_v0 = floor(_inl3_a0); let _inl3_v1 = fract(_inl3_a0); let _inl3_lc0 = ((_inl3_v1 * _inl3_v1) * (_inl3_cse0 - (_inl3_v1 * 2.0))).x; let _inl3_ret = mix(mix(fract((sin(dot(_inl3_v0, vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl3_v0 + vec2<f32>(1.0, 0.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl3_lc0), mix(fract((sin(dot((_inl3_v0 + vec2<f32>(0.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl3_v0 + vec2<f32>(1.0, 1.0)), vec2<f32>(127.1, 311.7))) * 43758.5453)), _inl3_lc0), ((_inl3_v1 * _inl3_v1) * (_inl3_cse0 - (_inl3_v1 * 2.0))).y); let _v4 = ((((_inl0_ret * 0.5) + (_inl1_ret * 0.25)) + (_inl2_ret * 0.125)) + (_inl3_ret * 0.0625)); return vec4<f32>((((vec3<f32>(0.5) + (cos(((((((_v4 * 0.7) + (((sin(((_v0 * 9.0) - (U.time * 0.8))) * 0.5) + 0.5) * 0.15)) + (_v0 * 0.3)) - (U.time * 0.03)) + vec3<f32>(0.0, 0.33, 0.67)) * 6.283)) * 0.5)) * ((_v4 * 0.9) + 0.35)) * (1.0 - smoothstep(0.55, 1.25, _v0))), 1.0);}struct Uniforms{time:f32,resolution:vec2<f32>,segments:f32,}struct _S0{@builtin(position)pos:vec4<f32>,@location(0)uv:vec2<f32>,}@group(0)@binding(0)var<uniform> U:Uniforms;@vertex fn vs(@builtin(vertex_index)vi:u32)-> _S0{let _cse0 =((f32((vi & 1u))* 4.0)- 1.0);let _cse1 =((f32((vi >> 1u))* 4.0)- 1.0);return _S0(vec4<f32>(_cse0,_cse1,0.0,1.0),vec2<f32>(((_cse0 * 0.5)+ 0.5),((_cse1 * 0.5)+ 0.5)));}@fragment fn fs(vo:_S0)-> @location(0)vec4<f32>{let _cse0 = vec2<f32>((((vo.uv.x * 2.0)- 1.0)*(U.resolution.x / U.resolution.y)),((vo.uv.y * 2.0)- 1.0));let _v0 = length(_cse0);let _v1 = atan2(_cse0.y,_cse0.x);let _v2 =(6.2831853 / U.segments);let _v3 = abs(((_v1 - _v2 * floor(_v1 / _v2))-(_v2 * 0.5)));let _inl0_a0 =(((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09))));let _inl0_cse0 = vec2<f32>(3.0);let _inl0_v0 = floor(_inl0_a0);let _inl0_v1 = fract(_inl0_a0);let _inl0_lc0 =((_inl0_v1 * _inl0_v1)*(_inl0_cse0 -(_inl0_v1 * 2.0))).x;let _inl0_ret = mix(mix(fract((sin(dot(_inl0_v0,vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl0_v0 + vec2<f32>(1.0,0.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl0_lc0),mix(fract((sin(dot((_inl0_v0 + vec2<f32>(0.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl0_v0 + vec2<f32>(1.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl0_lc0),((_inl0_v1 * _inl0_v1)*(_inl0_cse0 -(_inl0_v1 * 2.0))).y);let _inl1_a0 =((((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09))))* 2.02);let _inl1_cse0 = vec2<f32>(3.0);let _inl1_v0 = floor(_inl1_a0);let _inl1_v1 = fract(_inl1_a0);let _inl1_lc0 =((_inl1_v1 * _inl1_v1)*(_inl1_cse0 -(_inl1_v1 * 2.0))).x;let _inl1_ret = mix(mix(fract((sin(dot(_inl1_v0,vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl1_v0 + vec2<f32>(1.0,0.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl1_lc0),mix(fract((sin(dot((_inl1_v0 + vec2<f32>(0.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl1_v0 + vec2<f32>(1.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl1_lc0),((_inl1_v1 * _inl1_v1)*(_inl1_cse0 -(_inl1_v1 * 2.0))).y);let _inl2_a0 =((((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09))))* 4.08);let _inl2_cse0 = vec2<f32>(3.0);let _inl2_v0 = floor(_inl2_a0);let _inl2_v1 = fract(_inl2_a0);let _inl2_lc0 =((_inl2_v1 * _inl2_v1)*(_inl2_cse0 -(_inl2_v1 * 2.0))).x;let _inl2_ret = mix(mix(fract((sin(dot(_inl2_v0,vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl2_v0 + vec2<f32>(1.0,0.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl2_lc0),mix(fract((sin(dot((_inl2_v0 + vec2<f32>(0.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl2_v0 + vec2<f32>(1.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl2_lc0),((_inl2_v1 * _inl2_v1)*(_inl2_cse0 -(_inl2_v1 * 2.0))).y);let _inl3_a0 =((((vec2<f32>(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2<f32>((U.time * 0.12),(-(U.time * 0.09))))* 8.2);let _inl3_cse0 = vec2<f32>(3.0);let _inl3_v0 = floor(_inl3_a0);let _inl3_v1 = fract(_inl3_a0);let _inl3_lc0 =((_inl3_v1 * _inl3_v1)*(_inl3_cse0 -(_inl3_v1 * 2.0))).x;let _inl3_ret = mix(mix(fract((sin(dot(_inl3_v0,vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl3_v0 + vec2<f32>(1.0,0.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl3_lc0),mix(fract((sin(dot((_inl3_v0 + vec2<f32>(0.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl3_v0 + vec2<f32>(1.0,1.0)),vec2<f32>(127.1,311.7)))* 43758.5453)),_inl3_lc0),((_inl3_v1 * _inl3_v1)*(_inl3_cse0 -(_inl3_v1 * 2.0))).y);let _v4 =((((_inl0_ret * 0.5)+(_inl1_ret * 0.25))+(_inl2_ret * 0.125))+(_inl3_ret * 0.0625));return vec4<f32>((((vec3<f32>(0.5)+(cos(((((((_v4 * 0.7)+(((sin(((_v0 * 9.0)-(U.time * 0.8)))* 0.5)+ 0.5)* 0.15))+(_v0 * 0.3))-(U.time * 0.03))+ vec3<f32>(0.0,0.33,0.67))* 6.283))* 0.5))*((_v4 * 0.9)+ 0.35))*(1.0 - smoothstep(0.55,1.25,_v0))),1.0);}#version 300 esprecision highp float;precision highp int;
struct VsOut { vec4 pos; vec2 uv;};out vec2 uv;
VsOut vs_impl(uint vi) { float _cse0 = ((float((vi & 1u)) * 4.0) - 1.0); float _cse1 = ((float((vi >> 1u)) * 4.0) - 1.0); return VsOut(vec4(_cse0, _cse1, 0.0, 1.0), vec2(((_cse0 * 0.5) + 0.5), ((_cse1 * 0.5) + 0.5)));}
void main() { VsOut _out = vs_impl(uint(gl_VertexID)); gl_Position = _out.pos; uv = _out.uv;}#version 300 esprecision highp float;precision highp int;struct VsOut{vec4 pos;vec2 uv;};out vec2 uv;VsOut vs_impl(uint vi){float _cse0 =((float((vi & 1u))* 4.0)- 1.0);float _cse1 =((float((vi >> 1u))* 4.0)- 1.0);return VsOut(vec4(_cse0,_cse1,0.0,1.0),vec2(((_cse0 * 0.5)+ 0.5),((_cse1 * 0.5)+ 0.5)));}void main(){VsOut _out = vs_impl(uint(gl_VertexID));gl_Position = _out.pos;uv = _out.uv;}#version 300 esprecision highp float;precision highp int;
struct _S0 { vec4 pos; vec2 uv;};out vec2 uv;
_S0 vs_impl(uint vi) { float _cse0 = ((float((vi & 1u)) * 4.0) - 1.0); float _cse1 = ((float((vi >> 1u)) * 4.0) - 1.0); return _S0(vec4(_cse0, _cse1, 0.0, 1.0), vec2(((_cse0 * 0.5) + 0.5), ((_cse1 * 0.5) + 0.5)));}
void main() { _S0 _out = vs_impl(uint(gl_VertexID)); gl_Position = _out.pos; uv = _out.uv;}#version 300 esprecision highp float;precision highp int;struct _S0{vec4 pos;vec2 uv;};out vec2 uv;_S0 vs_impl(uint vi){float _cse0 =((float((vi & 1u))* 4.0)- 1.0);float _cse1 =((float((vi >> 1u))* 4.0)- 1.0);return _S0(vec4(_cse0,_cse1,0.0,1.0),vec2(((_cse0 * 0.5)+ 0.5),((_cse1 * 0.5)+ 0.5)));}void main(){_S0 _out = vs_impl(uint(gl_VertexID));gl_Position = _out.pos;uv = _out.uv;}#version 300 esprecision highp float;precision highp int;
struct VsOut { vec4 pos; vec2 uv;};out vec2 uv;
VsOut vs_impl(uint vi) { float _cse0 = ((float((vi & 1u)) * 4.0) - 1.0); float _cse1 = ((float((vi >> 1u)) * 4.0) - 1.0); return VsOut(vec4(_cse0, _cse1, 0.0, 1.0), vec2(((_cse0 * 0.5) + 0.5), ((_cse1 * 0.5) + 0.5)));}
void main() { VsOut _out = vs_impl(uint(gl_VertexID)); gl_Position = _out.pos; uv = _out.uv;}#version 300 esprecision highp float;precision highp int;struct VsOut{vec4 pos;vec2 uv;};out vec2 uv;VsOut vs_impl(uint vi){float _cse0 =((float((vi & 1u))* 4.0)- 1.0);float _cse1 =((float((vi >> 1u))* 4.0)- 1.0);return VsOut(vec4(_cse0,_cse1,0.0,1.0),vec2(((_cse0 * 0.5)+ 0.5),((_cse1 * 0.5)+ 0.5)));}void main(){VsOut _out = vs_impl(uint(gl_VertexID));gl_Position = _out.pos;uv = _out.uv;}#version 300 esprecision highp float;precision highp int;
struct _S0 { vec4 pos; vec2 uv;};out vec2 uv;
_S0 vs_impl(uint vi) { float _cse0 = ((float((vi & 1u)) * 4.0) - 1.0); float _cse1 = ((float((vi >> 1u)) * 4.0) - 1.0); return _S0(vec4(_cse0, _cse1, 0.0, 1.0), vec2(((_cse0 * 0.5) + 0.5), ((_cse1 * 0.5) + 0.5)));}
void main() { _S0 _out = vs_impl(uint(gl_VertexID)); gl_Position = _out.pos; uv = _out.uv;}#version 300 esprecision highp float;precision highp int;struct _S0{vec4 pos;vec2 uv;};out vec2 uv;_S0 vs_impl(uint vi){float _cse0 =((float((vi & 1u))* 4.0)- 1.0);float _cse1 =((float((vi >> 1u))* 4.0)- 1.0);return _S0(vec4(_cse0,_cse1,0.0,1.0),vec2(((_cse0 * 0.5)+ 0.5),((_cse1 * 0.5)+ 0.5)));}void main(){_S0 _out = vs_impl(uint(gl_VertexID));gl_Position = _out.pos;uv = _out.uv;}#version 300 esprecision highp float;precision highp int;
struct VsOut { vec4 pos; vec2 uv;};layout(std140) uniform Uniforms { float time; vec2 resolution; float segments;} U;float hash(vec2 p);float noise(vec2 p);float fbm(vec2 p);vec3 palette(float t);float hash(vec2 p) { return fract((sin(dot(p, vec2(127.1, 311.7))) * 43758.5453));}
float noise(vec2 p) { vec2 _cse0 = vec2(3.0); vec2 _v0 = floor(p); vec2 _v1 = fract(p); float _lc0 = ((_v1 * _v1) * (_cse0 - (_v1 * 2.0))).x; return mix(mix(hash(_v0), hash((_v0 + vec2(1.0, 0.0))), _lc0), mix(hash((_v0 + vec2(0.0, 1.0))), hash((_v0 + vec2(1.0, 1.0))), _lc0), ((_v1 * _v1) * (_cse0 - (_v1 * 2.0))).y);}
float fbm(vec2 p) { return ((((noise(p) * 0.5) + (noise((p * 2.02)) * 0.25)) + (noise((p * 4.08)) * 0.125)) + (noise((p * 8.2)) * 0.0625));}
vec3 palette(float t) { return (vec3(0.5) + (cos(((t + vec3(0.0, 0.33, 0.67)) * 6.283)) * 0.5));}in vec2 uv;layout(location = 0) out vec4 _ret;
vec4 fs_impl(VsOut vo) { vec2 _cse0 = vec2((((vo.uv.x * 2.0) - 1.0) * (U.resolution.x / U.resolution.y)), ((vo.uv.y * 2.0) - 1.0)); float _v0 = length(_cse0); float _v1 = atan(_cse0.y, _cse0.x); float _v2 = (6.2831853 / U.segments); float _v3 = abs((mod(_v1, _v2) - (_v2 * 0.5))); float _v4 = fbm((((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09))))); return vec4(((palette(((((_v4 * 0.7) + (((sin(((_v0 * 9.0) - (U.time * 0.8))) * 0.5) + 0.5) * 0.15)) + (_v0 * 0.3)) - (U.time * 0.03))) * ((_v4 * 0.9) + 0.35)) * (1.0 - smoothstep(0.55, 1.25, _v0))), 1.0);}
void main() { VsOut vo; vo.pos = gl_FragCoord; vo.uv = uv; _ret = fs_impl(vo);}#version 300 esprecision highp float;precision highp int;struct VsOut{vec4 pos;vec2 uv;};layout(std140)uniform Uniforms{float time;vec2 resolution;float segments;}U;float hash(vec2 p);float noise(vec2 p);float fbm(vec2 p);vec3 palette(float t);float hash(vec2 p){return fract((sin(dot(p,vec2(127.1,311.7)))* 43758.5453));}float noise(vec2 p){vec2 _cse0 = vec2(3.0);vec2 _v0 = floor(p);vec2 _v1 = fract(p);float _lc0 =((_v1 * _v1)*(_cse0 -(_v1 * 2.0))).x;return mix(mix(hash(_v0),hash((_v0 + vec2(1.0,0.0))),_lc0),mix(hash((_v0 + vec2(0.0,1.0))),hash((_v0 + vec2(1.0,1.0))),_lc0),((_v1 * _v1)*(_cse0 -(_v1 * 2.0))).y);}float fbm(vec2 p){return((((noise(p)* 0.5)+(noise((p * 2.02))* 0.25))+(noise((p * 4.08))* 0.125))+(noise((p * 8.2))* 0.0625));}vec3 palette(float t){return(vec3(0.5)+(cos(((t + vec3(0.0,0.33,0.67))* 6.283))* 0.5));}in vec2 uv;layout(location = 0)out vec4 _ret;vec4 fs_impl(VsOut vo){vec2 _cse0 = vec2((((vo.uv.x * 2.0)- 1.0)*(U.resolution.x / U.resolution.y)),((vo.uv.y * 2.0)- 1.0));float _v0 = length(_cse0);float _v1 = atan(_cse0.y,_cse0.x);float _v2 =(6.2831853 / U.segments);float _v3 = abs((mod(_v1,_v2)-(_v2 * 0.5)));float _v4 = fbm((((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09)))));return vec4(((palette(((((_v4 * 0.7)+(((sin(((_v0 * 9.0)-(U.time * 0.8)))* 0.5)+ 0.5)* 0.15))+(_v0 * 0.3))-(U.time * 0.03)))*((_v4 * 0.9)+ 0.35))*(1.0 - smoothstep(0.55,1.25,_v0))),1.0);}void main(){VsOut vo;vo.pos = gl_FragCoord;vo.uv = uv;_ret = fs_impl(vo);}#version 300 esprecision highp float;precision highp int;
struct _S0 { vec4 pos; vec2 uv;};layout(std140) uniform Uniforms { float time; vec2 resolution; float segments;} U;float _f0(vec2 p);float _f1(vec2 p);float _f2(vec2 p);vec3 _f3(float t);float _f0(vec2 p) { return fract((sin(dot(p, vec2(127.1, 311.7))) * 43758.5453));}
float _f1(vec2 p) { vec2 _cse0 = vec2(3.0); vec2 _v0 = floor(p); vec2 _v1 = fract(p); float _lc0 = ((_v1 * _v1) * (_cse0 - (_v1 * 2.0))).x; return mix(mix(_f0(_v0), _f0((_v0 + vec2(1.0, 0.0))), _lc0), mix(_f0((_v0 + vec2(0.0, 1.0))), _f0((_v0 + vec2(1.0, 1.0))), _lc0), ((_v1 * _v1) * (_cse0 - (_v1 * 2.0))).y);}
float _f2(vec2 p) { return ((((_f1(p) * 0.5) + (_f1((p * 2.02)) * 0.25)) + (_f1((p * 4.08)) * 0.125)) + (_f1((p * 8.2)) * 0.0625));}
vec3 _f3(float t) { return (vec3(0.5) + (cos(((t + vec3(0.0, 0.33, 0.67)) * 6.283)) * 0.5));}in vec2 uv;layout(location = 0) out vec4 _ret;
vec4 fs_impl(_S0 vo) { vec2 _cse0 = vec2((((vo.uv.x * 2.0) - 1.0) * (U.resolution.x / U.resolution.y)), ((vo.uv.y * 2.0) - 1.0)); float _v0 = length(_cse0); float _v1 = atan(_cse0.y, _cse0.x); float _v2 = (6.2831853 / U.segments); float _v3 = abs((mod(_v1, _v2) - (_v2 * 0.5))); float _v4 = _f2((((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09))))); return vec4(((_f3(((((_v4 * 0.7) + (((sin(((_v0 * 9.0) - (U.time * 0.8))) * 0.5) + 0.5) * 0.15)) + (_v0 * 0.3)) - (U.time * 0.03))) * ((_v4 * 0.9) + 0.35)) * (1.0 - smoothstep(0.55, 1.25, _v0))), 1.0);}
void main() { _S0 vo; vo.pos = gl_FragCoord; vo.uv = uv; _ret = fs_impl(vo);}#version 300 esprecision highp float;precision highp int;struct _S0{vec4 pos;vec2 uv;};layout(std140)uniform Uniforms{float time;vec2 resolution;float segments;}U;float _f0(vec2 p);float _f1(vec2 p);float _f2(vec2 p);vec3 _f3(float t);float _f0(vec2 p){return fract((sin(dot(p,vec2(127.1,311.7)))* 43758.5453));}float _f1(vec2 p){vec2 _cse0 = vec2(3.0);vec2 _v0 = floor(p);vec2 _v1 = fract(p);float _lc0 =((_v1 * _v1)*(_cse0 -(_v1 * 2.0))).x;return mix(mix(_f0(_v0),_f0((_v0 + vec2(1.0,0.0))),_lc0),mix(_f0((_v0 + vec2(0.0,1.0))),_f0((_v0 + vec2(1.0,1.0))),_lc0),((_v1 * _v1)*(_cse0 -(_v1 * 2.0))).y);}float _f2(vec2 p){return((((_f1(p)* 0.5)+(_f1((p * 2.02))* 0.25))+(_f1((p * 4.08))* 0.125))+(_f1((p * 8.2))* 0.0625));}vec3 _f3(float t){return(vec3(0.5)+(cos(((t + vec3(0.0,0.33,0.67))* 6.283))* 0.5));}in vec2 uv;layout(location = 0)out vec4 _ret;vec4 fs_impl(_S0 vo){vec2 _cse0 = vec2((((vo.uv.x * 2.0)- 1.0)*(U.resolution.x / U.resolution.y)),((vo.uv.y * 2.0)- 1.0));float _v0 = length(_cse0);float _v1 = atan(_cse0.y,_cse0.x);float _v2 =(6.2831853 / U.segments);float _v3 = abs((mod(_v1,_v2)-(_v2 * 0.5)));float _v4 = _f2((((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09)))));return vec4(((_f3(((((_v4 * 0.7)+(((sin(((_v0 * 9.0)-(U.time * 0.8)))* 0.5)+ 0.5)* 0.15))+(_v0 * 0.3))-(U.time * 0.03)))*((_v4 * 0.9)+ 0.35))*(1.0 - smoothstep(0.55,1.25,_v0))),1.0);}void main(){_S0 vo;vo.pos = gl_FragCoord;vo.uv = uv;_ret = fs_impl(vo);}#version 300 esprecision highp float;precision highp int;
struct VsOut { vec4 pos; vec2 uv;};layout(std140) uniform Uniforms { float time; vec2 resolution; float segments;} U;in vec2 uv;layout(location = 0) out vec4 _ret;
vec4 fs_impl(VsOut vo) { vec2 _cse0 = vec2((((vo.uv.x * 2.0) - 1.0) * (U.resolution.x / U.resolution.y)), ((vo.uv.y * 2.0) - 1.0)); float _v0 = length(_cse0); float _v1 = atan(_cse0.y, _cse0.x); float _v2 = (6.2831853 / U.segments); float _v3 = abs((mod(_v1, _v2) - (_v2 * 0.5))); vec2 _inl0_a0 = (((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09)))); vec2 _inl0_cse0 = vec2(3.0); vec2 _inl0_v0 = floor(_inl0_a0); vec2 _inl0_v1 = fract(_inl0_a0); float _inl0_lc0 = ((_inl0_v1 * _inl0_v1) * (_inl0_cse0 - (_inl0_v1 * 2.0))).x; float _inl0_ret = mix(mix(fract((sin(dot(_inl0_v0, vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl0_v0 + vec2(1.0, 0.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl0_lc0), mix(fract((sin(dot((_inl0_v0 + vec2(0.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl0_v0 + vec2(1.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl0_lc0), ((_inl0_v1 * _inl0_v1) * (_inl0_cse0 - (_inl0_v1 * 2.0))).y); vec2 _inl1_a0 = ((((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09)))) * 2.02); vec2 _inl1_cse0 = vec2(3.0); vec2 _inl1_v0 = floor(_inl1_a0); vec2 _inl1_v1 = fract(_inl1_a0); float _inl1_lc0 = ((_inl1_v1 * _inl1_v1) * (_inl1_cse0 - (_inl1_v1 * 2.0))).x; float _inl1_ret = mix(mix(fract((sin(dot(_inl1_v0, vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl1_v0 + vec2(1.0, 0.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl1_lc0), mix(fract((sin(dot((_inl1_v0 + vec2(0.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl1_v0 + vec2(1.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl1_lc0), ((_inl1_v1 * _inl1_v1) * (_inl1_cse0 - (_inl1_v1 * 2.0))).y); vec2 _inl2_a0 = ((((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09)))) * 4.08); vec2 _inl2_cse0 = vec2(3.0); vec2 _inl2_v0 = floor(_inl2_a0); vec2 _inl2_v1 = fract(_inl2_a0); float _inl2_lc0 = ((_inl2_v1 * _inl2_v1) * (_inl2_cse0 - (_inl2_v1 * 2.0))).x; float _inl2_ret = mix(mix(fract((sin(dot(_inl2_v0, vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl2_v0 + vec2(1.0, 0.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl2_lc0), mix(fract((sin(dot((_inl2_v0 + vec2(0.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl2_v0 + vec2(1.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl2_lc0), ((_inl2_v1 * _inl2_v1) * (_inl2_cse0 - (_inl2_v1 * 2.0))).y); vec2 _inl3_a0 = ((((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09)))) * 8.2); vec2 _inl3_cse0 = vec2(3.0); vec2 _inl3_v0 = floor(_inl3_a0); vec2 _inl3_v1 = fract(_inl3_a0); float _inl3_lc0 = ((_inl3_v1 * _inl3_v1) * (_inl3_cse0 - (_inl3_v1 * 2.0))).x; float _inl3_ret = mix(mix(fract((sin(dot(_inl3_v0, vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl3_v0 + vec2(1.0, 0.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl3_lc0), mix(fract((sin(dot((_inl3_v0 + vec2(0.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl3_v0 + vec2(1.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl3_lc0), ((_inl3_v1 * _inl3_v1) * (_inl3_cse0 - (_inl3_v1 * 2.0))).y); float _v4 = ((((_inl0_ret * 0.5) + (_inl1_ret * 0.25)) + (_inl2_ret * 0.125)) + (_inl3_ret * 0.0625)); return vec4((((vec3(0.5) + (cos(((((((_v4 * 0.7) + (((sin(((_v0 * 9.0) - (U.time * 0.8))) * 0.5) + 0.5) * 0.15)) + (_v0 * 0.3)) - (U.time * 0.03)) + vec3(0.0, 0.33, 0.67)) * 6.283)) * 0.5)) * ((_v4 * 0.9) + 0.35)) * (1.0 - smoothstep(0.55, 1.25, _v0))), 1.0);}
void main() { VsOut vo; vo.pos = gl_FragCoord; vo.uv = uv; _ret = fs_impl(vo);}#version 300 esprecision highp float;precision highp int;struct VsOut{vec4 pos;vec2 uv;};layout(std140)uniform Uniforms{float time;vec2 resolution;float segments;}U;in vec2 uv;layout(location = 0)out vec4 _ret;vec4 fs_impl(VsOut vo){vec2 _cse0 = vec2((((vo.uv.x * 2.0)- 1.0)*(U.resolution.x / U.resolution.y)),((vo.uv.y * 2.0)- 1.0));float _v0 = length(_cse0);float _v1 = atan(_cse0.y,_cse0.x);float _v2 =(6.2831853 / U.segments);float _v3 = abs((mod(_v1,_v2)-(_v2 * 0.5)));vec2 _inl0_a0 =(((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09))));vec2 _inl0_cse0 = vec2(3.0);vec2 _inl0_v0 = floor(_inl0_a0);vec2 _inl0_v1 = fract(_inl0_a0);float _inl0_lc0 =((_inl0_v1 * _inl0_v1)*(_inl0_cse0 -(_inl0_v1 * 2.0))).x;float _inl0_ret = mix(mix(fract((sin(dot(_inl0_v0,vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl0_v0 + vec2(1.0,0.0)),vec2(127.1,311.7)))* 43758.5453)),_inl0_lc0),mix(fract((sin(dot((_inl0_v0 + vec2(0.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl0_v0 + vec2(1.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),_inl0_lc0),((_inl0_v1 * _inl0_v1)*(_inl0_cse0 -(_inl0_v1 * 2.0))).y);vec2 _inl1_a0 =((((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09))))* 2.02);vec2 _inl1_cse0 = vec2(3.0);vec2 _inl1_v0 = floor(_inl1_a0);vec2 _inl1_v1 = fract(_inl1_a0);float _inl1_lc0 =((_inl1_v1 * _inl1_v1)*(_inl1_cse0 -(_inl1_v1 * 2.0))).x;float _inl1_ret = mix(mix(fract((sin(dot(_inl1_v0,vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl1_v0 + vec2(1.0,0.0)),vec2(127.1,311.7)))* 43758.5453)),_inl1_lc0),mix(fract((sin(dot((_inl1_v0 + vec2(0.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl1_v0 + vec2(1.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),_inl1_lc0),((_inl1_v1 * _inl1_v1)*(_inl1_cse0 -(_inl1_v1 * 2.0))).y);vec2 _inl2_a0 =((((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09))))* 4.08);vec2 _inl2_cse0 = vec2(3.0);vec2 _inl2_v0 = floor(_inl2_a0);vec2 _inl2_v1 = fract(_inl2_a0);float _inl2_lc0 =((_inl2_v1 * _inl2_v1)*(_inl2_cse0 -(_inl2_v1 * 2.0))).x;float _inl2_ret = mix(mix(fract((sin(dot(_inl2_v0,vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl2_v0 + vec2(1.0,0.0)),vec2(127.1,311.7)))* 43758.5453)),_inl2_lc0),mix(fract((sin(dot((_inl2_v0 + vec2(0.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl2_v0 + vec2(1.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),_inl2_lc0),((_inl2_v1 * _inl2_v1)*(_inl2_cse0 -(_inl2_v1 * 2.0))).y);vec2 _inl3_a0 =((((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09))))* 8.2);vec2 _inl3_cse0 = vec2(3.0);vec2 _inl3_v0 = floor(_inl3_a0);vec2 _inl3_v1 = fract(_inl3_a0);float _inl3_lc0 =((_inl3_v1 * _inl3_v1)*(_inl3_cse0 -(_inl3_v1 * 2.0))).x;float _inl3_ret = mix(mix(fract((sin(dot(_inl3_v0,vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl3_v0 + vec2(1.0,0.0)),vec2(127.1,311.7)))* 43758.5453)),_inl3_lc0),mix(fract((sin(dot((_inl3_v0 + vec2(0.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl3_v0 + vec2(1.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),_inl3_lc0),((_inl3_v1 * _inl3_v1)*(_inl3_cse0 -(_inl3_v1 * 2.0))).y);float _v4 =((((_inl0_ret * 0.5)+(_inl1_ret * 0.25))+(_inl2_ret * 0.125))+(_inl3_ret * 0.0625));return vec4((((vec3(0.5)+(cos(((((((_v4 * 0.7)+(((sin(((_v0 * 9.0)-(U.time * 0.8)))* 0.5)+ 0.5)* 0.15))+(_v0 * 0.3))-(U.time * 0.03))+ vec3(0.0,0.33,0.67))* 6.283))* 0.5))*((_v4 * 0.9)+ 0.35))*(1.0 - smoothstep(0.55,1.25,_v0))),1.0);}void main(){VsOut vo;vo.pos = gl_FragCoord;vo.uv = uv;_ret = fs_impl(vo);}#version 300 esprecision highp float;precision highp int;
struct _S0 { vec4 pos; vec2 uv;};layout(std140) uniform Uniforms { float time; vec2 resolution; float segments;} U;in vec2 uv;layout(location = 0) out vec4 _ret;
vec4 fs_impl(_S0 vo) { vec2 _cse0 = vec2((((vo.uv.x * 2.0) - 1.0) * (U.resolution.x / U.resolution.y)), ((vo.uv.y * 2.0) - 1.0)); float _v0 = length(_cse0); float _v1 = atan(_cse0.y, _cse0.x); float _v2 = (6.2831853 / U.segments); float _v3 = abs((mod(_v1, _v2) - (_v2 * 0.5))); vec2 _inl0_a0 = (((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09)))); vec2 _inl0_cse0 = vec2(3.0); vec2 _inl0_v0 = floor(_inl0_a0); vec2 _inl0_v1 = fract(_inl0_a0); float _inl0_lc0 = ((_inl0_v1 * _inl0_v1) * (_inl0_cse0 - (_inl0_v1 * 2.0))).x; float _inl0_ret = mix(mix(fract((sin(dot(_inl0_v0, vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl0_v0 + vec2(1.0, 0.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl0_lc0), mix(fract((sin(dot((_inl0_v0 + vec2(0.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl0_v0 + vec2(1.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl0_lc0), ((_inl0_v1 * _inl0_v1) * (_inl0_cse0 - (_inl0_v1 * 2.0))).y); vec2 _inl1_a0 = ((((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09)))) * 2.02); vec2 _inl1_cse0 = vec2(3.0); vec2 _inl1_v0 = floor(_inl1_a0); vec2 _inl1_v1 = fract(_inl1_a0); float _inl1_lc0 = ((_inl1_v1 * _inl1_v1) * (_inl1_cse0 - (_inl1_v1 * 2.0))).x; float _inl1_ret = mix(mix(fract((sin(dot(_inl1_v0, vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl1_v0 + vec2(1.0, 0.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl1_lc0), mix(fract((sin(dot((_inl1_v0 + vec2(0.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl1_v0 + vec2(1.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl1_lc0), ((_inl1_v1 * _inl1_v1) * (_inl1_cse0 - (_inl1_v1 * 2.0))).y); vec2 _inl2_a0 = ((((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09)))) * 4.08); vec2 _inl2_cse0 = vec2(3.0); vec2 _inl2_v0 = floor(_inl2_a0); vec2 _inl2_v1 = fract(_inl2_a0); float _inl2_lc0 = ((_inl2_v1 * _inl2_v1) * (_inl2_cse0 - (_inl2_v1 * 2.0))).x; float _inl2_ret = mix(mix(fract((sin(dot(_inl2_v0, vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl2_v0 + vec2(1.0, 0.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl2_lc0), mix(fract((sin(dot((_inl2_v0 + vec2(0.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl2_v0 + vec2(1.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl2_lc0), ((_inl2_v1 * _inl2_v1) * (_inl2_cse0 - (_inl2_v1 * 2.0))).y); vec2 _inl3_a0 = ((((vec2(cos(_v3), sin(_v3)) * _v0) * 3.0) + vec2((U.time * 0.12), (-(U.time * 0.09)))) * 8.2); vec2 _inl3_cse0 = vec2(3.0); vec2 _inl3_v0 = floor(_inl3_a0); vec2 _inl3_v1 = fract(_inl3_a0); float _inl3_lc0 = ((_inl3_v1 * _inl3_v1) * (_inl3_cse0 - (_inl3_v1 * 2.0))).x; float _inl3_ret = mix(mix(fract((sin(dot(_inl3_v0, vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl3_v0 + vec2(1.0, 0.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl3_lc0), mix(fract((sin(dot((_inl3_v0 + vec2(0.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), fract((sin(dot((_inl3_v0 + vec2(1.0, 1.0)), vec2(127.1, 311.7))) * 43758.5453)), _inl3_lc0), ((_inl3_v1 * _inl3_v1) * (_inl3_cse0 - (_inl3_v1 * 2.0))).y); float _v4 = ((((_inl0_ret * 0.5) + (_inl1_ret * 0.25)) + (_inl2_ret * 0.125)) + (_inl3_ret * 0.0625)); return vec4((((vec3(0.5) + (cos(((((((_v4 * 0.7) + (((sin(((_v0 * 9.0) - (U.time * 0.8))) * 0.5) + 0.5) * 0.15)) + (_v0 * 0.3)) - (U.time * 0.03)) + vec3(0.0, 0.33, 0.67)) * 6.283)) * 0.5)) * ((_v4 * 0.9) + 0.35)) * (1.0 - smoothstep(0.55, 1.25, _v0))), 1.0);}
void main() { _S0 vo; vo.pos = gl_FragCoord; vo.uv = uv; _ret = fs_impl(vo);}#version 300 esprecision highp float;precision highp int;struct _S0{vec4 pos;vec2 uv;};layout(std140)uniform Uniforms{float time;vec2 resolution;float segments;}U;in vec2 uv;layout(location = 0)out vec4 _ret;vec4 fs_impl(_S0 vo){vec2 _cse0 = vec2((((vo.uv.x * 2.0)- 1.0)*(U.resolution.x / U.resolution.y)),((vo.uv.y * 2.0)- 1.0));float _v0 = length(_cse0);float _v1 = atan(_cse0.y,_cse0.x);float _v2 =(6.2831853 / U.segments);float _v3 = abs((mod(_v1,_v2)-(_v2 * 0.5)));vec2 _inl0_a0 =(((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09))));vec2 _inl0_cse0 = vec2(3.0);vec2 _inl0_v0 = floor(_inl0_a0);vec2 _inl0_v1 = fract(_inl0_a0);float _inl0_lc0 =((_inl0_v1 * _inl0_v1)*(_inl0_cse0 -(_inl0_v1 * 2.0))).x;float _inl0_ret = mix(mix(fract((sin(dot(_inl0_v0,vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl0_v0 + vec2(1.0,0.0)),vec2(127.1,311.7)))* 43758.5453)),_inl0_lc0),mix(fract((sin(dot((_inl0_v0 + vec2(0.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl0_v0 + vec2(1.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),_inl0_lc0),((_inl0_v1 * _inl0_v1)*(_inl0_cse0 -(_inl0_v1 * 2.0))).y);vec2 _inl1_a0 =((((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09))))* 2.02);vec2 _inl1_cse0 = vec2(3.0);vec2 _inl1_v0 = floor(_inl1_a0);vec2 _inl1_v1 = fract(_inl1_a0);float _inl1_lc0 =((_inl1_v1 * _inl1_v1)*(_inl1_cse0 -(_inl1_v1 * 2.0))).x;float _inl1_ret = mix(mix(fract((sin(dot(_inl1_v0,vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl1_v0 + vec2(1.0,0.0)),vec2(127.1,311.7)))* 43758.5453)),_inl1_lc0),mix(fract((sin(dot((_inl1_v0 + vec2(0.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl1_v0 + vec2(1.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),_inl1_lc0),((_inl1_v1 * _inl1_v1)*(_inl1_cse0 -(_inl1_v1 * 2.0))).y);vec2 _inl2_a0 =((((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09))))* 4.08);vec2 _inl2_cse0 = vec2(3.0);vec2 _inl2_v0 = floor(_inl2_a0);vec2 _inl2_v1 = fract(_inl2_a0);float _inl2_lc0 =((_inl2_v1 * _inl2_v1)*(_inl2_cse0 -(_inl2_v1 * 2.0))).x;float _inl2_ret = mix(mix(fract((sin(dot(_inl2_v0,vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl2_v0 + vec2(1.0,0.0)),vec2(127.1,311.7)))* 43758.5453)),_inl2_lc0),mix(fract((sin(dot((_inl2_v0 + vec2(0.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl2_v0 + vec2(1.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),_inl2_lc0),((_inl2_v1 * _inl2_v1)*(_inl2_cse0 -(_inl2_v1 * 2.0))).y);vec2 _inl3_a0 =((((vec2(cos(_v3),sin(_v3))* _v0)* 3.0)+ vec2((U.time * 0.12),(-(U.time * 0.09))))* 8.2);vec2 _inl3_cse0 = vec2(3.0);vec2 _inl3_v0 = floor(_inl3_a0);vec2 _inl3_v1 = fract(_inl3_a0);float _inl3_lc0 =((_inl3_v1 * _inl3_v1)*(_inl3_cse0 -(_inl3_v1 * 2.0))).x;float _inl3_ret = mix(mix(fract((sin(dot(_inl3_v0,vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl3_v0 + vec2(1.0,0.0)),vec2(127.1,311.7)))* 43758.5453)),_inl3_lc0),mix(fract((sin(dot((_inl3_v0 + vec2(0.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),fract((sin(dot((_inl3_v0 + vec2(1.0,1.0)),vec2(127.1,311.7)))* 43758.5453)),_inl3_lc0),((_inl3_v1 * _inl3_v1)*(_inl3_cse0 -(_inl3_v1 * 2.0))).y);float _v4 =((((_inl0_ret * 0.5)+(_inl1_ret * 0.25))+(_inl2_ret * 0.125))+(_inl3_ret * 0.0625));return vec4((((vec3(0.5)+(cos(((((((_v4 * 0.7)+(((sin(((_v0 * 9.0)-(U.time * 0.8)))* 0.5)+ 0.5)* 0.15))+(_v0 * 0.3))-(U.time * 0.03))+ vec3(0.0,0.33,0.67))* 6.283))* 0.5))*((_v4 * 0.9)+ 0.35))*(1.0 - smoothstep(0.55,1.25,_v0))),1.0);}void main(){_S0 vo;vo.pos = gl_FragCoord;vo.uv = uv;_ret = fs_impl(vo);}