FreeVJ FULL AUTO VJ LOOP

FreeVJ / Loop library / Field

Liquid Blobs

Metaballs that merge and split, swelling with the bass.

Liquid Blobs
Play this loop live

Exports are made in this browser and saved directly.

GLSL source

// Liquid metaball blobs. Lissajous orbits close in whole turns over 16 beats — seamless. Lows inflate the blobs.
vec2 prim(vec2 uv) {
    vec2 p = asp(uv);
    float field = 0.0;
    float rad = (0.09 + uBass * 0.07) * uParams.y;
    for (int i = 0; i < 8; i++) {
        if (float(i) >= uParams.x) break;
        float fi = float(i);
        float t = uBeat * TAU / 16.0;
        vec2 c = vec2(sin(t * (1.0 + mod(fi, 2.0)) + fi * 2.1), cos(t * (1.0 + mod(fi, 3.0)) + fi * 1.3)) * vec2(0.55, 0.32);
        field += rad * rad / max(dot(p - c, p - c), 1e-4);
    }
    float l = smoothstep(0.8, 1.25, field) * 0.75 + clamp(field * 0.15, 0.0, 0.25);
    return vec2(l, smoothstep(0.3, 1.0, field));
}

One vec2 prim(vec2 uv) function using the shared uniform contract (uBeat · uBass · uKick …). It outputs luma and alpha only.

Similar loops

☕ Buy me a coffee

FreeVJ is free. If you enjoy it, support the maker with a coffee's worth of USDT.

USDT · TRON (TRC20) TRC20 network only

TVg11kWumyqNpRU9HXKo8a8u2fa8sdJtKh

☕ 3 USDT☕☕ 5 USDT☕☕☕ 10 USDT

How to send with Binance
  1. Binance app: Wallet › Withdraw › USDT › paste the address (or scan the QR) › network TRC20 › amount › confirm. The address belongs to Binance, so it may go through as a free internal transfer.
  2. Other wallets and exchanges (Trust Wallet, OKX, Bybit …): send USDT on the TRC20 network to the same address. A self-custody wallet needs a little TRX for the fee.

Always send on the TRC20 network. USDT sent on another network is hard to recover.