{
  "license": "CC0-1.0",
  "shader": {
    "id": "84enfmo8",
    "title": "Filigree",
    "license": "CC0-1.0",
    "provenance_type": "witnessed_generation",
    "made_with": "claude-code",
    "status": "active",
    "compile_ok": true,
    "tags": [
      "apollonian",
      "fractal",
      "gasket",
      "gold",
      "ifs",
      "relief"
    ],
    "parents": [],
    "author": "zazi5inxhmgi",
    "author_name": "ufffd",
    "author_url": "/u/ufffd",
    "created_at": "2026-06-20T07:13:21.979Z",
    "poster_url": "/posters/84enfmo8.avif",
    "stats": {
      "slops": 0,
      "views": 125,
      "forks": 1
    },
    "self": "/api/v1/shaders/84enfmo8",
    "isf": "/*{\n  \"DESCRIPTION\": \"Gilded foam — an Apollonian gasket of nested circles, glowing as soft golden filigree drifting in and out.\",\n  \"CREDIT\": \"claude-opus-4-8\",\n  \"INPUTS\": [\n    { \"NAME\": \"zoom\",  \"TYPE\": \"float\", \"DEFAULT\": 1.4, \"MIN\": 0.6, \"MAX\": 3.0 },\n    { \"NAME\": \"fold\",  \"TYPE\": \"float\", \"DEFAULT\": 1.08, \"MIN\": 0.9, \"MAX\": 1.3 },\n    { \"NAME\": \"glow\",  \"TYPE\": \"float\", \"DEFAULT\": 0.7, \"MIN\": 0.2, \"MAX\": 1.5 },\n    { \"NAME\": \"warm\",  \"TYPE\": \"float\", \"DEFAULT\": 0.5, \"MIN\": 0.0, \"MAX\": 1.0 }\n  ]\n}*/\n\nmat2 rot(float a){ float c = cos(a), s = sin(a); return mat2(c, -s, s, c); }\n\n// Apollonian via fold + sphere inversion (kifs). Returns structure distance; sc = accumulated scale.\nfloat apollonian(vec2 p, out float sc){\n  float scale = 1.0;\n  for (int i = 0; i < 7; i++){\n    p = -1.0 + 2.0 * fract(0.5 * p + 0.5);     // fold into [-1,1] tiles\n    float r2 = dot(p, p);\n    float k = fold / r2;                        // inversion\n    p *= k;\n    scale *= k;\n  }\n  sc = scale;\n  return 0.25 * abs(p.y) / scale;\n}\n\n// distance only (for the relief gradient)\nfloat apoD(vec2 p){\n  float scale = 1.0;\n  for (int i = 0; i < 7; i++){\n    p = -1.0 + 2.0 * fract(0.5 * p + 0.5);\n    float r2 = dot(p, p);\n    float k = fold / r2;\n    p *= k; scale *= k;\n  }\n  return 0.25 * abs(p.y) / scale;\n}\nfloat height(vec2 p){ return 1.0 / (1.0 + apoD(p) * 45.0); }\n\nvoid main(){\n  vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;\n  vec2 p = uv * zoom;\n  p *= rot(TIME * 0.05);\n  p += vec2(0.3 * sin(TIME * 0.07), 0.2 * cos(TIME * 0.05));   // slow drift\n\n  float sc;\n  float d = apollonian(p, sc);\n\n  // emboss the foam: relief lighting from the height gradient -> hammered-gold dimensionality\n  float e = 0.0026;\n  float H = height(p);\n  float Hx = height(p + vec2(e, 0.0)) - height(p - vec2(e, 0.0));\n  float Hy = height(p + vec2(0.0, e)) - height(p - vec2(0.0, e));\n  vec3 n = normalize(vec3(-Hx, -Hy, 0.035));\n  vec3 L = normalize(vec3(0.5, 0.6, 0.7));\n  float diff = 0.32 + 0.7 * max(0.0, dot(n, L));\n  float spec = pow(max(0.0, dot(reflect(-L, n), vec3(0.0, 0.0, 1.0))), 18.0);\n\n  float depth = fract(log(sc) * 0.13 + 0.04 * TIME);\n  vec3 amber = vec3(0.92, 0.42, 0.08);\n  vec3 pale  = vec3(1.0, 0.88, 0.55);\n  vec3 gold = mix(amber, pale, depth);\n\n  vec3 col = gold * H * diff * 1.5;             // lit gold relief\n  col += pale * spec * H * glow;                // metallic glints on the ridges\n  col += amber * exp(-d * 11.0) * 0.10 * glow;  // faint warm dream haze\n\n  col *= 1.0 - 0.42 * dot(uv, uv);\n  col = col / (1.0 + 0.5 * col);\n  col = pow(max(col, 0.0), vec3(0.9));\n  gl_FragColor = vec4(col, 1.0);\n}\n",
    "generator": {
      "model": "claude-opus-4-8",
      "provider": "anthropic",
      "prompt": null,
      "params": null
    }
  }
}