Draw My Canvas / studio

Lissajous Ribbon

A 3:2 Lissajous figure drawn as a band that tapers to nothing at both ends.

Plate 10lissajous

Waiting for the animation above to load…

What lands in the file, and what the width does

One click writes whatever the animation is drawing at that moment to a PNG, with the drawmycanvas.com mark drawn into the picture rather than laid over it. Leave the width box empty and you get the stage exactly as your browser rasterised it — your window’s width times its device pixel ratio, which is about 1,600 px across from a 1280‑px window on a HiDPI laptop and about 353 px from a 390‑px phone.

Type a width instead, or take a preset, and the frame is redrawn into a canvas that wide: the height follows the stage’s own shape and the mark scales with it. The stage is 16:9 on a wide window and 4:3 below 560 px, so a width of 1200 saves 1200×675 on a laptop and 1200×900 on a phone. 1200 px is the width Open Graph and X link cards are cut from — the canonical card is 1200×630, and a card crops the extra height rather than letterboxing it.

Honest limits. Asking for more pixels than the stage was drawn at resamples pixels that were never drawn: a 1920‑px file exported from a 353‑px phone stage is bigger, not sharper. For a big file that is sharp, use Save as wallpaper: it draws the plate again from scratch at exactly 1179×2556 or 1290×2796 (phones), 1920×1080, 2560×1440 or 3840×2160 (4K), so every line is rasterised at that size and the shape is the screen’s, never stretched. Because the plate restarts, a wallpaper is a fresh run of it rather than the exact frame on screen; it is given as long as the stage has been running, up to 20 seconds, to develop. A very large width is a real memory allocation and a browser is allowed to refuse it; when that happens the line above says so plainly and nothing else on the page changes. Stills are PNG only — no JPEG, no WebP. On browsers that can record video, Record a clip saves 5, 10 or 20 seconds of the running animation as MP4 or WebM (whichever this browser can encode) at the same width, with the mark in every frame. A clip is not a seamless loop, it has no audio, and a width bigger than the stage is resampled rather than sharper — only the wallpaper is redrawn at its size. Where a browser cannot record video the button never appears and a PNG is the only export. And nothing is uploaded: the frame or clip is assembled in your own browser, so no frame of this plate ever reaches us.

Live on an HTML canvas · vanilla JavaScript · no dependencies Open fullscreen

About this piece

Drive the two axes of an oscilloscope with two sine waves and the spot traces a Lissajous figure:

x(θ) = sin(a·θ + δ)    y(θ) = sin(b·θ)

When a and b are whole numbers the curve closes after one turn of θ, and the ratio decides the knot. This one is 3:2 — three lobes along the top, two down the side. Jules Antoine Lissajous produced the same shapes in 1857 by bouncing a light beam off small mirrors glued to two tuning forks at right angles.

It is not drawn as a hairline. At each of 420 samples the curve’s tangent is known exactly, because the derivative of a sine is a cosine: x′ = 3·cos(3θ+δ), y′ = 2·cos(2θ). Turn that 90° and you have the normal; push the centre line out along it by sin(πu), where u runs 0→1 across the sweep, and the band is zero-width at both ends and widest exactly halfway round. The outline is one closed polygon: up one edge, back along the other.

What to look for

The warm band is not a second figure. It is the same 3:2 curve running 0.86 radians behind in phase — a shadow of the shape, which is why it never wanders anywhere the cobalt band has not already been.

δ drifts at about a third of a radian per second, so the figure folds through itself and re-closes on a cycle of roughly twenty seconds. Watch the taper: once a turn, the ribbon narrows to a point and the piece is briefly held together by the hairline spine alone.

The two themes composite differently, on purpose. On the dark plate the bands are added, so crossings bloom; on the light paper they are laid down normally, because adding ink toward white is adding toward invisible.

Curious how the loop and canvas fit together? Read how it works →

More from the gallery

All 32 animations in the gallery →