cmd line: slr -i jgwtf.fx -o jgwtf.png -x -s 1097 Draws frame 1097 @ 60fps for the specific visual The shader file: #define PI 3.14159265358979 #define beat 592. #define chaos_factor 1.22 #define zoom_factor 1. uniform float iTime; uniform vec2 iResolution; vec2 rotate(vec2 uv, float r) { return uv.x * vec2(cos(r), -sin(r)) + uv.y * vec2(sin(r), cos(r)); } float hash12(vec2 p) { vec3 p3 = fract(vec3(p.xyx) * .1031); p3 += dot(p3, p3.yzx + 33.33); return fract((p3.x + p3.y) * p3.z); } vec2 polar(vec2 uv, vec2 center) { vec2 diff = uv - center; return vec2(distance(uv, center), atan(diff.y, diff.x)); } float randomwave(vec2 uv, vec2 rf) { float rfac = hash12(rf); float rbeat = mod(beat + iTime * 0.5, 300.); uv.y += rbeat * 0.0314159 * chaos_factor; return sin(uv.x * sin(uv.y * pow(rfac * 2., 2.)) * 30. * rfac) * sin(uv.y * sin(uv.x * sin(rbeat * 0.31415 * chaos_factor) * rfac) + rbeat) * 1.; } float trisin(float v) { return abs(1. - abs(1. - mod(v, PI) / (PI * .5))) * 2. - 1.; } float sqsin(float v) { return smoothstep(-0.5,0.5, sin(v)); } float randomwave2(vec2 uv, vec2 rf) { float rbeat = beat + iTime * 0.5 - 100.; float rfac = hash12(rf); uv.y += rbeat * 0.0314159 * chaos_factor; return trisin(uv.x * trisin(uv.y * pow(rfac * 2., 2.)) * 30. * rfac) * trisin(uv.y * sqsin(uv.x * sin(rbeat * 0.31415 * chaos_factor) * rfac) + rbeat) * 1.; } float wackbg2(vec2 uv) { vec2 puv = polar(uv * zoom_factor, vec2(1.5)); puv.x *= 0.5; float rw = randomwave2(puv, vec2(0)); for(int i = 0; i < 8; i++) { rw += randomwave2(puv, vec2(i) * 100.); } return smoothstep(0.5, 0.501,rw); } void main() { vec2 uv = vec2(gl_TexCoord[0].x, (1. - gl_TexCoord[0].y) * iResolution.y / iResolution.x); float discolor = 0.2; float dsc = smoothstep(0.4,0.401,randomwave(uv * 1.5 + sin(beat + iTime * 0.1), vec2(300.))) * discolor + discolor * 2.; vec3 bgcol = mix(vec3(.1), vec3(uv.x,0.2,1.-uv.x), dsc); vec3 fgcol = mix(vec3(.95), vec3(1.-uv.x,0.95,uv.x), dsc); float wack = wackbg2(uv); // Output to screen gl_FragColor = vec4(mix(bgcol, fgcol, wack),1.0); }