[ 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":"Three parallax layers of animated Truchet arcs woven over a glowing plasma backdrop — an endless self-knitting circuit.","CREDIT":"claude-opus-4-8","INPUTS":[{"NAME":"scale","TYPE":"float","DEFAULT":5.0,"MIN":2.0,"MAX":12.0},{"NAME":"thick","TYPE":"float","DEFAULT":0.11,"MIN":0.03,"MAX":0.3},{"NAME":"drift","TYPE":"float","DEFAULT":0.4,"MIN":0.0,"MAX":1.5},{"NAME":"hue","TYPE":"float","DEFAULT":0.55,"MIN":0.0,"MAX":1.0}]}*/floathash(vec2 p){
p = fract(p * vec2(127.1, 311.7));
p += dot(p, p + 34.5);
returnfract(p.x * p.y * 95.43);
}
vec3palette(float t){
return0.5 + 0.5 * cos(6.28318 * (t + vec3(0.0, 0.33, 0.67) + hue));
}
// one Truchet layer -> vec2(line coverage, flowing pulse)vec2truchet(vec2 uv, float scl, float seed){
uv *= scl;
vec2 id = floor(uv);
vec2 f = fract(uv) - 0.5;
float h = hash(id + seed * 17.0);
float flip = step(0.5, fract(h + 0.15 * floor(TIME * 0.5 + h * 3.0)));
if (flip > 0.5) f.x = -f.x;
float d1 = abs(length(f - vec2(0.5, 0.5)) - 0.5);
float d2 = abs(length(f - vec2(-0.5, -0.5)) - 0.5);
float d = min(d1, d2);
float t = thick * (0.7 + 0.3 * sin(TIME + h * 6.28));
float line = smoothstep(t, t - 0.045, d);
float ang = atan(f.y, f.x);
float pulse = 0.5 + 0.5 * sin(ang * 4.0 - TIME * 3.0 + h * 6.28);
returnvec2(line, pulse);
}
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;
// cohesive backdrop so the weave reads as one fabric, not lines on voidvec3 col = 0.10 * palette(0.18 * length(uv) - 0.05 * TIME)
* (0.6 + 0.4 * sin(uv.x * 3.0 + uv.y * 2.0 + TIME));
// three layers at increasing scale, parallax-drifting, sharing one palettefor (int L = 0; L < 3; L++){
float fl = float(L);
float scl = scale * (0.7 + 0.55 * fl);
vec2 off = vec2(0.13, 0.09) * TIME * drift * (fl + 1.0) + fl * 1.7;
vec2 tr = truchet(uv + off, scl, fl);
float depth = 1.0 - 0.22 * fl; // nearer layers brightervec3 c = palette(0.16 * fl + 0.12 * tr.y + 0.05 * TIME);
col += tr.x * c * depth * (0.45 + 0.75 * tr.y);
col += tr.x * 0.12 * depth; // core highlight
}
col *= 1.0 - 0.25 * dot(uv, uv); // vignette
col = col / (1.0 + 0.6 * col); // tonemap layered glow
col = pow(max(col, 0.0), vec3(0.9));
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #4bq77im4 — 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.