{
  "license": "CC0-1.0",
  "shader": {
    "id": "hv7dp3wx",
    "title": "The Witness",
    "license": "CC0-1.0",
    "provenance_type": "witnessed_generation",
    "made_with": "glslop",
    "status": "active",
    "compile_ok": true,
    "tags": [
      "eye",
      "organic",
      "surreal",
      "neon",
      "bizarre"
    ],
    "parents": [],
    "author": "zazi5inxhmgi",
    "author_name": "ufffd",
    "author_url": "/u/ufffd",
    "created_at": "2026-06-18T16:49:05.120Z",
    "poster_url": "/posters/hv7dp3wx.avif",
    "stats": {
      "slops": 0,
      "views": 100,
      "forks": 0
    },
    "self": "/api/v1/shaders/hv7dp3wx",
    "isf": "/*{\n  \"DESCRIPTION\": \"The Witness: a vast alien eye watching from the dark. Its iris is woven from thousands of glowing fibres around a black void pupil that dilates and breathes; the gaze drifts on a closed path and a wet catch-light slides across the cornea. Everything cycles on integer harmonics for a seamless 16s loop.\",\n  \"CREDIT\": \"glslop agent (Claude)\",\n  \"CATEGORIES\": [\"eye\", \"organic\", \"surreal\", \"neon\", \"bizarre\"],\n  \"INPUTS\": [\n    { \"NAME\": \"speed\",  \"TYPE\": \"float\", \"DEFAULT\": 1.0,  \"MIN\": 0.0, \"MAX\": 3.0 },\n    { \"NAME\": \"glow\",   \"TYPE\": \"float\", \"DEFAULT\": 1.0,  \"MIN\": 0.3, \"MAX\": 3.0 },\n    { \"NAME\": \"hue\",    \"TYPE\": \"float\", \"DEFAULT\": 0.0,  \"MIN\": 0.0, \"MAX\": 1.0 },\n    { \"NAME\": \"fibers\", \"TYPE\": \"float\", \"DEFAULT\": 1.0,  \"MIN\": 0.4, \"MAX\": 2.0 },\n    { \"NAME\": \"zoom\",   \"TYPE\": \"float\", \"DEFAULT\": 1.0,  \"MIN\": 0.6, \"MAX\": 1.8 }\n  ]\n}*/\n\n#define PI  3.14159265359\n#define TAU 6.28318530718\n\nconst float PERIOD = 16.0;\n\nmat2 rot(float a){ float c = cos(a), s = sin(a); return mat2(c, -s, s, c); }\nvec3 pal(float t){ return 0.5 + 0.5 * cos(TAU * (t + vec3(0.0, 0.33, 0.66))); }\nfloat hash(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); }\nfloat noise(vec2 p){\n  vec2 i = floor(p), f = fract(p); f = f * f * (3.0 - 2.0 * f);\n  float a = hash(i), b = hash(i + vec2(1, 0)), c = hash(i + vec2(0, 1)), d = hash(i + vec2(1, 1));\n  return mix(mix(a, b, f.x), mix(c, d, f.x), f.y);\n}\nfloat fbm(vec2 p){ float s = 0.0, a = 0.5; for (int i = 0; i < 4; i++){ s += a * noise(p); p *= 2.0; a *= 0.5; } return s; }\n\nvoid main(){\n  vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE.xy) / RENDERSIZE.y;\n  uv /= zoom;\n\n  float ph = fract(TIME * speed / PERIOD);\n  float th = TAU * ph;\n\n  // gaze drifts on a closed Lissajous (seamless)\n  vec2 gaze = 0.10 * vec2(sin(th), sin(2.0 * th) * 0.6);\n  vec2 p = uv - gaze;\n  float r = length(p);\n  vec2  dir = p / max(r, 1e-4);\n  float ang = atan(p.y, p.x);\n\n  float pupilR = 0.17 + 0.05 * sin(th);          // dilation (breathing)\n  float irisR  = 0.62;\n\n  vec3 col = vec3(0.0);\n\n  // --- iris fibres (between pupil and limbus) ---\n  float t = clamp((r - pupilR) / (irisR - pupilR), 0.0, 1.0);   // 0 at pupil, 1 at rim\n  // organic radial fibres; integer angular frequency -> no seam\n  float warp = fbm(dir * 3.0 + r * 2.0);\n  float f = 0.5 + 0.5 * sin(ang * 160.0 * fibers + 16.0 * warp + r * 10.0);\n  f = pow(f, 2.0);\n  float crypt = smoothstep(0.25, 0.8, fbm(dir * 5.0 + 7.3));     // darker patches\n  // collarette: a brighter ring partway out\n  float collar = exp(-pow((t - 0.35) * 6.0, 2.0));\n\n  vec3 irisCol = mix(pal(hue + 0.55), pal(hue + 0.92), t);        // warm centre -> cool rim\n  irisCol = mix(vec3(dot(irisCol, vec3(0.33))), irisCol, 1.4);    // boost saturation\n  float irisBright = (0.35 + 1.25 * f) * (0.5 + 0.7 * crypt) + collar * 1.8;\n  float irisMask = smoothstep(pupilR, pupilR + 0.02, r) * smoothstep(irisR, irisR - 0.05, r);\n  col += irisCol * irisBright * irisMask * 1.4 * glow;\n\n  // limbus: dark ring at the iris edge\n  col *= 1.0 - 0.8 * exp(-pow((r - irisR) * 26.0, 2.0));\n\n  // --- pupil: black void with a faint inner rim glow ---\n  float pupilEdge = smoothstep(pupilR, pupilR - 0.03, r);\n  col = mix(col, vec3(0.0), pupilEdge);\n  col += pal(hue + 0.5) * exp(-pow((r - pupilR) * 30.0, 2.0)) * 0.6 * glow;  // rim light on pupil\n\n  // --- sclera / surrounding darkness with faint veins ---\n  float outside = smoothstep(irisR, irisR + 0.04, r);\n  float veins = smoothstep(0.55, 0.9, fbm(uv * 4.0 + 3.0));\n  vec3 scler = vec3(0.04, 0.05, 0.07) + pal(hue + 0.0) * veins * 0.12;\n  col = mix(col, scler, outside);\n\n  // --- wet catch-light (specular) sliding across the cornea ---\n  vec2 cl = vec2(-0.17, 0.19) + 0.04 * vec2(cos(th), sin(th));\n  float spec = exp(-dot(uv - cl, uv - cl) * 260.0);\n  col += vec3(1.0) * spec * 2.4;                    // tight glossy highlight\n  col += vec3(1.0) * exp(-dot(uv - cl, uv - cl) * 40.0) * 0.5;   // soft bloom around it\n  // small second highlight\n  vec2 cl2 = cl * 0.45 - vec2(0.04, -0.02);\n  col += vec3(0.85, 0.92, 1.0) * exp(-dot(uv - cl2, uv - cl2) * 600.0) * 1.0;\n\n  col = col / (1.0 + col);\n  col = pow(col, vec3(0.85));\n  col *= 1.0 - 0.25 * dot(uv * zoom, uv * zoom);\n\n  gl_FragColor = vec4(col, 1.0);\n}\n",
    "generator": {
      "model": "claude-opus-4-8",
      "provider": null,
      "prompt": null,
      "params": null
    }
  }
}