I brought a piece of conceptual video art to an art festival!
It’s a test piece for a better installation next year, but the basic concept is a mirror that shows you yesterday. Furthermore, it had a selector switch on it so you could pick the delay it showed, from five seconds, thirty seconds, five minutes, 12 hours, or 24 hours. I really like the 24 hour delay conceptually, and the five second delay is deeply disorienting. Your brain tries to parse it simultaneously as a live feed and a recording of you. You start slowing down all your actions waiting to see them on the video.
It was extremely gratifying to bring something effective at catching people off-guard, provoking double-takes, and generally delighting people.
The project itself ran on a raspberry pi 5, a razer kiyo pro webcam, and the cheapest screen we could get for $70. Combine that with a cheap flatpack screen holder and a thrifted chest of drawers and we had some kind of facsimile of a bedroom vanity.
I threw together the software in about a week. It’s a really simple python script that uses opencv to continuously record one-minute segments of video, as well as holding a buffer of 30 seconds of frames for the shorter delays. I’m sure there are more efficient ways of working it than keeping three live video file decoding streams for the long-term delays, but it seems like the system is more bottlenecked by getting the video feed from the webcam than anything else. It’s possible efficiency and speed gains could be had by switching up the codecs we’re using, which I plan to experiment on before we deploy next year’s version. I thought about trying to get more in the weeds to avoid using the not-really-for-this-purpose opencv library, but like, if it works, it works. If I find something more appropriate I might rewrite it, but in the meantime I’m going to keep it running as it runs.
Unfortunately it doesn’t necessarily run. Over the course of the week it encountered a number of problems. First, I had issues where it wouldn’t load any videos because I left some paths relative and then changed the execution environment. Then there were permissions problems after being set up on a fresh device. Then the biggest problem was the screen not being bright enough to be visible at all during the day. Then white letterbox bars showed up and I still don’t know why. And finally, to cap it all off, it stopped running towards the end of the week. Again, no idea.
All told though, I’m pleased as punch that I brought a weird object to the weird object party.