Delightful moments of unexpected cooperation between celestial and digital show up, like in the image below with a spotlight that the sun added to “Jimmy in Quadrophenia at 10:55 a.m. on March 15, 2018, in Detroit, Michigan, with a north-northeast-facing exposure.” That’s a mouthful, right? But the video content, date of playback, time, location, and orientation of the device all coalesce to produce the image you see, so the whole mouthful is the only useful way to describe it.

These images bring together shadow, color, and temperature, and they remind me of Alvin Lucier’s I Am Sitting in a Room in that VSMP is a performance that relies on a place. Lucier’s loops gradually overwhelm human speech with an assist from the shape, size, and materials of a specific room. VSMP is fundamentally feeble without an assist from the light that floods through windows, bounces off walls and other surfaces, and eventually illuminates its display. Rather than creating a battle between context and content, as in Lucier’s recording, VSMP collaborates with a place in a small way by borrowing the light of the room it is in.

Scaling Up Slowness

The nice thing about a technology enhanced by place is that it immediately has architectural implications. We can experiment with larger format displays as wall surfaces for both interior and exterior. The precedents for ePaper at an architectural scale are limited, with notable examples including OMA’s renovation of the North Delegates Lounge at the UN featuring a wall of small ePaper panels. Future Cities Catapult did some top-notch speculative work demonstrating the politeness and sensibility of ePaper in public spaces, including some new interactions that are lovely.

There’s still plenty of work to be done in this area, particularly in light of the low-power requirements of ePaper. Sydney deployed real-time ePaper bus stops earlier this year by Visionect, and they’re beautiful. Compared with LinkNYC, which uses big, bright LED screens, the ePaper displays are more urbane because they are significantly more deferential to the public realm. As an urban display, the ePaper totems don’t do as much as Link, no doubt, but it’s still not quite clear what itch Link is scratching on behalf of the public. I’m interested in ePaper displays as a low-cost, easy to maintain way to bring neighborhood content back into shared physical spaces—parks, libraries, ice cream shops, etc.

Visionect’s ePaper bus stop.

LinkNYC’s LCD kiosk display.

VSMP also suggests a pull toward new possibilities of ornament and decoration, toward ways to make our digital lives present in our physical world in more subtle ways. This ePaper-tiled parking garage at San Diego International Airport is one example of the medium’s ornamental potential. And while the parking garage tiles intend to readily change the structure’s appearance, there is room to explore the possibilities with a building or surface whose appearance evolves slowly over time. At a pace of 24 frames per hour, an evolving wall would change almost imperceptibly.

It would be the architectural equivalent of a ninja cat making moves to sneak up on you when you aren’t looking—a nonbinary between moving and stillness. Walls with ePaper can offer a way to play with interwoven timelines: the minutes of human rituals, the hours of our planet’s rotation, and the months of Earth’s annual orbit around the sun. We might create a wall of William Morris wallpaper patterns that blossom and wither at the actual pace of the seasons. Or use footstep sensors to track visitors and change one pixel of a wall for each person who enters, very slowly turning the room from black to white in a digital obliteration room. Or add to the predictable shadows that fall across the facade of a building with fantastical digital supplements—shadow puppets at the scale of a building.

Building ‘VSMP’

I did not intend to have to build everything from scratch, but that’s how it ended up, so in case this is useful to others, here’s how a very slow movie player comes together.

It started with ordering a 7.4" screen and a USB timing control module. The product is supposed to mount like a USB device and accept a proprietary EPD binary file format, which would then be flashed onto the screen. Knowing nothing about binary files or image processing, I was eventually able to refactor this Python code into Node.js—the best programming language for the job is the one you already know, right?—which led, after some real stumbling, to a miraculous sight: It worked.

Proof of EPD.

Node-fluent-ffmpeg is the library that VSMP uses to extract frames from a video file. These are then passed to a dithering module that prepares the full-color video still for display on a one-bit screen. Tanner Helland’s dithering algorithms were useful here, and it was fun, if indulgent, to spend an afternoon playing with the various algorithms from the scenography of my childhood spent in front of various computers.

A still from ‘Quadrophenia’ dithered with the Floyd Steinberg algorithm. The level of detail is pretty remarkable.

With sequential video stills being extracted from an MP4, dithered, and converted to EPD files, I excitedly hacked together a “case” for the screen and its controller so both could hang above my desk where they would be easily visible. I then fired up a cron job to copy frame after frame to the device, updating the screen each time. But I discovered a conflict between the Raspberry Pi and the controller module that produced an error every 10 frames or so, which is problematic if you’re interested in continuous playback. To make matters worse, the constantly running Node.js script I used to occasionally push new frames to the screen ran out of memory about once a day. The recurring glitch and regular crashes were an impediment.

The original ‘VSMP’ test hacked together in the sunlight of a July afternoon. A glitch appeared on the last of these frames and repeated every nine to 13 frames, so I decided to write my own code to control the ePaper display.

My original plan was to make the screen module as compact as possible, which I planned to do by using a Raspberry Pi 3B (RPI3B) to power the device and let the RPI3B be attached to the wall plug or sit on the floor near it. In the end, it was not possible to continue down this route because the display glitch required switching from USB to GPIO.