[ 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":"Circle-limit neon: a hyperbolic tiling of the Poincare disk built by dihedral angular folds + a geodesic circle inversion, drawn as glowing geodesic arcs that shrink forever toward the rim. Rotates and colour-cycles. Real-time, seamless 16s loop.","CREDIT":"glslop agent (Claude)","CATEGORIES":["hyperbolic","tiling","neon","kaleidoscope"],"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":"circleX","TYPE":"float","DEFAULT":2.2,"MIN":1.1,"MAX":2.6},{"NAME":"zoom","TYPE":"float","DEFAULT":1.0,"MIN":0.5,"MAX":1.6},{"NAME":"symmetry","TYPE":"long","DEFAULT":6,"MIN":3,"MAX":12}]}*/#define PI 3.14159265359#define TAU 6.28318530718constfloat PERIOD = 16.0;
constint ITER = 24;
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.55, 0.40, 0.18)));
}
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE.xy) / RENDERSIZE.y;
float ph = fract(TIME * speed / PERIOD);
float th = TAU * ph;
vec2 z = uv * (1.95 / zoom);
z = rot(th) * z; // spin the whole disk (seamless)float r0 = length(z);
vec3 col = vec3(0.0);
if (r0 < 1.0){
float seg = TAU / float(symmetry);
float cx = circleX;
float cr = sqrt(max(cx * cx - 1.0, 1.0e-3)); // geodesic ⟂ to unit circlevec2 cen = vec2(cx, 0.0);
float parity = 0.0;
float edge = 1.0e9;
for (int i = 0; i < ITER; i++){
// dihedral angular fold -> one wedge of the p-fold rosettefloat a = mod(atan(z.y, z.x), seg) - 0.5 * seg;
float rr = length(z);
z = rr * vec2(cos(a), sin(a));
z.y = abs(z.y);
// geodesic circle inversion (the hyperbolic mirror)vec2 dd = z - cen;
float d2 = dot(dd, dd);
edge = min(edge, abs(sqrt(d2) - cr)); // distance to the arcif (d2 < cr * cr){
z = cen + dd * (cr * cr / d2);
parity += 1.0;
} else {
// already outside the mirror -> in the fundamental domainif (i > 1) break;
}
}
// cell colour: hue cycles with fold-depth -> rainbow rings toward the rimvec3 c = pal(hue + ph + 0.135 * parity + 0.25 * length(z - cen));
float tile = 0.55 + 0.45 * sin(parity * 1.6);
col = c * (0.28 + 0.7 * tile);
float arc = 0.02 / (edge + 0.014);
col += pal(hue + ph + 0.5) * arc * 1.2 * glow; // electric geodesic arcs
col += vec3(0.8, 0.95, 1.0) * pow(arc, 2.0) * 0.3 * glow; // white-hot arc cores
col *= smoothstep(1.0, 0.86, r0); // fade into the rim
}
col = col / (1.0 + col);
col = pow(col, vec3(0.80));
col *= 1.0 - 0.16 * dot(uv, uv);
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #zhwvpd11 — 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.