[ 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":"Helix: a luminous DNA double-helix turning in the dark. Two glowing backbones spiral past each other with colour-coded base-pair rungs between them, front strands bright and rear strands dimmed for depth, while soft bokeh motes drift behind. One full turn per loop for a seamless 16s cycle.","CREDIT":"glslop agent (Claude)","CATEGORIES":["dna","helix","molecular","neon","science"],"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":"twist","TYPE":"float","DEFAULT":7.0,"MIN":3.0,"MAX":14.0},{"NAME":"radius","TYPE":"float","DEFAULT":0.34,"MIN":0.18,"MAX":0.5},{"NAME":"zoom","TYPE":"float","DEFAULT":1.0,"MIN":0.7,"MAX":1.6}]}*/#define PI 3.14159265359#define TAU 6.28318530718constfloat PERIOD = 16.0;
vec3pal(float t){ return0.5 + 0.5 * cos(TAU * (t + vec3(0.0, 0.33, 0.66))); }
floathash(float x){ returnfract(sin(x * 127.13) * 43758.5453); }
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE.xy) / RENDERSIZE.y;
uv /= zoom;
float ph = fract(TIME * speed / PERIOD);
float th = TAU * ph;
// dark lab gradient + drifting bokehvec3 col = mix(vec3(0.01, 0.02, 0.05), vec3(0.0, 0.01, 0.02), uv.y * 0.5 + 0.5);
for (int i = 0; i < 7; i++){
float fi = float(i);
float bx = sin(fi * 12.7) * 0.6;
float by = fract(hash(fi) + ph * (0.2 + 0.1 * hash(fi + 9.0))) * 2.0 - 1.0; // drift up, loopsfloat bs = 0.05 + 0.06 * hash(fi + 3.0);
float d = length(uv - vec2(bx, by));
col += pal(hue + 0.55 + 0.1 * fi) * smoothstep(bs, 0.0, d) * 0.10; // soft motes
}
float a = uv.y * twist + th; // helix phase (one full turn per loop)float x1 = radius * cos(a);
float z1 = sin(a); // depth of strand 1 (+front)float x2 = -x1; // strand 2 is oppositefloat z2 = -z1;
// --- base-pair rungs ---float ry = uv.y * twist / PI * 2.0; // rung index coordinate (denser ladder)float rfrac = abs(fract(ry) - 0.5);
float rung = smoothstep(0.045, 0.0, rfrac);
float xlo = min(x1, x2), xhi = max(x1, x2);
float inBar = smoothstep(0.0, 0.01, uv.x - xlo) * smoothstep(0.0, 0.01, xhi - uv.x);
float baseId = floor(ry);
vec3 baseCol = pal(hue + 0.15 + 0.25 * hash(baseId));
float rungDepth = 0.5 + 0.4 * sin(a); // average-ish depth shading
col += baseCol * rung * inBar * (0.4 + 0.8 * rungDepth) * 1.2 * glow;
// --- backbones (glowing tubes) ---float bw = 0.0012;
float d1 = uv.x - x1;
float d2 = uv.x - x2;
float g1 = bw / (d1 * d1 + bw);
float g2 = bw / (d2 * d2 + bw);
float br1 = 0.35 + 0.65 * (0.5 + 0.5 * z1); // front brighterfloat br2 = 0.35 + 0.65 * (0.5 + 0.5 * z2);
vec3 cA = pal(hue + 0.0);
vec3 cB = pal(hue + 0.5);
col += cA * g1 * br1 * glow;
col += cB * g2 * br2 * glow;
// white-hot cores + nucleotide beads on the backbonefloat bead1 = pow(0.5 + 0.5 * sin(uv.y * twist * 2.0 + th), 24.0);
float bead2 = pow(0.5 + 0.5 * sin(uv.y * twist * 2.0 + th + PI), 24.0);
col += vec3(1.0) * g1 * bead1 * br1 * 0.9;
col += vec3(1.0) * g2 * bead2 * br2 * 0.9;
col *= 1.0 - 0.16 * dot(uv * zoom, uv * zoom);
col = col / (1.0 + col);
col = pow(col, vec3(0.84));
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #s433pyof — 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.