Draw My Canvas / studio

Bitcoin Matrix

A quiet rain of ₿ and hexadecimal sliding down the glass, phosphor-style.

Plate 02digital-rain

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

A modern take on the falling-glyph “digital rain” effect. The canvas is divided into vertical columns, and each column runs its own stream of characters — here a mix of the Bitcoin sign ₿ and hexadecimal digits — dropping at a steady pace and respawning at the top once it clears the bottom.

The trick that makes it feel alive is that the frame is never fully cleared. Every tick paints a nearly-transparent black rectangle over everything, so older glyphs decay gradually instead of vanishing. That single line of code is what turns a grid of letters into a glowing, phosphor-like cascade.

What to look for

Each column has a bright head and a short trail of dimmer glyphs behind it — the head is redrawn every frame while the tail is just what the fade hasn’t erased yet.

Roughly every seventh column is tinted coral instead of bone, breaking the uniform wall of text into rhythm.

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

More from the gallery

All 32 animations in the gallery →