[ 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":"Nacre Bulb: the power-8 Mandelbulb raymarched as a slowly turning alien artifact carved from opal — bulbous lobes and deep folds sheathed in oil-slick thin-film iridescence that shifts pink, green and gold across the fractal detail. Rotates once for a seamless 16s loop. Real-time.","CREDIT":"glslop agent (Claude)","CATEGORIES":["mandelbulb","fractal","3d","raymarch","neon"],"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":"power","TYPE":"float","DEFAULT":8.0,"MIN":3.0,"MAX":10.0},{"NAME":"zoom","TYPE":"float","DEFAULT":1.0,"MIN":0.6,"MAX":1.8}]}*/#define PI 3.14159265359#define TAU 6.28318530718#define ITER 8constfloat 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))); }
float gTrap;
floatde(vec3 p){
vec3 z = p;
float dr = 1.0;
float r = 0.0;
float trap = 1e9;
for (int i = 0; i < ITER; i++){
r = length(z);
if (r > 2.0) break;
float theta = acos(clamp(z.z / r, -1.0, 1.0));
float phi = atan(z.y, z.x);
float zr = pow(r, power);
dr = pow(r, power - 1.0) * power * dr + 1.0;
theta *= power;
phi *= power;
z = zr * vec3(sin(theta) * cos(phi), sin(theta) * sin(phi), cos(theta)) + p;
trap = min(trap, dot(z, z));
}
gTrap = trap;
return0.5 * log(r) * r / dr;
}
vec3calcNormal(vec3 p){
vec2 e = vec2(1.0, -1.0) * 0.0008;
returnnormalize(e.xyy * de(p + e.xyy) + e.yyx * de(p + e.yyx)
+ e.yxy * de(p + e.yxy) + e.xxx * de(p + e.xxx));
}
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE.xy) / RENDERSIZE.y;
float ph = fract(TIME * speed / PERIOD);
float th = TAU * ph;
vec3 ro = vec3(0.0, 0.0, 3.4 / zoom);
vec3 ww = normalize(-ro);
vec3 uu = normalize(cross(vec3(0.0, 1.0, 0.0), ww));
vec3 vv = cross(ww, uu);
vec3 rd = normalize(uv.x * uu + uv.y * vv + 1.3 * ww);
// rotate the ray into the bulb's frame -> bulb turns one full revolution (seamless)mat2 ry = rot(th);
mat2 rx = rot(0.5 + 0.25 * sin(th));
ro.xz = ry * ro.xz; rd.xz = ry * rd.xz;
ro.yz = rx * ro.yz; rd.yz = rx * rd.yz;
float t = 0.0;
float trap = 1e9;
bool hit = false;
for (int i = 0; i < 130; i++){
vec3 p = ro + rd * t;
float d = de(p);
if (d < 0.0004 * t){ hit = true; trap = gTrap; break; }
t += d * 0.85;
if (t > 6.0) break;
}
vec3 col = vec3(0.0);
if (hit){
vec3 p = ro + rd * t;
vec3 n = calcNormal(p);
vec3 lig = normalize(vec3(0.7, 0.8, 0.4));
float dif = clamp(dot(n, lig), 0.0, 1.0);
float fres = pow(1.0 - clamp(dot(n, -rd), 0.0, 1.0), 4.0);
float ao = 1.0 / (1.0 + t * 0.3);
float tr = sqrt(trap);
// molten metal: deep copper in the folds -> bright gold on the lobesvec3 metal = mix(vec3(0.70, 0.26, 0.07), vec3(1.0, 0.82, 0.42), smoothstep(0.0, 0.55, tr));
vec3 accent = mix(vec3(0.2, 0.75, 1.0), pal(hue + 0.55), hue); // cyan recess glow (hue retints)
col = metal * (0.30 + 1.1 * dif) * ao; // lit molten body
col += vec3(0.22, 0.10, 0.06) * ao; // warm ambient (not grey)
col += accent * smoothstep(1.1, 0.0, tr) * 2.2 * glow; // glowing recesses (wider, brighter)// thin-film iridescence sheen -> oil-on-bronze colour shimmervec3 irid = pal(hue + ph + 1.6 * fres + 0.35 * n.y + 0.2 * tr);
col = mix(col, col * irid * 1.8 + irid * 0.25, 0.5);
col += mix(metal, vec3(1.0), 0.6) * fres * 2.2 * glow; // hot rim
col += vec3(1.0, 0.95, 0.85) * pow(dif, 14.0) * 1.1; // sharp specular
col *= exp(-0.1 * max(t - 2.4, 0.0)); // depth fog
} else {
// subtle backdrop glow so it doesn't float in flat black
col = pal(hue + 0.6) * 0.03 * (1.0 - length(uv) * 0.6);
}
col = col / (1.0 + col);
col = pow(col, vec3(0.85));
col *= 1.0 - 0.16 * dot(uv, uv);
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #3skabwxl — 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.