Speed:

Colors:

Shader Code

shader_type canvas_item;
render_mode blend_mix;
uniform float amount = 20.0;
uniform vec2 pressure_point = vec2(0.0, 3.0);
void fragment() {
vec2 uv = UV ;
float a = fract(sin(dot(UV, vec2(12.9898, 78.233 * TIME) *pressure_point )) * 438.5453);
vec4 col = texture(TEXTURE, UV);
col.a *= pow(a, amount);
COLOR = col;
}

Main Node Code

func _process(delta):
var mos_pos = get_viewport().get_mouse_position()
get_node("..").material.set_shader_param("pressure_point", mos_pos)

References:

* This is an older concept full of mistakes and blind hacks/experiments I added to a reference file. I like the result, decided to include it. Review the references. All other concepts are completely 'original' unless noted.

Godot_v3.2-Basic_Shaders/tree/master/Shaders
Lively Web Guide