{
  "license": "CC0-1.0",
  "shader": {
    "id": "8958rcpo",
    "title": "slop boye",
    "license": "CC0-1.0",
    "provenance_type": "bred",
    "made_with": "glslop",
    "status": "active",
    "compile_ok": true,
    "render_hash": "0000000bffffbfff",
    "tags": [],
    "parents": [
      "lmwpv7hh"
    ],
    "author": "1gwr295ajjm0",
    "author_name": "mcnuggetsupreme",
    "author_url": "/u/mcnuggetsupreme",
    "created_at": "2026-08-27T07:43:37.841Z",
    "poster_url": "/posters/8958rcpo.avif",
    "stats": {
      "slops": 2,
      "views": 117,
      "forks": 0
    },
    "supersedes": "lmwpv7hh",
    "self": "/api/v1/shaders/8958rcpo",
    "isf": "/*{\n  \"DESCRIPTION\": \"Silicon Pastoral Dreams — an uncanny CGI landscape of wet grass, chrome organisms, floating eyes, glass ribbons and reflective spheres.\",\n  \"CREDIT\": \"OpenAI for Circa\",\n  \"CATEGORIES\": [\n    \"Generator\",\n    \"Surreal\",\n    \"Landscape\"\n  ],\n  \"INPUTS\": [\n    {\n      \"NAME\": \"speed\",\n      \"TYPE\": \"float\",\n      \"DEFAULT\": 0.35,\n      \"MIN\": 0.0,\n      \"MAX\": 2.0\n    },\n    {\n      \"NAME\": \"brightness\",\n      \"TYPE\": \"float\",\n      \"DEFAULT\": 1.15,\n      \"MIN\": 0.4,\n      \"MAX\": 2.0\n    },\n    {\n      \"NAME\": \"dreamWarp\",\n      \"TYPE\": \"float\",\n      \"DEFAULT\": 0.45,\n      \"MIN\": 0.0,\n      \"MAX\": 1.0\n    },\n    {\n      \"NAME\": \"chrome\",\n      \"TYPE\": \"float\",\n      \"DEFAULT\": 0.8,\n      \"MIN\": 0.0,\n      \"MAX\": 1.0\n    },\n    {\n      \"NAME\": \"eyeScale\",\n      \"TYPE\": \"float\",\n      \"DEFAULT\": 1.0,\n      \"MIN\": 0.4,\n      \"MAX\": 1.8\n    },\n    {\n      \"NAME\": \"grassDetail\",\n      \"TYPE\": \"float\",\n      \"DEFAULT\": 0.85,\n      \"MIN\": 0.0,\n      \"MAX\": 1.0\n    },\n    {\n      \"NAME\": \"organismCount\",\n      \"TYPE\": \"float\",\n      \"DEFAULT\": 5.0,\n      \"MIN\": 1.0,\n      \"MAX\": 8.0\n    },\n    {\n      \"NAME\": \"cameraDrift\",\n      \"TYPE\": \"float\",\n      \"DEFAULT\": 0.25,\n      \"MIN\": 0.0,\n      \"MAX\": 1.0\n    }\n  ]\n}*/\n\n#define PI 3.14159265359\n#define TAU 6.28318530718\n#define MAX_ORGANISMS 8\n#define MAX_SPINES 18\n\nfloat saturate(float x)\n{\n    return clamp(x, 0.0, 1.0);\n}\n\nfloat hash21(vec2 p)\n{\n    p = fract(p * vec2(123.34, 456.21));\n    p += dot(p, p + 45.32);\n    return fract(p.x * p.y);\n}\n\nfloat noise21(vec2 p)\n{\n    vec2 i = floor(p);\n    vec2 f = fract(p);\n\n    f = f * f * (3.0 - 2.0 * f);\n\n    float a = hash21(i);\n    float b = hash21(i + vec2(1.0, 0.0));\n    float c = hash21(i + vec2(0.0, 1.0));\n    float d = hash21(i + vec2(1.0, 1.0));\n\n    return mix(\n        mix(a, b, f.x),\n        mix(c, d, f.x),\n        f.y\n    );\n}\n\nfloat fbm(vec2 p)\n{\n    float value = 0.0;\n    float amplitude = 0.5;\n\n    for (int i = 0; i < 5; i++)\n    {\n        value += noise21(p) * amplitude;\n        p = p * 2.03 + vec2(13.1, 7.7);\n        amplitude *= 0.5;\n    }\n\n    return value;\n}\n\nmat2 rot(float a)\n{\n    float s = sin(a);\n    float c = cos(a);\n    return mat2(c, -s, s, c);\n}\n\nfloat sdCircle(vec2 p, float r)\n{\n    return length(p) - r;\n}\n\nfloat sdEllipse(vec2 p, vec2 r)\n{\n    return (length(p / r) - 1.0) * min(r.x, r.y);\n}\n\nfloat sdCapsule(vec2 p, vec2 a, vec2 b, float r)\n{\n    vec2 pa = p - a;\n    vec2 ba = b - a;\n    float h = saturate(dot(pa, ba) / dot(ba, ba));\n    return length(pa - ba * h) - r;\n}\n\nvec3 skyColor(float y)\n{\n    vec3 horizon = vec3(0.72, 0.90, 1.03);\n    vec3 zenith = vec3(0.18, 0.59, 0.96);\n\n    float gradient = smoothstep(0.37, 1.0, y);\n    return mix(horizon, zenith, gradient);\n}\n\nvec3 chromeColor(vec2 normal, float fresnel, float phase)\n{\n    float reflectionBand =\n        0.5 +\n        0.5 * sin(\n            normal.y * 11.0 +\n            normal.x * 4.0 +\n            phase\n        );\n\n    vec3 darkMetal = vec3(0.015, 0.035, 0.055);\n    vec3 skyMetal = vec3(0.42, 0.77, 1.00);\n    vec3 whiteMetal = vec3(0.92, 0.98, 1.00);\n\n    vec3 col = mix(darkMetal, skyMetal, reflectionBand);\n    col = mix(col, whiteMetal, pow(reflectionBand, 8.0));\n\n    return mix(col, vec3(0.02, 0.06, 0.08), fresnel * 0.25);\n}\n\nvec3 renderGrass(vec2 uv, vec2 aspectUV, float horizon, float t)\n{\n    float groundDepth =\n        0.095 /\n        max(horizon - uv.y, 0.008);\n\n    float worldX =\n        (aspectUV.x - 0.5) *\n        groundDepth;\n\n    vec2 world = vec2(\n        worldX,\n        groundDepth + t * 0.025\n    );\n\n    float broadNoise = fbm(world * vec2(0.8, 0.18));\n    float fineNoise = fbm(world * vec2(5.0, 1.1));\n\n    vec3 shadowGrass = vec3(0.008, 0.095, 0.018);\n    vec3 midGrass = vec3(0.025, 0.31, 0.045);\n    vec3 lightGrass = vec3(0.18, 0.53, 0.08);\n\n    vec3 col = mix(shadowGrass, midGrass, broadNoise);\n    col = mix(col, lightGrass, fineNoise * 0.42);\n\n    float blades =\n        sin(world.x * 75.0 + world.y * 4.0) *\n        sin(world.x * 31.0 - world.y * 8.0);\n\n    blades = pow(max(blades, 0.0), 7.0);\n    blades *= smoothstep(0.3, 2.5, groundDepth);\n\n    float bladeNoise =\n        hash21(\n            floor(\n                world *\n                vec2(120.0, 18.0)\n            )\n        );\n\n    col +=\n        vec3(0.19, 0.48, 0.055) *\n        blades *\n        bladeNoise *\n        grassDetail;\n\n    float wetGlints =\n        pow(\n            max(\n                0.0,\n                sin(world.x * 117.0 + world.y * 11.0)\n            ),\n            25.0\n        );\n\n    wetGlints *=\n        step(\n            0.91,\n            hash21(floor(world * 45.0))\n        );\n\n    col +=\n        vec3(0.62, 0.92, 0.92) *\n        wetGlints *\n        grassDetail *\n        0.7;\n\n    float distanceFade =\n        smoothstep(0.0, 1.7, groundDepth);\n\n    col = mix(\n        vec3(0.21, 0.42, 0.12),\n        col,\n        distanceFade\n    );\n\n    return col;\n}\n\nvec3 renderReflectiveSphere(\n    vec2 uv,\n    vec2 center,\n    float radius,\n    float phase,\n    vec3 background\n)\n{\n    vec2 p = (uv - center) / radius;\n    float r2 = dot(p, p);\n\n    float mask =\n        1.0 -\n        smoothstep(0.94, 1.01, sqrt(r2));\n\n    if (mask <= 0.0)\n    {\n        return background;\n    }\n\n    float z = sqrt(max(0.0, 1.0 - r2));\n    vec3 normal = normalize(vec3(p, z));\n\n    float fresnel =\n        pow(\n            1.0 - max(normal.z, 0.0),\n            3.0\n        );\n\n    float reflectedY =\n        normal.y * 0.5 + 0.5;\n\n    vec3 reflection = skyColor(reflectedY);\n\n    float groundReflection =\n        smoothstep(-0.05, -0.7, normal.y);\n\n    reflection = mix(\n        reflection,\n        vec3(0.015, 0.19, 0.025),\n        groundReflection\n    );\n\n    float darkBand =\n        exp(\n            -18.0 *\n            abs(normal.y + 0.17)\n        );\n\n    reflection *= 1.0 - darkBand * 0.78;\n\n    float horizonBand =\n        exp(\n            -45.0 *\n            abs(normal.y + 0.02)\n        );\n\n    reflection +=\n        vec3(0.82, 0.97, 1.0) *\n        horizonBand;\n\n    float highlight =\n        pow(\n            max(\n                0.0,\n                dot(\n                    normal,\n                    normalize(vec3(-0.65, 0.72, 1.0))\n                )\n            ),\n            45.0\n        );\n\n    reflection += vec3(1.0) * highlight * 1.8;\n    reflection += vec3(0.20, 0.55, 0.72) * fresnel;\n\n    float edge =\n        exp(\n            -28.0 *\n            abs(sqrt(r2) - 1.0)\n        );\n\n    reflection +=\n        vec3(0.76, 0.96, 1.0) *\n        edge *\n        0.55;\n\n    return mix(background, reflection, mask);\n}\n\nvec3 renderEyeOrganism(\n    vec2 uv,\n    vec2 center,\n    float scale,\n    float phase,\n    float depth,\n    vec3 background\n)\n{\n    vec2 p = (uv - center) / scale;\n\n    float floatMotion =\n        sin(phase * 0.7) * 0.025;\n\n    p.y += floatMotion;\n\n    float bodyRadius =\n        0.29 +\n        0.018 * sin(phase * 1.3);\n\n    float bodyDistance =\n        sdCircle(p, bodyRadius);\n\n    float bodyMask =\n        1.0 -\n        smoothstep(-0.01, 0.014, bodyDistance);\n\n    float bodyGlow =\n        exp(\n            -13.0 *\n            max(bodyDistance, 0.0)\n        );\n\n    vec3 col = background;\n\n    col +=\n        vec3(0.08, 0.34, 0.28) *\n        bodyGlow *\n        0.25;\n\n    vec2 sphereP = p / bodyRadius;\n    float sphereR2 = dot(sphereP, sphereP);\n    float sphereZ = sqrt(max(0.0, 1.0 - sphereR2));\n\n    vec3 bodyNormal =\n        normalize(vec3(sphereP, sphereZ));\n\n    float bodyLight =\n        saturate(\n            dot(\n                bodyNormal,\n                normalize(vec3(-0.6, 0.8, 1.0))\n            )\n        );\n\n    float bodyFresnel =\n        pow(\n            1.0 - max(bodyNormal.z, 0.0),\n            3.0\n        );\n\n    vec3 bodyColor = mix(\n        vec3(0.002, 0.018, 0.017),\n        vec3(0.015, 0.17, 0.11),\n        bodyLight\n    );\n\n    bodyColor +=\n        vec3(0.02, 0.28, 0.25) *\n        bodyFresnel;\n\n    float bodyHighlight =\n        pow(bodyLight, 18.0);\n\n    bodyColor +=\n        vec3(0.63, 0.95, 0.86) *\n        bodyHighlight *\n        0.6;\n\n    col = mix(col, bodyColor, bodyMask);\n\n    /*\n       Organic spikes surrounding the creature\n    */\n\n    for (int i = 0; i < MAX_SPINES; i++)\n    {\n        float fi = float(i);\n        float angle =\n            fi / float(MAX_SPINES) * TAU +\n            0.09 * sin(phase + fi);\n\n        vec2 direction =\n            vec2(cos(angle), sin(angle));\n\n        float spikeLength =\n            0.13 +\n            0.07 *\n            hash21(vec2(fi, depth * 19.0));\n\n        vec2 a = direction * 0.22;\n        vec2 b =\n            direction *\n            (0.34 + spikeLength);\n\n        float spike =\n            sdCapsule(\n                p,\n                a,\n                b,\n                mix(0.035, 0.014, length(p))\n            );\n\n        float spikeMask =\n            1.0 -\n            smoothstep(-0.008, 0.009, spike);\n\n        float spikeShade =\n            0.35 +\n            0.65 *\n            saturate(\n                direction.y * 0.5 + 0.5\n            );\n\n        vec3 spikeColor = mix(\n            vec3(0.002, 0.012, 0.013),\n            vec3(0.025, 0.19, 0.15),\n            spikeShade\n        );\n\n        spikeColor +=\n            vec3(0.42, 0.78, 0.65) *\n            pow(spikeShade, 7.0) *\n            chrome;\n\n        col = mix(\n            col,\n            spikeColor,\n            spikeMask\n        );\n    }\n\n    /*\n       Dimensional eyeball\n    */\n\n    vec2 eyeP = p - vec2(\n        0.055 * sin(phase * 0.28),\n        0.012 * cos(phase * 0.37)\n    );\n\n    eyeP.x *= 0.92;\n\n    float eyeDistance =\n        sdCircle(eyeP, 0.185);\n\n    float eyeMask =\n        1.0 -\n        smoothstep(-0.008, 0.01, eyeDistance);\n\n    vec2 eyeSphereP = eyeP / 0.185;\n    float eyeR2 = dot(eyeSphereP, eyeSphereP);\n    float eyeZ = sqrt(max(0.0, 1.0 - eyeR2));\n\n    vec3 eyeNormal =\n        normalize(vec3(eyeSphereP, eyeZ));\n\n    float eyeLight =\n        saturate(\n            dot(\n                eyeNormal,\n                normalize(vec3(-0.55, 0.7, 1.0))\n            )\n        );\n\n    vec3 sclera = mix(\n        vec3(0.44, 0.52, 0.48),\n        vec3(0.98, 0.96, 0.83),\n        eyeLight\n    );\n\n    float irisDistance =\n        length(\n            eyeP -\n            vec2(\n                0.025 * sin(phase * 0.4),\n                0.012 * cos(phase * 0.31)\n            )\n        );\n\n    float iris =\n        1.0 -\n        smoothstep(\n            0.072,\n            0.09,\n            irisDistance\n        );\n\n    float pupil =\n        1.0 -\n        smoothstep(\n            0.025,\n            0.038,\n            irisDistance\n        );\n\n    float irisTexture =\n        0.5 +\n        0.5 *\n        sin(\n            atan(eyeP.y, eyeP.x) * 22.0 +\n            irisDistance * 170.0\n        );\n\n    vec3 irisColor = mix(\n        vec3(0.005, 0.07, 0.10),\n        vec3(0.16, 0.64, 0.76),\n        irisTexture\n    );\n\n    irisColor +=\n        vec3(0.55, 0.89, 0.92) *\n        pow(irisTexture, 8.0);\n\n    vec3 eyeColor = sclera;\n    eyeColor = mix(eyeColor, irisColor, iris);\n    eyeColor = mix(\n        eyeColor,\n        vec3(0.001, 0.006, 0.009),\n        pupil\n    );\n\n    float eyeHighlight =\n        1.0 -\n        smoothstep(\n            0.017,\n            0.035,\n            length(\n                eyeP -\n                vec2(-0.065, 0.07)\n            )\n        );\n\n    eyeColor +=\n        vec3(1.0, 1.0, 0.95) *\n        eyeHighlight *\n        1.5;\n\n    float eyeRim =\n        exp(\n            -45.0 *\n            abs(eyeDistance)\n        );\n\n    eyeColor +=\n        vec3(0.08, 0.15, 0.12) *\n        eyeRim;\n\n    col = mix(col, eyeColor, eyeMask);\n\n    return col;\n}\n\nvec3 renderGlassRibbon(\n    vec2 uv,\n    float offset,\n    float amplitude,\n    float width,\n    float phase,\n    vec3 background\n)\n{\n    float curve =\n        offset +\n        sin(\n            uv.x * 5.0 +\n            phase\n        ) *\n        amplitude;\n\n    curve +=\n        sin(\n            uv.x * 11.0 -\n            phase * 0.43\n        ) *\n        amplitude *\n        0.18;\n\n    float distanceToCurve =\n        abs(uv.y - curve);\n\n    float ribbon =\n        1.0 -\n        smoothstep(\n            width,\n            width + 0.008,\n            distanceToCurve\n        );\n\n    float rim =\n        exp(\n            -85.0 *\n            abs(distanceToCurve - width)\n        );\n\n    float innerReflection =\n        0.5 +\n        0.5 *\n        sin(\n            distanceToCurve * 260.0 +\n            uv.x * 14.0\n        );\n\n    vec3 glassColor = mix(\n        vec3(0.06, 0.31, 0.43),\n        vec3(0.74, 0.96, 1.0),\n        innerReflection\n    );\n\n    glassColor *=\n        mix(0.35, 0.82, chrome);\n\n    vec3 col = mix(\n        background,\n        glassColor,\n        ribbon * 0.58\n    );\n\n    col +=\n        vec3(0.55, 0.92, 1.0) *\n        rim *\n        chrome;\n\n    return col;\n}\n\nvec3 renderBoneChain(\n    vec2 uv,\n    float offset,\n    float amplitude,\n    float phase,\n    vec3 background\n)\n{\n    float curve =\n        offset +\n        sin(\n            uv.x * 4.8 +\n            phase\n        ) *\n        amplitude;\n\n    vec2 cellUV = vec2(\n        uv.x * 28.0,\n        (uv.y - curve) * 28.0\n    );\n\n    vec2 cell = fract(cellUV) - 0.5;\n    float cellIndex = floor(cellUV.x);\n\n    float randomRotation =\n        (hash21(vec2(cellIndex, 4.0)) - 0.5) *\n        1.1;\n\n    cell *= rot(randomRotation);\n\n    float vertebra =\n        sdCapsule(\n            cell,\n            vec2(-0.24, 0.0),\n            vec2(0.24, 0.0),\n            0.095\n        );\n\n    float upperBranch =\n        sdCapsule(\n            cell,\n            vec2(-0.04, 0.02),\n            vec2(-0.18, 0.31),\n            0.052\n        );\n\n    float lowerBranch =\n        sdCapsule(\n            cell,\n            vec2(0.04, -0.02),\n            vec2(0.17, -0.29),\n            0.047\n        );\n\n    float boneDistance =\n        min(\n            vertebra,\n            min(upperBranch, lowerBranch)\n        );\n\n    float curveMask =\n        1.0 -\n        smoothstep(\n            0.035,\n            0.05,\n            abs(uv.y - curve)\n        );\n\n    float boneMask =\n        (\n            1.0 -\n            smoothstep(\n                -0.008,\n                0.012,\n                boneDistance\n            )\n        ) *\n        curveMask;\n\n    float boneShade =\n        smoothstep(\n            -0.15,\n            0.22,\n            cell.y\n        );\n\n    vec3 boneColor = mix(\n        vec3(0.10, 0.16, 0.18),\n        vec3(0.88, 0.96, 0.93),\n        boneShade\n    );\n\n    boneColor +=\n        vec3(0.35, 0.69, 0.83) *\n        pow(boneShade, 7.0) *\n        chrome;\n\n    float shadow =\n        exp(\n            -22.0 *\n            abs(uv.y - curve + 0.012)\n        );\n\n    vec3 col = background;\n    col *= 1.0 - shadow * 0.08;\n    col = mix(col, boneColor, boneMask);\n\n    return col;\n}\n\nvoid main()\n{\n    vec2 uv = isf_FragNormCoord.xy;\n    vec2 resolution = RENDERSIZE.xy;\n\n    float aspect =\n        resolution.x /\n        max(resolution.y, 1.0);\n\n    vec2 sceneUV = uv;\n    sceneUV.x =\n        (sceneUV.x - 0.5) *\n        aspect +\n        0.5;\n\n    float t = TIME * speed;\n\n    sceneUV.x +=\n        sin(t * 0.11) *\n        cameraDrift *\n        0.035;\n\n    sceneUV.y +=\n        cos(t * 0.09) *\n        cameraDrift *\n        0.012;\n\n    float horizon = 0.43;\n\n    vec3 color = skyColor(uv.y);\n\n    /*\n       Soft atmospheric CGI haze\n    */\n\n    float cloudNoise =\n        fbm(\n            vec2(\n                sceneUV.x * 2.2 + t * 0.015,\n                uv.y * 3.2\n            )\n        );\n\n    float haze =\n        cloudNoise *\n        smoothstep(0.42, 0.75, uv.y) *\n        0.12;\n\n    color +=\n        vec3(0.58, 0.79, 0.94) *\n        haze;\n\n    float horizonGlow =\n        exp(\n            -19.0 *\n            abs(uv.y - horizon)\n        );\n\n    color +=\n        vec3(0.42, 0.78, 0.96) *\n        horizonGlow *\n        0.2;\n\n    /*\n       Wet photorealistic grass plane\n    */\n\n    if (uv.y < horizon)\n    {\n        vec3 grass = renderGrass(\n            uv,\n            sceneUV,\n            horizon,\n            t\n        );\n\n        float groundMask =\n            smoothstep(\n                horizon,\n                horizon - 0.015,\n                uv.y\n            );\n\n        color = mix(\n            color,\n            grass,\n            groundMask\n        );\n    }\n\n    /*\n       Distant smooth grassy mounds\n    */\n\n    float hill =\n        horizon +\n        0.025 +\n        0.035 *\n        sin(sceneUV.x * 8.0) +\n        0.018 *\n        sin(sceneUV.x * 17.0 + 2.0);\n\n    float hillMask =\n        1.0 -\n        smoothstep(\n            hill,\n            hill + 0.008,\n            uv.y\n        );\n\n    vec3 hillColor = mix(\n        vec3(0.025, 0.19, 0.03),\n        vec3(0.18, 0.42, 0.055),\n        fbm(sceneUV * 12.0)\n    );\n\n    color = mix(\n        color,\n        hillColor,\n        hillMask *\n        smoothstep(0.36, 0.47, uv.y)\n    );\n\n    /*\n       Monumental glass loops\n    */\n\n    color = renderGlassRibbon(\n        sceneUV,\n        0.59,\n        0.19,\n        0.018,\n        t * 0.22,\n        color\n    );\n\n    color = renderGlassRibbon(\n        sceneUV,\n        0.66,\n        0.13,\n        0.009,\n        -t * 0.17 + 2.4,\n        color\n    );\n\n    /*\n       Skeletal organic ribbons\n    */\n\n    color = renderBoneChain(\n        sceneUV,\n        0.61,\n        0.15,\n        t * 0.18,\n        color\n    );\n\n    color = renderBoneChain(\n        sceneUV,\n        0.46,\n        0.10,\n        -t * 0.12 + 1.7,\n        color\n    );\n\n    color = renderBoneChain(\n        sceneUV,\n        0.34,\n        0.075,\n        t * 0.15 + 3.1,\n        color\n    );\n\n    /*\n       Floating chrome memory-spheres\n    */\n\n    color = renderReflectiveSphere(\n        sceneUV,\n        vec2(\n            0.16,\n            0.82 +\n            0.012 * sin(t)\n        ),\n        0.045,\n        t,\n        color\n    );\n\n    color = renderReflectiveSphere(\n        sceneUV,\n        vec2(\n            0.39,\n            0.66 +\n            0.018 * sin(t * 0.7 + 2.0)\n        ),\n        0.037,\n        t + 2.0,\n        color\n    );\n\n    color = renderReflectiveSphere(\n        sceneUV,\n        vec2(\n            0.77,\n            0.73 +\n            0.015 * cos(t * 0.8)\n        ),\n        0.026,\n        t + 4.0,\n        color\n    );\n\n    /*\n       Biomechanical eye characters\n    */\n\n    for (int i = 0; i < MAX_ORGANISMS; i++)\n    {\n        float fi = float(i);\n        float enabled =\n            1.0 -\n            step(organismCount, fi);\n\n        float seed = fi * 17.31 + 6.0;\n        float depth =\n            hash21(vec2(seed, 8.2));\n\n        float x = mix(\n            0.12,\n            0.91,\n            hash21(vec2(seed, 2.1))\n        );\n\n        float y = mix(\n            0.29,\n            0.62,\n            hash21(vec2(seed, 4.9))\n        );\n\n        x +=\n            sin(t * 0.18 + seed) *\n            0.016 *\n            dreamWarp;\n\n        y +=\n            cos(t * 0.23 + seed) *\n            0.012 *\n            dreamWarp;\n\n        float scale =\n            mix(0.032, 0.095, depth) *\n            eyeScale;\n\n        vec3 organism = renderEyeOrganism(\n            sceneUV,\n            vec2(x, y),\n            scale,\n            t + seed,\n            depth,\n            color\n        );\n\n        color = mix(\n            color,\n            organism,\n            enabled\n        );\n    }\n\n    /*\n       Subtle dream-lens distortion\n    */\n\n    float spectral =\n        sin(\n            uv.x * 17.0 +\n            uv.y * 11.0 +\n            t\n        );\n\n    color.r +=\n        spectral *\n        dreamWarp *\n        0.006;\n\n    color.b -=\n        spectral *\n        dreamWarp *\n        0.004;\n\n    float vignette =\n        1.0 -\n        smoothstep(\n            0.46,\n            0.93,\n            length(\n                (uv - 0.5) *\n                vec2(0.82, 1.0)\n            )\n        );\n\n    color *= 0.88 + 0.12 * vignette;\n    color *= brightness;\n\n    /*\n       Glossy photographic response\n    */\n\n    color = max(color, vec3(0.0));\n    color = color / (0.82 + color * 0.24);\n    color = pow(color, vec3(0.91));\n\n    gl_FragColor = vec4(color, 1.0);\n}"
  }
}