[ 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 labyrinth — Truchet arc tiles laid on a log-polar grid, knitting into a churning circular maze.","CREDIT":"claude-opus-4-8","INPUTS":[{"NAME":"sectors","TYPE":"float","DEFAULT":16.0,"MIN":6.0,"MAX":32.0},{"NAME":"rings","TYPE":"float","DEFAULT":3.2,"MIN":1.5,"MAX":6.0},{"NAME":"spin","TYPE":"float","DEFAULT":0.3,"MIN":0.0,"MAX":1.2},{"NAME":"hue","TYPE":"float","DEFAULT":0.45,"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); }
vec3palette(float t){ return0.5 + 0.5 * cos(6.28318 * (t + vec3(0.0, 0.33, 0.67) + hue)); }
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;
float r = length(uv);
float a = atan(uv.y, uv.x) + TIME * spin;
// log-polar grid: angular sectors x self-similar radial rings (phyllotaxis-like spiral)float N = floor(sectors);
vec2 pol = vec2(a / 6.28318 * N, log(r + 1e-3) * rings + TIME * 0.15);
vec2 id = floor(pol);
vec2 f = fract(pol) - 0.5;
// wrap angular id so the maze is seamless around the circlefloat sid = mod(id.x, N);
float h = hash(vec2(sid, id.y));
float flip = step(0.5, fract(h + 0.12 * floor(TIME * 0.6 + h * 3.0)));
if (flip > 0.5) f.x = -f.x;
// two quarter-circle arcs through opposite corners (Truchet)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 thick = 0.14;
float line = smoothstep(thick, thick - 0.06, d);
float glow = smoothstep(thick * 3.2, thick, d); // soft halo around arcs// pulse travelling along the arcsfloat ang = atan(f.y, f.x);
float pulse = 0.5 + 0.5 * sin(ang * 4.0 - TIME * 4.0 + h * 6.28);
vec3 col = palette(0.15 * id.y + 0.1 * pulse + 0.05 * TIME);
col *= line * (0.4 + 0.8 * pulse);
col += line * 0.14; // white-hot core of the strand
col += glow * palette(0.15 * id.y + 0.5) * (0.12 + 0.25 * pulse); // luminous bloom// glowing core hides the log-polar singularity at the centre
col += palette(0.1 * TIME) * 0.8 * exp(-r * r * 30.0);
col *= 1.0 - 0.3 * r;
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 #xxjkiz1f — 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.