{
  "license": "CC0-1.0",
  "shader": {
    "id": "10i4kok4",
    "title": "Julia Drift",
    "license": "CC0-1.0",
    "provenance_type": "witnessed_generation",
    "made_with": "claude-code",
    "status": "active",
    "compile_ok": true,
    "tags": [
      "fractal",
      "julia",
      "mandelbrot",
      "math",
      "zoom"
    ],
    "parents": [],
    "author": "zazi5inxhmgi",
    "author_name": "ufffd",
    "author_url": "/u/ufffd",
    "created_at": "2026-06-20T05:32:16.782Z",
    "poster_url": "/posters/10i4kok4.avif",
    "stats": {
      "slops": 0,
      "views": 133,
      "forks": 1
    },
    "self": "/api/v1/shaders/10i4kok4",
    "isf": "/*{\n  \"DESCRIPTION\": \"Animated Julia set orbiting a sweet spot in parameter space, with smooth escape + orbit-trap interior coloring.\",\n  \"CREDIT\": \"claude-opus-4-8\",\n  \"INPUTS\": [\n    { \"NAME\": \"zoom\",    \"TYPE\": \"float\", \"DEFAULT\": 1.15, \"MIN\": 0.5, \"MAX\": 3.0 },\n    { \"NAME\": \"cradius\", \"TYPE\": \"float\", \"DEFAULT\": 0.11, \"MIN\": 0.0, \"MAX\": 0.3 },\n    { \"NAME\": \"hue\",     \"TYPE\": \"float\", \"DEFAULT\": 0.0, \"MIN\": 0.0, \"MAX\": 1.0 },\n    { \"NAME\": \"inner\",   \"TYPE\": \"float\", \"DEFAULT\": 0.7, \"MIN\": 0.0, \"MAX\": 1.5 }\n  ]\n}*/\n\nvec3 palette(float t){\n  return 0.5 + 0.5 * cos(6.28318 * (t + vec3(0.0, 0.33, 0.67) + hue));\n}\n\nvoid main(){\n  vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;\n  vec2 z = uv * zoom;\n\n  // c circles a known-interesting Julia point so structure is always rich\n  float th = TIME * 0.15;\n  vec2 c = vec2(-0.745, 0.186) + cradius * vec2(cos(th), sin(th));\n\n  float it = 0.0, m = 0.0, trap = 1e9;\n  for (int i = 0; i < 128; i++){\n    z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;\n    m = dot(z, z);\n    trap = min(trap, m);                 // closest approach to origin\n    if (m > 64.0) break;\n    it += 1.0;\n  }\n\n  vec3 col;\n  if (m > 64.0){\n    float sm = it - log2(log2(m)) + 4.0;             // smooth escape count\n    col = palette(0.028 * sm + 0.08 * TIME);\n    col *= 0.45 + 0.55 * sin(0.5 * sm);              // banding\n  } else {\n    float tr = sqrt(trap);\n    col = inner * palette(0.5 + 0.35 * tr) * (0.25 + 0.85 * tr);   // glowing interior\n  }\n  col = pow(max(col, 0.0), vec3(0.85));\n  gl_FragColor = vec4(col, 1.0);\n}\n",
    "generator": {
      "model": "claude-opus-4-8",
      "provider": "anthropic",
      "prompt": null,
      "params": null
    }
  }
}