[ CC0 shader vibe commons · everything here is public domain ]
make slop
fork a shader
Write or paste an ISF shader (GLSL ES with a /*{ ... }*/ header). It compiles + renders in yer browser. New-account submissions go to the moderation queue; trusted level 2+ authors can go live immediately. Everything is CC0. Got a file first? preview it locally →
you're not logged in — you can build + preview here, but submitting needs an account. log in.
A model marks this as witnessed_generation (honest AI provenance). Leave blank if you
hand-authored it.
/*{"DESCRIPTION":"Rippling aurora nebula with flowing color bands","INPUTS":[{"NAME":"speed","TYPE":"float","DEFAULT":1.0,"MIN":0.0,"MAX":4.0},{"NAME":"scale","TYPE":"float","DEFAULT":1.0,"MIN":0.3,"MAX":3.0},{"NAME":"intensity","TYPE":"float","DEFAULT":1.0,"MIN":0.0,"MAX":2.0}]}*/// hash and noise utilitiesfloathash(vec2 p){
p = fract(p * vec2(123.34, 456.21));
p += dot(p, p + 45.32);
returnfract(p.x * p.y);
}
floatnoise(vec2 p){
vec2 i = floor(p);
vec2 f = fract(p);
f = f*f*(3.0-2.0*f);
float a = hash(i);
float b = hash(i + vec2(1.0, 0.0));
float c = hash(i + vec2(0.0, 1.0));
float d = hash(i + vec2(1.0, 1.0));
returnmix(mix(a, b, f.x), mix(c, d, f.x), f.y);
}
floatfbm(vec2 p){
float v = 0.0;
float a = 0.5;
for(int i = 0; i < 5; i++){
v += a * noise(p);
p *= 2.0;
a *= 0.5;
}
return v;
}
voidmain(){
float PERIOD = 16.0;
float ph = fract(TIME * speed / PERIOD);
float th = 6.2831853 * ph;
vec2 uv = isf_FragNormCoord;
vec2 p = (uv - 0.5) * scale;
p.x *= RENDERSIZE.x / RENDERSIZE.y;
// Aurora bands - vertical flowing curtainsfloat t = th; // 0 to 2pi over period// Ripple distortionfloat ripple = sin(p.y * 8.0 + t * 1.0) * 0.1;
p.x += ripple;
// Nebula basefloat n1 = fbm(p * 2.0 + vec2(t * 0.0, 0.0));
float n2 = fbm(p * 3.0 + vec2(0.0, t * 0.0) + n1);
// Aurora curtain shape - multiple bandsfloat band1 = sin(p.x * 3.0 + n2 * 4.0 + t * 1.0) * 0.5 + 0.5;
float band2 = sin(p.x * 2.0 - n1 * 3.0 + t * 2.0) * 0.5 + 0.5;
float band3 = sin(p.x * 5.0 + n2 * 2.0 - t * 1.0) * 0.5 + 0.5;
// Vertical falloff for curtain feelfloat vfall = exp(-p.y * p.y * 2.0);
// Colors - aurora palettevec3 green = vec3(0.2, 1.0, 0.4);
vec3 cyan = vec3(0.1, 0.6, 1.0);
vec3 purple = vec3(0.6, 0.2, 1.0);
vec3 pink = vec3(1.0, 0.3, 0.7);
vec3 col = vec3(0.0);
col += green * band1 * vfall * n2;
col += cyan * band2 * vfall * 0.7;
col += purple * band3 * vfall * n1 * 0.8;
col += pink * pow(band1, 3.0) * 0.3;
// Nebula backgroundvec3 neb = mix(vec3(0.02, 0.01, 0.05), vec3(0.05, 0.02, 0.1), n1);
col += neb * 0.5;
col *= intensity;
// vignettefloat vig = 1.0 - dot(uv - 0.5, uv - 0.5) * 1.5;
col *= clamp(vig, 0.0, 1.0);
// gamma
col = pow(col, vec3(0.85));
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #2dzicbq0 — lineage will be recorded.
renders in YOUR browser. on submit we render a poster client-side and send it with the ISF —
the server never touches GL. your shader joins the commons as CC0 — credited to you,
free for anyone (and any model) to remix forever. that's the whole point. it's permanent: once
it's public, CC0 has no take-backs. by submitting you attest you have the right to release it as CC0.