[ 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":"Spiral galaxy — log-spiral arms of blue starlight winding out of a glowing core, threaded with dust lanes.","CREDIT":"claude-opus-4-8","INPUTS":[{"NAME":"arms","TYPE":"float","DEFAULT":2.0,"MIN":1.0,"MAX":5.0},{"NAME":"pitch","TYPE":"float","DEFAULT":4.0,"MIN":1.5,"MAX":8.0},{"NAME":"spin","TYPE":"float","DEFAULT":0.1,"MIN":0.0,"MAX":0.6},{"NAME":"tint","TYPE":"float","DEFAULT":0.5,"MIN":0.0,"MAX":1.0}]}*/#define TAU 6.28318530718floathash(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), f = fract(p); f = f * f * (3.0 - 2.0 * f);
float a = hash(i), b = hash(i + vec2(1.0, 0.0)), c = hash(i + vec2(0.0, 1.0)), d = hash(i + vec2(1.0, 1.0));
returnmix(mix(a, b, f.x), mix(c, d, f.x), f.y);
}
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;
uv *= mat2(1.0, 0.0, 0.0, 0.72); // slight inclination (elliptical disk)float r = length(uv);
float a = atan(uv.y, uv.x) + TIME * spin;
// logarithmic spiral arms (density wave)float spiral = a * arms - log(r + 0.02) * pitch;
float arm = pow(0.5 + 0.5 * cos(spiral), 2.2);
float disk = exp(-r * 2.3); // galactic disk fallofffloat density = arm * disk;
// dust lane: a dark offset copy on the inner edge of each armfloat dust = pow(0.5 + 0.5 * cos(spiral + 0.7), 3.0) * disk;
density *= 1.0 - 0.6 * dust;
// clumpy star clouds within the arms (follow the swirl)vec2 sw = vec2(cos(a), sin(a)) * r;
float clump = 0.45 + 1.1 * noise(sw * 9.0 + spiral);
density *= clump;
vec3 armCol = mix(vec3(0.2, 0.45, 1.0), vec3(0.35, 0.4, 0.95), tint); // blue starlightvec3 col = vec3(0.0, 0.01, 0.03); // intergalactic dark
col += armCol * density * 2.2;
col += vec3(0.95, 0.4, 0.6) * pow(density, 2.0) * 0.8 * smoothstep(0.4, 0.9, clump); // pink HII knots
col += vec3(0.85, 0.95, 1.0) * pow(density, 4.0) * 0.6; // bright OB associations// glowing core bulge (warm)float core = exp(-r * r * 22.0);
col += vec3(1.0, 0.85, 0.6) * core * 1.4;
col += vec3(1.0, 0.95, 0.8) * exp(-r * r * 120.0) * 1.5; // bright nucleus// stars — concentrated in the arms + a scattered halofloat sf = hash(floor(gl_FragCoord.xy));
float starHere = smoothstep(0.985, 1.0, sf) * (0.3 + 1.5 * density) + smoothstep(0.997, 1.0, sf);
col += vec3(0.9, 0.95, 1.0) * starHere * (0.6 + 0.4 * sin(TIME * 3.0 + sf * 40.0));
col *= 1.0 - 0.2 * dot(uv, uv);
col = col / (1.0 + 0.4 * col);
col = pow(max(col, 0.0), vec3(0.88));
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #rtqeyf3s — 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.