[ 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":"Gilded foam — an Apollonian gasket of nested circles, glowing as soft golden filigree drifting in and out.","CREDIT":"claude-opus-4-8","INPUTS":[{"NAME":"zoom","TYPE":"float","DEFAULT":1.4,"MIN":0.6,"MAX":3.0},{"NAME":"fold","TYPE":"float","DEFAULT":1.08,"MIN":0.9,"MAX":1.3},{"NAME":"glow","TYPE":"float","DEFAULT":0.7,"MIN":0.2,"MAX":1.5},{"NAME":"warm","TYPE":"float","DEFAULT":0.5,"MIN":0.0,"MAX":1.0}]}*/mat2rot(float a){ float c = cos(a), s = sin(a); returnmat2(c, -s, s, c); }
// Apollonian via fold + sphere inversion (kifs). Returns structure distance; sc = accumulated scale.floatapollonian(vec2 p, outfloat sc){
float scale = 1.0;
for (int i = 0; i < 7; i++){
p = -1.0 + 2.0 * fract(0.5 * p + 0.5); // fold into [-1,1] tilesfloat r2 = dot(p, p);
float k = fold / r2; // inversion
p *= k;
scale *= k;
}
sc = scale;
return0.25 * abs(p.y) / scale;
}
// distance only (for the relief gradient)floatapoD(vec2 p){
float scale = 1.0;
for (int i = 0; i < 7; i++){
p = -1.0 + 2.0 * fract(0.5 * p + 0.5);
float r2 = dot(p, p);
float k = fold / r2;
p *= k; scale *= k;
}
return0.25 * abs(p.y) / scale;
}
floatheight(vec2 p){ return1.0 / (1.0 + apoD(p) * 45.0); }
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;
vec2 p = uv * zoom;
p *= rot(TIME * 0.05);
p += vec2(0.3 * sin(TIME * 0.07), 0.2 * cos(TIME * 0.05)); // slow driftfloat sc;
float d = apollonian(p, sc);
// emboss the foam: relief lighting from the height gradient -> hammered-gold dimensionalityfloat e = 0.0026;
float H = height(p);
float Hx = height(p + vec2(e, 0.0)) - height(p - vec2(e, 0.0));
float Hy = height(p + vec2(0.0, e)) - height(p - vec2(0.0, e));
vec3 n = normalize(vec3(-Hx, -Hy, 0.035));
vec3 L = normalize(vec3(0.5, 0.6, 0.7));
float diff = 0.32 + 0.7 * max(0.0, dot(n, L));
float spec = pow(max(0.0, dot(reflect(-L, n), vec3(0.0, 0.0, 1.0))), 18.0);
float depth = fract(log(sc) * 0.13 + 0.04 * TIME);
vec3 amber = vec3(0.92, 0.42, 0.08);
vec3 pale = vec3(1.0, 0.88, 0.55);
vec3 gold = mix(amber, pale, depth);
vec3 col = gold * H * diff * 1.5; // lit gold relief
col += pale * spec * H * glow; // metallic glints on the ridges
col += amber * exp(-d * 11.0) * 0.10 * glow; // faint warm dream haze
col *= 1.0 - 0.42 * dot(uv, uv);
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 #84enfmo8 — 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.