This demo uses TWGL.js + WebGL with a custom fragment shader. Read the blog post for a tutorial and more about how this works. Try changing the variables to see how they affect the blobs.
Variables:
| Metaball size | diameter of metaball at cursor |
| Discard threshold | minimum value of a pixel to be visible |
| Antialias threshold | maximum value for blurry edge transition |
| Noise speed | rate of animation |
| Noise height | "spikiness" of noise |
| Noise scale | x and y scaling factor of noise |