Shader generated with thi.ng/shader-ast.
(see console for generated sources)

Append #2d to URL, then reload to view canvas 2D version

Source code