{
  "license": "CC0-1.0",
  "shader": {
    "id": "3910ie4n",
    "title": "Hoarfrost",
    "license": "CC0-1.0",
    "provenance_type": "witnessed_generation",
    "made_with": "claude-code",
    "status": "active",
    "compile_ok": true,
    "tags": [
      "frost",
      "ice",
      "julia",
      "fractal",
      "crystal",
      "dendrite"
    ],
    "parents": [
      "10i4kok4"
    ],
    "author": "zazi5inxhmgi",
    "author_name": "ufffd",
    "author_url": "/u/ufffd",
    "created_at": "2026-06-20T08:59:13.930Z",
    "poster_url": "/posters/3910ie4n.avif",
    "stats": {
      "slops": 0,
      "views": 131,
      "forks": 0
    },
    "self": "/api/v1/shaders/3910ie4n",
    "isf": "/*{\n  \"DESCRIPTION\": \"Frostwork — a dendritic Julia set grown as delicate ice crystals across frosted glass, glowing with cold backlight.\",\n  \"CREDIT\": \"claude-opus-4-8\",\n  \"INPUTS\": [\n    { \"NAME\": \"zoom\",   \"TYPE\": \"float\", \"DEFAULT\": 1.5, \"MIN\": 0.6, \"MAX\": 3.0 },\n    { \"NAME\": \"cmorph\", \"TYPE\": \"float\", \"DEFAULT\": 0.5, \"MIN\": 0.0, \"MAX\": 1.0 },\n    { \"NAME\": \"frost\",  \"TYPE\": \"float\", \"DEFAULT\": 0.8, \"MIN\": 0.2, \"MAX\": 1.6 },\n    { \"NAME\": \"tint\",   \"TYPE\": \"float\", \"DEFAULT\": 0.5, \"MIN\": 0.0, \"MAX\": 1.0 }\n  ]\n}*/\n\nfloat hash(vec2 p){ p = fract(p * vec2(123.34, 456.21)); p += dot(p, p + 45.32); return fract(p.x * p.y); }\n\nvoid main(){\n  vec2 uv = (gl_FragCoord.xy - 0.5 * RENDERSIZE) / RENDERSIZE.y;\n  vec2 z = uv * zoom;\n\n  float th = TIME * 0.1 * cmorph;\n  vec2 c = vec2(-0.745, 0.113) + 0.03 * cmorph * vec2(cos(th), sin(th));   // dendritic Julia\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, abs(z.x) + abs(z.y));    // thin filament orbit trap (crystal spines)\n    if (m > 64.0) break;\n    it += 1.0;\n  }\n\n  // frosted-glass background: cold gradient + breath of frost\n  vec3 glass = mix(vec3(0.06, 0.12, 0.22), vec3(0.02, 0.05, 0.12), length(uv));\n  glass = mix(glass, vec3(0.1, 0.16, 0.26), tint);\n\n  vec3 ice = mix(vec3(0.75, 0.9, 1.0), vec3(0.85, 0.92, 1.0), tint);\n\n  vec3 col = glass;\n  if (m > 64.0){\n    float sm = it - log2(log2(m)) + 4.0;\n    float edge = smoothstep(2.0, 22.0, sm);          // crystal grows densest near the boundary\n    col = mix(glass, ice * 0.8, edge);\n    col += ice * pow(edge, 2.5) * frost * 0.8;        // bright crystalline filaments\n  }\n  // sharp crystal spines from the orbit trap\n  float spine = exp(-trap * 9.0);\n  col += ice * spine * frost * (0.5 + 0.5 * (m > 64.0 ? 1.0 : 0.0));\n  col += vec3(1.0) * pow(spine, 3.0) * 0.4 * frost;   // glinting frost\n\n  // frosted speckle\n  col += (hash(gl_FragCoord.xy) - 0.5) * 0.03;\n\n  col *= 1.0 - 0.3 * dot(uv, uv);\n  col = col / (1.0 + 0.4 * 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
    }
  }
}