{
    "name": "Plasma Wave",
    "description": "Animierte Plasmawelle",
    "vertex_shader": "attribute vec2 a_position;\r\nvoid main() {\r\n    gl_Position = vec4(a_position, 0.0, 1.0);\r\n}",
    "fragment_shader": "precision mediump float;\r\nuniform float u_time;\r\nuniform vec2 u_resolution;\r\nuniform vec2 u_mouseNorm;\r\nuniform vec4 u_mouseClick;\r\n\r\nvoid main() {\r\n    vec2 uv = gl_FragCoord.xy \/ u_resolution.xy;\r\n    float t = u_time * 0.5;\r\n    float v = sin(uv.x * 10.0 + t) + sin(uv.y * 10.0 + t) + sin((uv.x + uv.y) * 10.0 + t);\r\n    vec3 col = 0.5 + 0.5 * cos(v + vec3(0.0, 2.0, 4.0));\r\n    float dist = length(uv - u_mouseNorm);\r\n    col += vec3(0.3, 0.5, 1.0) * smoothstep(0.3, 0.0, dist) * u_mouseClick.z;\r\n    gl_FragColor = vec4(col, 1.0);\r\n}"
}