runnable fragment

Aurora Veil

stronghold-curated generative glsl runnable fragment MIT
code snippet
precision mediump float;
uniform vec2 resolution;
uniform float time;
float hash(vec2 p){ return fract(sin(dot(p, vec2(127.1,311.7))) * 43758.5453123); }
float noise(vec2 p){ vec2 i=floor(p), f=fract(p); f=f*f*(3.0-2.0*f); return mix(mix(hash(i),hash(i+vec2(1.0,0.0)),f.x),mix(hash(i+vec2(0.0,1.0)),hash(i+vec2(1.0,1.0)),f.x),f.y); }
float fbm(vec2 p){ float v=0.0,a=0.5; for(int i=0;i<5;i++){ v+=a*noise(p); p*=2.0; a*=0.5; } return v; }
void main(){
  vec2 uv=gl_FragCoord.xy/resolution.xy;
  float band=0.0;
  for(int i=0;i<4;i++){
    float fi=float(i);
    float y=0.34+0.12*sin(uv.x*5.0+time*(0.35+fi*0.08)+fi);
    float n=fbm(vec2(uv.x*3.0+time*0.06, uv.y*2.0+fi));
    band += smoothstep(0.25,0.0,abs(uv.y-y-n*0.18))*0.35;
runnable fragment

Glitch Scanline Bloom

stronghold-curated generative glsl runnable fragment MIT
code snippet
precision mediump float;
uniform vec2 resolution;
uniform float time;
float hash(float n){return fract(sin(n)*43758.5453);} 
void main(){
 vec2 uv=gl_FragCoord.xy/resolution.xy;
 float row=floor(uv.y*90.0);
 float shift=(hash(row+floor(time*12.0))*2.0-1.0)*0.035*step(0.86,hash(row));
 vec2 p=uv+vec2(shift,0.0);
 float bars=sin(p.x*24.0+time*2.0)+sin(p.y*19.0-time*1.5);
 float scan=0.72+0.28*sin(uv.y*resolution.y*3.14159);
 vec3 col=0.5+0.5*cos(bars+vec3(0.0,2.0,4.0)+time);
 float mask=smoothstep(0.65,1.0,abs(sin(p.x*8.0))*abs(cos(p.y*7.0)));
 gl_FragColor=vec4(col*mask*scan,1.0);
runnable fragment

Lava Lamp Cells

stronghold-curated plasma glsl runnable fragment MIT
code snippet
precision mediump float;
uniform vec2 resolution;
uniform float time;
void main(){
  vec2 uv=(gl_FragCoord.xy*2.0-resolution.xy)/min(resolution.x,resolution.y);
  float field=0.0;
  for(int i=0;i<7;i++){
    float fi=float(i);
    vec2 c=vec2(sin(time*(0.25+fi*0.04)+fi*1.8), cos(time*(0.31+fi*0.03)+fi*2.4))*0.62;
    field += (0.05+0.015*sin(time+fi))/max(0.015, dot(uv-c,uv-c));
  }
  float lava=smoothstep(0.8,2.2,field);
  vec3 col=mix(vec3(0.04,0.0,0.02), vec3(1.0,0.18,0.02), lava);
  col += vec3(1.0,0.75,0.12)*smoothstep(2.6,5.0,field);
runnable fragment

Moire Pulse Rings

stronghold-curated generative glsl runnable fragment MIT
code snippet
precision mediump float;
uniform vec2 resolution;
uniform float time;
void main() {
  vec2 uv = (gl_FragCoord.xy - 0.5 * resolution.xy) / min(resolution.x, resolution.y);
  vec2 a = uv + 0.18 * vec2(sin(time * 0.5), cos(time * 0.4));
  vec2 b = uv - 0.16 * vec2(cos(time * 0.35), sin(time * 0.55));
  float r1 = sin(length(a) * 72.0 - time * 3.0);
  float r2 = sin(length(b) * 69.0 + time * 2.4);
  float m = smoothstep(0.0, 0.08, abs(r1 - r2));
  vec3 color = mix(vec3(0.98,0.2,0.55), vec3(0.1,0.9,1.0), m);
  color *= 0.55 + 0.45 * sin(length(uv) * 8.0 - time);
  gl_FragColor = vec4(color, 1.0);
}
runnable fragment

Ocean Caustic Mesh

stronghold-curated material glsl runnable fragment MIT
code snippet
precision mediump float;
uniform vec2 resolution;
uniform float time;
void main(){
  vec2 uv=gl_FragCoord.xy/resolution.xy; uv.x*=resolution.x/resolution.y;
  float c=0.0;
  for(int i=0;i<5;i++){
    float fi=float(i)+1.0;
    vec2 p=uv*fi*2.4 + vec2(sin(time*0.25*fi), cos(time*0.18*fi));
    c += abs(sin(p.x*3.14159 + sin(p.y*2.2+time))) / fi;
    c += abs(sin(p.y*3.14159 + cos(p.x*2.0-time*0.7))) / fi;
  }
  c=pow(1.0-smoothstep(0.8,1.45,c/2.4),3.0);
  vec3 water=vec3(0.0,0.18,0.28)+vec3(0.02,0.28,0.38)*uv.y;
runnable fragment

Plasma Bloom Field

stronghold-curated plasma glsl runnable fragment MIT
code snippet
precision mediump float;
uniform vec2 resolution;
uniform float time;
void main() {
  vec2 uv = (gl_FragCoord.xy * 2.0 - resolution.xy) / min(resolution.x, resolution.y);
  float v = 0.0;
  v += sin(uv.x * 4.0 + time * 1.2);
  v += sin((uv.y * 5.0 + time * 0.9));
  v += sin((uv.x + uv.y) * 3.0 + time * 1.7);
  v += sin(length(uv + vec2(sin(time * 0.4), cos(time * 0.3))) * 8.0 - time * 2.0);
  v = v * 0.25 + 0.5;
  vec3 color = 0.5 + 0.5 * cos(6.28318 * (vec3(0.00, 0.22, 0.45) + v + time * 0.035));
  gl_FragColor = vec4(color, 1.0);
}
runnable fragment

Procedural Starfield Drift

stronghold-curated generative glsl runnable fragment MIT
code snippet
precision mediump float;
uniform vec2 resolution;
uniform float time;
float hash(vec2 p){ return fract(sin(dot(p, vec2(127.1,311.7))) * 43758.5453); }
void main(){
 vec2 uv=(gl_FragCoord.xy-0.5*resolution.xy)/min(resolution.x,resolution.y);
 vec3 col=vec3(0.0);
 for(int layer=0; layer<4; layer++){
   float z=float(layer)+1.0;
   vec2 p=uv*z + vec2(0.0,time*(0.08+0.03*z));
   vec2 id=floor(p*18.0); vec2 f=fract(p*18.0)-0.5;
   float rnd=hash(id+z);
   float star=smoothstep(0.045*rnd,0.0,length(f));
   col += star * mix(vec3(0.45,0.7,1.0), vec3(1.0,0.85,0.55), rnd) / z;