[ 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":"Domain coloring: a window onto a complex meromorphic function f(z). Hue is the phase of f, so every zero becomes a rainbow pinwheel spinning one way and every pole a pinwheel spinning the other; a conformal grid of modulus rings and phase spokes bends through them, getting infinitely fine at the singularities. The zeros and poles drift on closed orbits so the whole field breathes and returns seamlessly.","CREDIT":"glslop agent (Claude)","CATEGORIES":["domain-coloring","complex","phase-portrait","conformal","math"],"INPUTS":[{"NAME":"speed","TYPE":"float","DEFAULT":1.0,"MIN":0.0,"MAX":3.0},{"NAME":"scale","TYPE":"float","DEFAULT":2.6,"MIN":1.0,"MAX":5.0},{"NAME":"grid","TYPE":"float","DEFAULT":1.0,"MIN":0.0,"MAX":2.0},{"NAME":"sat","TYPE":"float","DEFAULT":0.92,"MIN":0.0,"MAX":1.0}]}*/#define PI 3.14159265359#define TAU 6.28318530718constfloat PERIOD = 16.0;
vec2cmul(vec2 a, vec2 b){ returnvec2(a.x*b.x - a.y*b.y, a.x*b.y + a.y*b.x); }
vec2cdiv(vec2 a, vec2 b){ float d = dot(b,b); returnvec2(a.x*b.x + a.y*b.y, a.y*b.x - a.x*b.y)/d; }
vec3hsv(float h, float s, float v){
vec3 k = fract(h + vec3(0.0, 2.0/3.0, 1.0/3.0));
vec3 p = abs(k*6.0 - 3.0) - 1.0;
return v * mix(vec3(1.0), clamp(p, 0.0, 1.0), s);
}
vec2orbit(float r, float om, float ph, float th){ return r*vec2(cos(om*th+ph), sin(om*th+ph)); }
voidmain(){
vec2 uv = (2.0*gl_FragCoord.xy - RENDERSIZE.xy) / RENDERSIZE.y;
vec2 z = uv * scale;
float ph = fract(TIME * speed / PERIOD);
float th = TAU * ph;
// f(z) = (z-z1)(z-z2)(z-z3) / ((z-p1)(z-p2)) ; singularities drift on closed orbitsvec2 z1 = orbit(1.25, 1.0, 0.0, th);
vec2 z2 = orbit(1.05, 2.0, 2.1, th);
vec2 z3 = orbit(1.55, 1.0, 4.0, th);
vec2 p1 = orbit(0.85, 2.0, 1.0, th);
vec2 p2 = orbit(1.35, 1.0, 3.4, th);
vec2 num = cmul(cmul(z - z1, z - z2), z - z3);
vec2 den = cmul(z - p1, z - p2);
vec2 f = cdiv(num, den);
float arg = atan(f.y, f.x); // phasefloat mag = length(f);
float lm = log2(mag + 1e-6);
// hue from phase -> rainbow pinwheels at zeros/polesvec3 col = hsv(arg/TAU + 0.5, sat, 1.0);
// modulus rings: brighten just before each octave doubling of |f|float ring = fract(lm);
float shade = 0.55 + 0.5*ring;
col *= shade;
// conformal grid: dark lines along modulus octaves and phase spokes (12 per turn)float mLine = 1.0 - smoothstep(0.0, 0.06, min(ring, 1.0 - ring));
float pa = fract(arg/(TAU/12.0));
float pLine = 1.0 - smoothstep(0.0, 0.10, min(pa, 1.0 - pa));
float lines = max(mLine, pLine) * grid;
col *= 1.0 - 0.55*lines;
// tiny bright pip exactly at zeros, dark core at poles for legibility
col += vec3(1.0) * smoothstep(0.06, 0.0, length(f)) * 0.6; // zero -> white
col *= smoothstep(0.0, 0.5, mag); // pole -> black core
col *= 1.0 - 0.12*dot(uv, uv);
col = pow(clamp(col, 0.0, 1.0), vec3(0.9));
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #v7ohbcy0 — 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.