[ 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":"Liquid chrome swells with thin-film interference — hue rides the reflection phase, not density. Seamless 8s loop.","INPUTS":[{"NAME":"speed","TYPE":"float","DEFAULT":1.0,"MIN":0.25,"MAX":3.0},{"NAME":"film","TYPE":"float","DEFAULT":1.0,"MIN":0.3,"MAX":2.5}]}*/#define PERIOD 8.0#define TAU 6.28318530718// analytic heightfield: few large travelling swells, integer temporal multiples for a clean loop// returns vec3(height, dH/dx, dH/dy)vec3field(vec2 p, float ph){
vec3 h = vec3(0.0);
vec2 d1 = normalize(vec2( 0.83, 0.55));
vec2 d2 = normalize(vec2(-0.42, 0.91));
vec2 d3 = normalize(vec2( 0.31, -0.95));
float s;
s = 2.1*dot(d1,p) - TAU*1.0*ph + 0.0; h.x += 0.55*sin(s); h.yz += 0.55*2.1*cos(s)*d1;
s = 3.4*dot(d2,p) + TAU*2.0*ph + 1.7; h.x += 0.34*sin(s); h.yz += 0.34*3.4*cos(s)*d2;
s = 5.9*dot(d3,p) - TAU*3.0*ph + 4.1; h.x += 0.16*sin(s); h.yz += 0.16*5.9*cos(s)*d3;
return h;
}
// procedural environment: deep sky with wide luminous reflector bandsvec3env(vec3 rd){
float up = clamp(rd.y*0.5+0.5, 0.0, 1.0);
vec3 sky = mix(vec3(0.004,0.005,0.010), vec3(0.035,0.05,0.09), pow(up,1.8));
float az = atan(rd.z, rd.x);
float el = rd.y;
// narrow luminous strips on a mostly-void sphere — the chrome stays dark between streaksvec3 band = vec3(0.0);
band += vec3(2.6, 0.60, 0.10) * smoothstep(0.14,0.015,abs(el-0.34)) * pow(0.5+0.5*sin(az*2.0+0.4), 3.0);
band += vec3(0.10, 0.95, 2.8) * smoothstep(0.12,0.012,abs(el+0.02)) * pow(0.5+0.5*sin(az*3.0-1.2), 3.0);
band += vec3(1.2, 1.15, 1.4) * smoothstep(0.06,0.008,abs(el-0.64));
band += vec3(1.8, 0.2, 2.4) * smoothstep(0.11,0.012,abs(el+0.42)) * pow(0.5+0.5*sin(az+2.6), 3.0);
return sky + band;
}
// thin-film interference: RGB phases from optical path differencevec3filmColor(float opd){
vec3 phase = TAU * opd * vec3(1.0, 1.22, 1.46);
return0.5 + 0.5*cos(phase + vec3(0.0, 2.1, 4.2));
}
voidmain(){
vec2 uv = (gl_FragCoord.xy - 0.5*RENDERSIZE.xy) / RENDERSIZE.y;
float ph = fract(TIME * speed / PERIOD);
// circular-orbit domain drift — loop-safevec2 orb = 0.35*vec2(cos(TAU*ph), sin(TAU*ph));
vec2 p = uv*2.0 + orb;
vec3 H = field(p, ph);
vec3 n = normalize(vec3(-H.y, 1.35, -H.z));
// grazing camera so the mirror dominatesvec3 vd = normalize(vec3(uv.x*0.55, -0.85, uv.y*0.55 + 0.55));
vec3 rd = reflect(vd, n);
float cosT = clamp(abs(dot(vd, n)), 0.0, 1.0);
float fres = pow(1.0 - cosT, 2.0);
vec3 reflection = env(rd);
// broad iridescence: optical path from film thickness x incidence, plus a slow spatial driftfloat opd = film * (1.9*cosT + 0.35*H.x);
vec3 irid = filmColor(opd);
// flow mask: interference lives on the swell crests and steep slopes; flats stay chrome-darkfloat slope = length(H.yz);
float crest = smoothstep(0.25, 1.0, H.x);
float flow = clamp(0.7*crest + 0.6*smoothstep(1.0, 2.4, slope), 0.0, 1.0);
// chrome: dark mirror everywhere, interference painted along the flowvec3 col = reflection * mix(vec3(1.0), irid*1.9, flow);
col += irid * fres * (0.25 + 0.75*flow) * 0.9;
col += vec3(0.9,0.95,1.0) * pow(max(rd.y,0.0), 24.0) * 0.8; // sky glint// valleys sink to the voidfloat valley = smoothstep(0.5, -1.0, H.x);
col *= mix(1.0, 0.10, valley*0.85);
col *= 1.0 - 0.35*dot(uv,uv);
// soft highlight kneevec3 hot = max(col - 1.0, 0.0);
col = min(col, 1.0) + hot/(1.0+hot);
gl_FragColor = vec4(col, 1.0);
}
BROKEN ✗(you'll be asked to log in)
forking #odvg5wqq — 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.