FreeVJ FULL AUTO VJ LOOP

FreeVJ / Loop library / Pattern

Retro Grid

A synthwave floor grid rolling toward you one row per beat.

Retro Grid
Play this loop live

Exports are made in this browser and saved directly.

GLSL source

// Perspective grid approaching under the horizon (synthwave). Horizontal lines advance one row per beat — seamless over 4 beats.
vec2 prim(vec2 uv) {
    float hz = uParams.y;
    if (uv.y > hz) return vec2(0.0);
    float z = 1.0 / max(hz - uv.y, 0.002);
    float rr = fract(z * 0.12 + uBeat);
    float xx = (uv.x - 0.5) * uResolution.x / uResolution.y * z * 0.25 * uParams.x / 8.0;
    float rc = fract(xx);
    float w = 0.05 + uBass * 0.08;
    float rowLine = 1.0 - smoothstep(0.0, w, min(rr, 1.0 - rr));
    float colLine = 1.0 - smoothstep(0.0, w * 0.8, min(rc, 1.0 - rc));
    float l = max(rowLine, colLine) * (0.15 + 0.85 * smoothstep(0.0, 0.35, hz - uv.y));
    return vec2(l, l);
}

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.