← Gallery № 87 · canvas-2d

Analog Drift

Morphing Lissajous figures with phosphor persistence trails, harmonic overtones, and oscilloscope grid.

What is Analog Drift?

Analog Drift is a free Canvas 2D web effect in the TappyPrism library. Morphing Lissajous figures with phosphor persistence trails, harmonic overtones, and oscilloscope grid. It is drawn with the Canvas 2D API, which trades some GPU efficiency for the widest possible browser and device support. It ships as a single self-contained HTML file (analog-drift.html) with zero dependencies — no npm package, no framework, no build step. It exposes 2 live parameters — Drift Speed, Trail Length — adjustable in the browser or at runtime.

Parameters

ParameterKeyRangeDefault
Drift SpeedDRIFT_SPEED0.1 – 20.5
Trail LengthTRAIL_LENGTH0.3 – 21

How to add Analog Drift to your page

  1. Download the standalone file analog-drift.html and copy its source into your project.
  2. Or embed it as a background iframe:
    <iframe src="https://prism.tappypotato.com/fx/analog-drift.html" style="position:fixed;inset:0;width:100%;height:100%;border:0;z-index:-1" title="Analog Drift"></iframe>
  3. Tune it at runtime with postMessage:
    iframe.contentWindow.postMessage({ type: 'param', name: 'DRIFT_SPEED', value: 0.5 }, '*');

Frequently asked questions

What is Analog Drift?

Analog Drift is a free Canvas 2D web effect in the TappyPrism library. Morphing Lissajous figures with phosphor persistence trails, harmonic overtones, and oscilloscope grid. It is drawn with the Canvas 2D API, which trades some GPU efficiency for the widest possible browser and device support. It ships as a single self-contained HTML file (analog-drift.html) with zero dependencies — no npm package, no framework, no build step. It exposes 2 live parameters — Drift Speed, Trail Length — adjustable in the browser or at runtime.

How do I add Analog Drift to my website?

Download the standalone file at https://prism.tappypotato.com/fx/analog-drift.html and copy its source into your page, or embed it as a background iframe: <iframe src="https://prism.tappypotato.com/fx/analog-drift.html" style="position:fixed;inset:0;width:100%;height:100%;border:0;z-index:-1" title="Analog Drift"></iframe>. Tune it live with postMessage, e.g. iframe.contentWindow.postMessage({ type: 'param', name: 'DRIFT_SPEED', value: 0.5 }, '*').