liquiddom
Showcase

Metaball Fusion

Five blobs in a tight cluster. With theme.fusionRadius: 60 and WebGPU, they merge into a smooth metaball via SDF smooth-min. Toggle to Canvas2D — the option is ignored and you see five distinct shapes. This is what WebGPU buys you.

Fusion demo

Powered by
const liquid = await LiquidDOM.create({
    capacity: 8,
    autoObserve: true,
    container: root,
    renderer,
    // rgba() is the safe format for both Canvas2D and WebGPU renderers.
    // (WebGPU shader does not parse oklch.)
    colorDefault: "rgba(140, 95, 220, 0.85)",
    theme: { fusionRadius: 60 },  // WebGPU only — Canvas2D ignores
  });

fusionRadius activates a WebGPU-only full-screen quad shader that smooth-mins the SDFs of all entities. When two blobs come within ~60 CSS pixels of each other, their boundaries merge into one.

Canvas2D ignores the option entirely — the blobs render via the Bezier-spline path with no compositing. Click Canvas2D in the header toggle to see the difference live.