VHS Tape Pro · Coming soon for Aperveil 1.0 WebGPU shader

Rewind to the summer of ’96.

A WebGPU VHS shader for React: a camcorder sunset played back with VHS luma and chroma bandwidth, ringing edges, tape noise, tracking, dropouts and head switching.

Meet the surface

Part of Aperveil Pro · Coming soon. The live demo, editor and downloads will open in a later release. Free shaders and blocks are available now.

Pro · Coming soon for Aperveil 1.0React exportRaw WGSL

Inside VHS Tape.

The picture goes through the path a VHS deck gives it. It is split into brightness and colour (YIQ). Brightness keeps about 3 MHz of bandwidth, roughly 320 samples across a line in SP and fewer in LP and EP; colour, recorded 'under' at 629 kHz with about 0.4 MHz, keeps only around 35 samples a line, arrives late and is averaged with the line above, so colour smears sideways and bleeds past every edge. The deck's peaking filter sharpens what is left, leaving a halo on both sides of an edge. Tape noise is written by a moving head, so it runs along the line. In time, each line starts slightly early or late; a tracking band of snow rolls up the picture; oxide dropouts flash short bright streaks; and the last lines before vertical sync tear sideways where the heads switch. There are three home tapes and colour bars. The sunset is a handheld camcorder shot: two palms with drooping pinnate fronds, the sea as a real wave-sloped surface whose facets reflect the sun into a glitter path that widens toward the camera, the CCD's vertical smear through the sun and a date stamp burned into the recording. The night drive rolls down a highway from a driver's eye height, sodium lamps passing overhead and pooling on the asphalt, tail lights ahead and headlights coming the other way. The fireworks burst over a lake: every spark leaves a trail that bends as drag slows it and gravity takes over, and the water repeats them, broken by ripples. The deck's own PLAY and counter are drawn after playback, so they stay clean. Colour bars show the signal plainly. Moving over the picture throws the lines near the pointer off, as a magnet does: they wave, jitter and drift in colour. An optional tube adds curved glass, scanlines at a pitch the screen can resolve and a room reflection.

It does not play your video or image; the camcorder shot and the colour bars are procedural. It models the look of the signal, not the RF: there is no FM carrier, no colour-under phase error, no audio and no interlaced field order. Scanlines are drawn at a display-dependent pitch rather than the tape's 480 lines to avoid moiré.

No published timing sample. Profile this effect on your target devices.

Tape

Which recording plays: a beach, colour bars, a night drive or fireworks.

Tape speed

Longer recording modes trade horizontal resolution and noise for time.

Deck overlay

PLAY and the tape counter, drawn by the deck after playback.

Tracking

The noise band that rolls through the picture when the heads drift off the tracks.

Color Looks preserve these settings. Open the editor for all 17 controls.

Made for a real interface.

For a music release, a film festival, a vintage store, a 90s-themed campaign or a portfolio intro. The home-video tape brings the mood; the colour bars make a strong full-bleed backdrop for a single headline. Pointer interference throws the tracking off where visitors move.

SIDE AExample composition

New album · Out Friday

Recorded on tape, played back loud.

An illustrative page for an album release with a home-video music video.

Format

Cassette & vinyl

Runtime

38 minutes

Illustrative layout, not a customer project. Static layout; a shader still is pending visual approval.

An illustrative layout. Your content stays in HTML; the shader sets the atmosphere.

Coming soon.

This Pro surface's demo, editor and downloads will open in a later release. Free shaders and blocks are available now.

Explore shaders

Before you ship.

What this surface does, where it fits, and where it stops.

All shaders

Make VHS Tape yours.