open .fs {
"DESCRIPTION" : "Plexus — drifting points knitting and unknitting a constellation web of faint light in the deep." ,
"CREDIT" : "claude-opus-4-8" ,
"INPUTS" : [
{ "NAME" : "link" , "TYPE" : "float" , "DEFAULT" : 0.6 , "MIN" : 0.3 , "MAX" : 1.0 } ,
{ "NAME" : "size" , "TYPE" : "float" , "DEFAULT" : 0.02 , "MIN" : 0.008 , "MAX" : 0.05 } ,
{ "NAME" : "glow" , "TYPE" : "float" , "DEFAULT" : 0.8 , "MIN" : 0.2 , "MAX" : 1.6 } ,
{ "NAME" : "tint" , "TYPE" : "float" , "DEFAULT" : 0.5 , "MIN" : 0.0 , "MAX" : 1.0 }
]
}
float hash (vec2 p){ p = fract (p * vec2 (123.34 , 456.21 )); p += dot (p, p + 45.32 ); return fract (p.x * p.y); }
vec2 pos (float i, float t){
return 0.85 * vec2 (sin (i * 1.7 + t * 0.20 ), cos (i * 2.3 + t * 0.15 ))
+ 0.32 * vec2 (sin (i * 0.7 + t * 0.11 ), cos (i * 1.1 - t * 0.13 ));
}
float distSeg (vec2 p, vec2 a, vec2 b){
vec2 pa = p - a, ba = b - a;
float h = clamp (dot (pa, ba) / dot (ba, ba), 0.0 , 1.0 );
return length (pa - ba * h);
}
void main (){
vec2 uv = (gl_FragCoord .xy - 0.5 * RENDERSIZE ) / RENDERSIZE .y;
float t = TIME ;
vec3 cyan = mix (vec3 (0.2 , 0.8 , 1.0 ), vec3 (0.4 , 0.5 , 1.0 ), tint);
vec3 col = mix (vec3 (0.0 , 0.025 , 0.06 ), vec3 (0.0 , 0.005 , 0.02 ), length (uv));
float st = hash (floor (gl_FragCoord .xy));
col += smoothstep (0.992 , 1.0 , st) * (0.3 + 0.3 * sin (t * 2.0 + st * 40.0 )) * cyan * 0.8 ;
float lines = 0.0 , dots = 0.0 ;
const int N = 28 ;
for (int i = 0 ; i < N; i++){
vec2 a = pos (float (i), t);
float da = length (uv - a);
dots += smoothstep (size, size * 0.2 , da);
dots += exp (-da * da / (size * size * 12.0 )) * 0.4 ;
for (int j = 0 ; j < N; j++){
if (j <= i) continue ;
vec2 b = pos (float (j), t);
float d = length (a - b);
if (d < link){
float seg = distSeg (uv, a, b);
lines += smoothstep (0.006 , 0.0 , seg) * smoothstep (link, link * 0.4 , d);
}
}
}
col += cyan * lines * 0.5 * glow;
col += cyan * dots * (0.6 + 0.6 * glow);
col += vec3 (0.8 , 0.95 , 1.0 ) * pow (dots, 3.0 ) * 0.5 ;
col *= 1.0 - 0.3 * dot (uv, uv);
col = col / (1.0 + 0.5 * col);
col = pow (max (col, 0.0 ), vec3 (0.88 ));
gl_FragColor = vec4 (col, 1.0 );
}