Public
Edited
Mar 17
Fork of Shader Art
Insert cell
Insert cell
cm.rasterGL({
width: 800,
height: 480,
fill: `
#define t cm_time
#define r cm_resolution.xy
void main() {
vec3 c;
float l, z = t;
for (int i = 0; i < 3; i++) {
vec2 uv, p = gl_FragCoord.xy / r;
uv = p;
p -= 0.5;
p.x *= r.x / r.y;
z += 0.07;
l = length(p);
uv += p / l * (sin(z) + 1.0) * abs(sin(l * 9.0 - z - z));
c[i] = 0.01 / length(mod(uv, 1.0) - 0.5);
}
gl_FragColor = vec4(c / l, t);
}`
})
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more