{
    "QEN": {
        "fragmentCode": [
            "@main",
            "{",
            "    float time = iTime * 0.2;",
            "    vec2 a = vec2(iResolution.x / iResolution.y, 1.0);",
            "    vec2 c = texCoord.xy * a * 2.0 + time * 0.45;",
            "    float k = 0.25 + cos(c.y + sin(.148 - time)) + 3.2 * time;",
            "    float w = 0.9 + sin(c.x + cos(.628 + time)) - 1.2 * time;",
            "    float d = length(c);",
            "    float s = (2.0 / (plasmaScale + 0.02)) * cos(d+w) * sin(k+w);",
            "    vec4 plasma = vec4(0.5 + 0.5 * cos(s + plasmaColors.rgb), 1.0);",
            "    if (plasmaSpecular) {",
            "        vec4 plasmaSpecularColor = vec4(0.8, 0.6, 0.4, 1.0);",
            "        float plasmaSpecularDamper = 2.0;",
            "        plasma *= (plasmaSpecularColor",
            "            *  pow(max(normalize(vec3(length(dFdx(plasma)), length(dFdy(plasma)), 0.5/iResolution.y)).z, 0.0), plasmaSpecularDamper)",
            "                + 1.0);",
            "    }",
            "    fragColor = mix(fragColor, plasma * fragColor.a, plasmaColors.a);",
            "}"
        ],
        "name": "Plasma",
        "properties": [
            {
                "defaultValue": "true",
                "description": "When this is true, some specular reflection is added into the effect.",
                "name": "plasmaSpecular",
                "displayName": "Specular",
                "type": "bool"
            },
            {
                "defaultValue": "0.1, 0.4, 0.5, 0.5",
                "description": "Color used as a basis for the plasma effect.",
                "name": "plasmaColors",
                "displayName": "Color",
                "type": "color"
            },
            {
                "defaultValue": "0.2",
                "description": "The scale of the plasma waves. Practical range is between 0.0 and 1.0. The default value is 0.2.",
                "maxValue": "1",
                "minValue": "0",
                "name": "plasmaScale",
                "displayName": "Scale",
                "type": "float"
            }
        ],
        "version": 1
    }
}
