[ 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":"The Witness: a vast alien eye watching from the dark. Its iris is woven from thousands of glowing fibres around a black void pupil that dilates and breathes; the gaze drifts on a closed path and a wet catch-light slides across the cornea. Everything cycles on integer harmonics for a seamless 16s loop.","CREDIT":"glslop agent (Claude)","CATEGORIES":["eye","organic","surreal","neon","bizarre"],"INPUTS":[{"NAME":"speed","TYPE":"float","DEFAULT":1.0,"MIN":0.0,"MAX":3.0},{"NAME":"glow","TYPE":"float","DEFAULT":1.0,"MIN":0.3,"MAX":3.0},{"NAME":"hue","TYPE":"float","DEFAULT":0.0,"MIN":0.0,"MAX":1.0},{"NAME":"fibers","TYPE":"float","DEFAULT":1.0,"MIN":0.4,"MAX":2.0},{"NAME":"zoom","TYPE":"float","DEFAULT":1.0,"MIN":0.6,"MAX":1.8}]}*/#define PI 3.14159265359#define TAU 6.28318530718constfloat PERIOD = 16.0;
mat2rot(float a){ float c = cos(a), s = sin(a); returnmat2(c, -s, s, c); }
vec3pal(float t){ return0.5 + 0.5 * cos(TAU * (t + vec3(0.0, 0.33, 0.66))); }
floathash(vec2 p){ returnfract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); }
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)), c = hash(i + vec2(0, 1)), d = hash(i + vec2(1, 1));
returnmix(mix(a, b, f.x), mix(c, d, f.x), f.y);
}
floatfbm(vec2 p){ float s = 0.0, a = 0.5; for (int i = 0; i < 4; i++){ s += a * noise(p); p *= 2.0; a *= 0.5; } return s; }
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE.xy) / RENDERSIZE.y;
uv /= zoom;
float ph = fract(TIME * speed / PERIOD);
float th = TAU * ph;
// gaze drifts on a closed Lissajous (seamless)vec2 gaze = 0.10 * vec2(sin(th), sin(2.0 * th) * 0.6);
vec2 p = uv - gaze;
float r = length(p);
vec2 dir = p / max(r, 1e-4);
float ang = atan(p.y, p.x);
float pupilR = 0.17 + 0.05 * sin(th); // dilation (breathing)float irisR = 0.62;
vec3 col = vec3(0.0);
// --- iris fibres (between pupil and limbus) ---float t = clamp((r - pupilR) / (irisR - pupilR), 0.0, 1.0); // 0 at pupil, 1 at rim// organic radial fibres; integer angular frequency -> no seamfloat warp = fbm(dir * 3.0 + r * 2.0);
float f = 0.5 + 0.5 * sin(ang * 160.0 * fibers + 16.0 * warp + r * 10.0);
f = pow(f, 2.0);
float crypt = smoothstep(0.25, 0.8, fbm(dir * 5.0 + 7.3)); // darker patches// collarette: a brighter ring partway outfloat collar = exp(-pow((t - 0.35) * 6.0, 2.0));
vec3 irisCol = mix(pal(hue + 0.55), pal(hue + 0.92), t); // warm centre -> cool rim
irisCol = mix(vec3(dot(irisCol, vec3(0.33))), irisCol, 1.4); // boost saturationfloat irisBright = (0.35 + 1.25 * f) * (0.5 + 0.7 * crypt) + collar * 1.8;
float irisMask = smoothstep(pupilR, pupilR + 0.02, r) * smoothstep(irisR, irisR - 0.05, r);
col += irisCol * irisBright * irisMask * 1.4 * glow;
// limbus: dark ring at the iris edge
col *= 1.0 - 0.8 * exp(-pow((r - irisR) * 26.0, 2.0));
// --- pupil: black void with a faint inner rim glow ---float pupilEdge = smoothstep(pupilR, pupilR - 0.03, r);
col = mix(col, vec3(0.0), pupilEdge);
col += pal(hue + 0.5) * exp(-pow((r - pupilR) * 30.0, 2.0)) * 0.6 * glow; // rim light on pupil// --- sclera / surrounding darkness with faint veins ---float outside = smoothstep(irisR, irisR + 0.04, r);
float veins = smoothstep(0.55, 0.9, fbm(uv * 4.0 + 3.0));
vec3 scler = vec3(0.04, 0.05, 0.07) + pal(hue + 0.0) * veins * 0.12;
col = mix(col, scler, outside);
// --- wet catch-light (specular) sliding across the cornea ---vec2 cl = vec2(-0.17, 0.19) + 0.04 * vec2(cos(th), sin(th));
float spec = exp(-dot(uv - cl, uv - cl) * 260.0);
col += vec3(1.0) * spec * 2.4; // tight glossy highlight
col += vec3(1.0) * exp(-dot(uv - cl, uv - cl) * 40.0) * 0.5; // soft bloom around it// small second highlightvec2 cl2 = cl * 0.45 - vec2(0.04, -0.02);
col += vec3(0.85, 0.92, 1.0) * exp(-dot(uv - cl2, uv - cl2) * 600.0) * 1.0;
col = col / (1.0 + col);
col = pow(col, vec3(0.85));
col *= 1.0 - 0.25 * dot(uv * zoom, uv * zoom);
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #hv7dp3wx — 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.