0.00
60.0 fps

Log in to post a comment.

#version 300 es
precision highp float;

uniform float iTime;

in  vec2 vScreen;
out vec4 fragColor;

float gyroid (vec3 seed) {
    return dot(sin(seed),cos(seed.yzx));
}

float fbm (vec3 seed) {
    float result = 0., a = .5;
    for (int i = 0; i < 6; ++i) {
        // extra spicy twist
        seed.z += result*.5;
        
        // bounce it with abs
        result += abs(gyroid(seed/a))*a;
        
        a /= 2.;
    }
    return result;
}

float noise (vec2 p) {
    // improvise 3d seed from 2d coordinates
    vec3 seed = vec3(p, length(p) - iTime * .025);
    
    // make it slide along the sin wave
    return sin(fbm(seed)*7.)*.5+.5;
}

void main() {
    fragColor.xyz = vec3(noise(vScreen));
}