Vivian Voss

Bytes of Art: 0mix by 0b5vr

demoscene 64K intro WebGL

Bytes of Art ■ E1

Sixty-four kilobytes. That is less than the thumbnail your browser loaded to show this page, and a good deal less than the page itself. Inside that budget lives an entire techno performance, and the rest of this piece is an attempt to say how.

The Work

0mix is a seven-minute techno live set, music and moving image at once, running at 140 BPM in a browser tab. It is the work of one person: a Japanese scener who goes by 0b5vr, and who wrote all of it, the code, the visuals, the music, down to the flyer. Nothing in it was assembled by a team or bought in. He built the whole of it himself, and it runs for seven minutes and twenty seconds without repeating itself into the ground.

The Category

The number is the whole of the story, so a word on where it sits. The demoscene competes in classes, and most of them are drawn by size. A demo may be nearly any size it likes. An intro may not: the classic intro competitions cap the finished program at sixty-four kilobytes, or at four, and the stubborn press on to one kilobyte, to 256 bytes, to 32. Sixty-four kilobytes is 65,536 bytes exactly, a figure with a pedigree: the size of a single segment on the old 16-bit x86, the whole world a DOS .COM program had to live inside. 0mix is a 64K intro for the PC. What that label promises is not a small download but a small seed: at that size the work cannot carry its art with it, so it has to grow the art on the spot, the instant it runs.

The intro classes, and where 0mix sits 256-byte intro 256 B 4K intro 4 KB 64K intro — 0mix 64 KB demo no size limit Smaller class, same ambition: everything grown from code at runtime.

Made, Not Shipped

Which is the quiet marvel of it. Nothing here is loaded, because there is nothing to load: no textures, no image files, no models on disk, not a single asset. Every shape is built in code. Some of the scenes are modelled the classic way, in polygons; others use raymarching, the picture worked out ray by ray from a mathematical description of the scene, with a signed distance field setting the forms; and the whole is lit and post-processed in real time, depth of field and all.

The sound is no more stored than the picture. It too is generated in code and rendered on the graphics card, wavetable synthesis in place of samples, not a WAV kept in reserve. Picture and sound move together, because the same program produces both and the audio it generates is read back to steer what you see. A complete techno set, written from first principles, then minified and packed down until the whole of it fits inside sixty-four kilobytes of browser code.

64 KB of code, two outputs, one tab GLSL & code 64 KB total — everything below is grown from this Visuals polygons + raymarched SDF deferred shading, depth of field Audio wavetable synthesis rendered on the GPU, no samples audio analysed, fed back to the visuals Browser (WebGL) no plugin, no install, one tab

The Event

It was shown at Revision, the largest demoparty in the world, held each Easter in the German city of Saarbrücken and drawing well over a thousand sceners. There it ran in the PC Demo competition, where size is unlimited, and a sixty-four-kilobyte intro held its own among productions many times its weight to come fifth. The following spring The Meteoriks, the scene's own awards, named it Best Soundtrack, judged against every production of the year regardless of size. A soundtrack smaller than a couple of seconds of ordinary MP3 was called the best of them all. One does rather enjoy it when the constraint wins.

0b5vr put the source on GitHub, so how it was done is open to anyone who cares to read it: the geometry, the shaders, the synthesis, all of it. This is the demoscene at its most generous. The art is free, the technique is documented, and the only barrier to entry is the willingness to learn.

Sixty-four kilobytes, and not one of them spent on anything you might merely have downloaded. The demoscene has never needed your gigabytes.