{
  "format": "field",
  "version": 1,
  "meta": {
    "name": "Gravitational Caustic Microlens",
    "author": "Infinite",
    "description": "Binary gravitational lens caustic curves with astroid critical folds, relativistic photon deflection, and intense chromatic caustic flare singularities. Bass contracts the Einstein ring radius, mids warp the fold and cusp caustic topology, highs explode micro-caustic relativistic amplification.",
    "domain": "pixel"
  },
  "device": {
    "code": "param float einsteinRadius = 1.05 [0.4, 2.2];\nparam float astroidScale = 0.72 [0.2, 1.8];\nparam float causticWarp = 0.65 [0.0, 1.5];\nparam float spinSpeed = 0.85 [0.1, 3.0];\nparam float cuspIntensity = 1.7 [0.5, 3.5];\n\np = vec2((uv.x - 0.5) * aspect, uv.y - 0.5) * 2.2;\nr = length(p);\n\nrot = t * spinSpeed * 0.2;\ncRot = cos(rot);\nsRot = sin(rot);\npRot = vec2(p.x * cRot - p.y * sRot, p.x * sRot + p.y * cRot);\n\nastroid = pow(abs(pRot.x / astroidScale), 0.666667) + pow(abs(pRot.y / (astroidScale * 0.7)), 0.666667);\ncausticDist = abs(astroid - 1.0);\ncausticGlow = exp(-causticDist * 8.0 * causticWarp) * 1.8;\n\nringDist = abs(r - einsteinRadius);\nringFlare = exp(-ringDist * 16.0) * 1.5;\n\ncuspFlare = (exp(-length(vec2(abs(pRot.x) - astroidScale, pRot.y)) * 12.0) + exp(-length(vec2(pRot.x, abs(pRot.y) - astroidScale * 0.7)) * 12.0)) * cuspIntensity;\n\ncGround = vec3(0.082, 0.098, 0.188);\ncSignal = vec3(0.655, 0.694, 1.0);\ncEmber = vec3(1.0, 0.42, 0.21);\ncEmerald = vec3(0.306, 0.949, 0.722);\n\ncolorCaustic = mix(cSignal, cEmerald, 0.5 + 0.5 * sin(t * spinSpeed + r * 6.0));\ncol = cGround + colorCaustic * causticGlow * 1.3 + cEmerald * ringFlare * 0.8 + (cEmber * 0.8 + vec3(1.0) * 0.2) * cuspFlare;\nfade = clamp((2.3 - r) / 1.3, 0.0, 1.0);\ncol = mix(cGround, col, fade);\nalpha = 1.0;\n",
    "params": {
      "einsteinRadius": 1.05,
      "astroidScale": 0.72,
      "causticWarp": 0.65,
      "spinSpeed": 0.85,
      "cuspIntensity": 1.7
    },
    "nodeSettings": {
      "width": 1280.0,
      "height": 720.0,
      "animate": 1.0
    }
  }
}
