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

Ink Diffusion Bloom

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(77.7,33.3)))*43758.5453);} 
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)),f.x),mix(hash(i+vec2(0,1)),hash(i+1.0),f.x),f.y);} 
float fbm(vec2 p){float v=0.0,a=0.5;for(int i=0;i<6;i++){v+=a*noise(p);p*=2.02;a*=0.52;}return v;}
void main(){
 vec2 uv=(gl_FragCoord.xy-0.5*resolution.xy)/min(resolution.x,resolution.y);
 float n=fbm(uv*3.0+vec2(time*0.04,-time*0.03));
 float rings=sin((length(uv)+n*0.28-time*0.04)*32.0);
 float ink=smoothstep(0.2,0.95,n+0.25*rings);
 vec3 paper=vec3(0.92,0.86,0.74);
 vec3 dye=mix(vec3(0.05,0.03,0.12),vec3(0.35,0.03,0.24),n);
 gl_FragColor=vec4(mix(paper,dye,ink),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

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

Raymarched Orb Field

stronghold-curated sdf glsl runnable fragment MIT
code snippet
precision mediump float;
uniform vec2 resolution;
uniform float time;
float map(vec3 p){float d=length(p)-0.45; for(int i=0;i<4;i++){float fi=float(i); vec3 c=vec3(sin(time*.4+fi)*1.1,cos(time*.3+fi*1.7)*.55,fi*.55-1.0); d=min(d,length(p-c)-.22);} return d;}
vec3 normal(vec3 p){vec2 e=vec2(.01,0);return normalize(vec3(map(p+e.xyy)-map(p-e.xyy),map(p+e.yxy)-map(p-e.yxy),map(p+e.yyx)-map(p-e.yyx)));}
void main(){
 vec2 uv=(gl_FragCoord.xy*2.0-resolution.xy)/min(resolution.x,resolution.y); vec3 ro=vec3(0,0,3.0), rd=normalize(vec3(uv,-1.8)); float t=0.0, glow=0.0;
 for(int i=0;i<48;i++){vec3 p=ro+rd*t; float d=map(p); glow+=0.015/(0.02+abs(d)); if(d<.005||t>6.0)break; t+=d*.65;}
 vec3 col=vec3(0.01,0.015,0.04)+glow*vec3(0.12,0.35,0.9); if(t<6.0){vec3 n=normal(ro+rd*t); col+=max(dot(n,normalize(vec3(.4,.7,.5))),0.0)*vec3(.8,.9,1.0);} gl_FragColor=vec4(col,1.0);
}