WebGL Mandelbrot
Mandelbrot using shaders
This is a Mandelbrot zoomer done using shaders. See below for code.
The shader code
Vertex shader
attribute vec3 position;
void main(void) {
    gl_Position = vec4(position, 1.0);
}Fragment shader
precision mediump float;
uniform float width;
uniform float zoom;
void main(void) {
    float zx = 0.0;
    float zy = 0.0;
    float x;
    float y;
    gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
    for(int i = 0; i < 50; i++) {
        x = zx * zx - zy * zy;
        y = zx * zy;
        if(zx * zx + zy * zy > 4.0) {
            gl_FragColor.r = sin(float(i) / 10.0);
            gl_FragColor.b = cos(float(i) / 10.0);
            break;
        }
        zx = x + gl_FragCoord.x / width - zoom;
        zy = 2.0 * y + gl_FragCoord.y / width;
    }
}
        
