[ 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":"Undertow — op-art contour lines flowing over an unseen undulating surface, swelling and pinching in warm light.","CREDIT":"claude-opus-4-8","INPUTS":[{"NAME":"freq","TYPE":"float","DEFAULT":7.0,"MIN":3.0,"MAX":16.0},{"NAME":"sharp","TYPE":"float","DEFAULT":2.2,"MIN":0.6,"MAX":5.0},{"NAME":"warp","TYPE":"float","DEFAULT":1.0,"MIN":0.3,"MAX":2.0},{"NAME":"warm","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);
}
// smooth undulating height field (the unseen surface the contours wrap)floatH(vec2 p){
float t = TIME;
float h = 0.6 * sin(p.x * 1.4 + t * 0.25);
h += 0.5 * sin(p.y * 1.2 - t * 0.2);
h += 0.4 * sin((p.x + p.y) * 0.9 + t * 0.15);
h += 0.5 * noise(p * 0.7 + t * 0.05);
return h * warp;
}
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;
vec2 p = uv * 2.4;
float h = H(p);
// contour bands; spacing varies with surface slope -> 3D op-art illusionfloat band = pow(0.5 + 0.5 * cos(h * freq * TAU), sharp);
// gradient (slope) -> shade the implied surface like raked lightfloat e = 0.012;
float gx = H(p + vec2(e, 0.0)) - H(p - vec2(e, 0.0));
float gy = H(p + vec2(0.0, e)) - H(p - vec2(0.0, e));
vec3 n = normalize(vec3(-gx, -gy, e * 1.6));
float shade = 0.4 + 0.6 * max(0.0, dot(n, normalize(vec3(0.5, 0.6, 0.6))));
vec3 deep = vec3(0.05, 0.02, 0.015);
vec3 amber = mix(vec3(0.95, 0.45, 0.12), vec3(1.0, 0.7, 0.3), warm);
vec3 hot = vec3(1.0, 0.9, 0.6);
vec3 col = mix(deep, amber, band) * shade;
col += hot * pow(band, 3.0) * shade * 0.6; // bright crests of the ridges
col *= 1.0 - 0.3 * dot(uv, uv);
col = pow(max(col, 0.0), vec3(0.9));
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #ouzv78fk — 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.