2^19 kinematic 2D points which get accelerated along the difference gradients of the Gaussians of their additive projection.
This was mostly implemented in Vanilla JS but the computationally heavy simulation runs on the GPU.
Main texture size: 1024 x 512 pixels
Fluid simulation grid size: 64 x 32
Open the console and find some more implementation hints.
Doubleclick ANYWHERE to (un)hide this box.
Fullscreen View recommended for the curve editor.
Drag and drop boxes then [A]dd, [M]ove, and [D]elete the B-Spline controls.
Use the browser history to step in your curve edits. Sharing URLs with hashed curve edits doesn't work (yet)
Also the binding to the control point text input does not work in both directions.
The spline editor is renderered with an offscreen 2D context and gets transferred to a WebGL texture.
One primary advance shader warps and processes the backbuffer feedback loop.
A secondary composite shader mixes the many layers to the screen.
Together with the precalculation of the blur textures, this is actually a clone of Milkdrop 2's pipeline.
You might notice some 2D drawing code for the Kinect skeletal tracking model as provided by Cake23.
Fluid Simulation code originally by Evgeny Demidov. Gaussian Blur by Matt DesLauriers
0 / frames per second
blur gradient composite
only particles
stretch canvas to viewport
spline control points: