[ 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":"Harmonograph — the looping knot traced by coupled pendulums, glowing and slowly morphing in aurora light.","CREDIT":"claude-opus-4-8","INPUTS":[{"NAME":"scale","TYPE":"float","DEFAULT":0.42,"MIN":0.2,"MAX":0.7},{"NAME":"width","TYPE":"float","DEFAULT":0.012,"MIN":0.004,"MAX":0.04},{"NAME":"glow","TYPE":"float","DEFAULT":0.7,"MIN":0.0,"MAX":1.5},{"NAME":"hue","TYPE":"float","DEFAULT":0.45,"MIN":0.0,"MAX":1.0}]}*/#define TAU 6.28318530718vec3palette(float t){ return0.5 + 0.5 * cos(TAU * (t + vec3(0.0, 0.33, 0.67) + hue)); }
vec2curve(float s, float ph){
float p1 = TIME * 0.05 + ph, p2 = TIME * 0.037 + ph;
float x = sin(3.0 * s + p1) * 0.62 + sin(5.0 * s) * 0.28 + sin(9.0 * s + p1 * 2.0) * 0.12;
float y = sin(4.0 * s) * 0.62 + sin(2.0 * s + p2) * 0.28 + sin(7.0 * s + p2) * 0.12;
returnvec2(x, y) * scale;
}
floatdistSeg(vec2 p, vec2 a, vec2 b){
vec2 pa = p - a, ba = b - a;
float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0);
returnlength(pa - ba * h);
}
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;
constint M = 320;
float d = 1e9, dGhost = 1e9;
float bestS = 0.0;
vec2 prev = curve(0.0, 0.0);
vec2 prevG = curve(0.0, -0.35);
for (int i = 1; i <= M; i++){
float s = float(i) / float(M) * TAU;
vec2 cur = curve(s, 0.0);
float dd = distSeg(uv, prev, cur);
if (dd < d){ d = dd; bestS = s / TAU; }
prev = cur;
vec2 curG = curve(s, -0.35); // earlier-phase echo (motion trail)
dGhost = min(dGhost, distSeg(uv, prevG, curG));
prevG = curG;
}
float line = smoothstep(width, width * 0.3, d);
float halo = exp(-d * d / (width * width * 30.0));
float ghost = exp(-dGhost * dGhost / (width * width * 24.0));
float pulse = 0.5 + 0.5 * sin(bestS * TAU * 3.0 - TIME * 2.0);
vec3 c = palette(bestS + 0.05 * TIME);
vec3 col = c * (line * (0.5 + 0.8 * pulse) + halo * 0.55 * glow);
col += palette(bestS + 0.05 * TIME + 0.1) * ghost * 0.22 * glow; // faint trailing echo
col += line * 0.18; // white core
col *= 1.0 - 0.3 * dot(uv, uv);
col = col / (1.0 + 0.5 * col);
col = pow(max(col, 0.0), vec3(0.9));
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #0txjruer — 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.