C-Trend Live

A browser VJ rig for the world's webcams that pipes live EarthCam feeds through a software Rutt/Etra synthesizer.

Tags

video synthesis, live webcam, vj

2026

live video synth

C-Trend Live
Cover image for C-Trend Live

C-Trend Live is a browser VJ rig for the world's webcams, named after Woody Vasulka's C-Trend (1974). Point it at any live EarthCam and the feed comes back as a wireframe relief, pushed around by knobs, keys, and a MIDI controller.

C-Trend Live Installation at MIT Media Lab Spring 2026
C-Trend Live Installation at MIT Media Lab Spring 2026

From the EarthCam catalog, I included 109 streams from 14 countries. You can flip between them by one click.

Cycling through different EarthCam streams, all on the same parameter setting

Inspiration

In 1974, Woody Vasulka recorded C-Trend by routing street footage through a Rutt/Etra video synthesizer. The Rutt/Etra reads each scanline's luminance as a vertical deflection on a CRT, so any flat video signal gets rebuilt as a 3D wireframe surface. Brightness becomes elevation. Cars driving past the camera turn into hills rolling across the screen.

Woody Vasulka, C-Trend (1974)
Woody Vasulka, C-Trend (1974)© Estate of Woody Vasulka
Woody Vasulka, C-Trend (1974)
Woody Vasulka, C-Trend (1974)© Estate of Woody Vasulka
Woody Vasulka, C-Trend (1974)
Woody Vasulka, C-Trend (1974)© Estate of Woody Vasulka
Woody Vasulka, C-Trend (1974)
Woody Vasulka, C-Trend (1974)© Estate of Woody Vasulka
Woody Vasulka, C-Trend (1974)
Woody Vasulka, C-Trend (1974)© Estate of Woody Vasulka
Woody Vasulka, C-Trend (1974)
Woody Vasulka, C-Trend (1974)© Estate of Woody Vasulka
Woody Vasulka, C-Trend (1974)
Woody Vasulka, C-Trend (1974)© Estate of Woody Vasulka
Woody Vasulka, C-Trend (1974)
Woody Vasulka, C-Trend (1974)© Estate of Woody Vasulka

Live cam

EarthCam publishes hundreds of public HLS streams. Tourist signs, traffic intersections, beaches, casinos, animal preserves. Any of them works. The synthesizer doesn't care what the camera is pointed at, only how bright each pixel happens to be.

Times Square, 2 AM
Welcome to Fabulous Las Vegas sign
Camp Kuzuma, Chobe, Botswana
Elephant Bathing Pool, Bali, Indonesia

How it works

The frame starts as 512 horizontal lines with 384 vertices each. Thick lines in WebGL aren't free: gl.LINES caps out at 1 pixel wide on most browsers, no matter what width you ask for. So the rig uses Three.js's LineSegments2, which draws each line as two thin triangles in screen space. The thickness becomes a real parameter, closer to a CRT trace than a hairline plot.

A vertex shader on the GPU handles the displacement. It samples the live HLS feed under each vertex, reads the brightness, and pushes the vertex outward along the surface normal by that amount. Bright pixels rise, dark pixels stay flat. The wireframe gets rebuilt every frame. A bloom pass and ACES tone mapping sit on top, in an HDR framebuffer, so the brightest scanlines glow without clipping.

Performing with a MIDI controller

Acknowledgement

Made for Recreating the Past at the MIT Media Lab, taught by Zach Lieberman. Thanks to Zach for introducing me to early artists engaging with technologies like Vasulka.

Back to top