struct GlowArgs {
    float step0;
    float step1;
    float pulseSize0;
    float pulseSize1;
    float pulseTime;
};

float glow(GlowArgs args, vec2 pos, float time) {
    float radius = length(pos);
    float pulse  = sin(args.pulseTime * time);
    float glow   = 1.0 - smoothstep(
                            args.step0 + args.pulseSize0 * pulse,
                            args.step1 + args.pulseSize1 * pulse,
                            radius);

    return glow;
}
