It was November 2015, in MMCA Seoul that I first saw bit.fall, by Julius Popp. The installation was in a similar form with those had been introduced as the same name by the artist since early 2000s. It continuously ‘rains’ words taken from current online news feeds, which suddenly vanishes as it touches the ground. Besides what the artist was trying to say, I was impressed by the installation itself, imagining how it had been implemented. So I chose this work as the first(R001) of my media art reverse-engineering series.
I thought bit.fall can be broken down into three modules – expression, conversion and the data source.
The multiple nozzles arranged in a row at the top of the installation forms the word rain. Each nozzle drops water in accordance with the respective binary(on/off) signal. Let’s define these nozzles as a whole, as the expression module. Since it must have n nozzles that can release or block water at a time, it needs an array of n binary signals, as the module input.
Next, we can think of the conversion module, translating the words like ‘orange’ into the data that can be understood by the expression module. It’s worth noting that the texts already are binary data at the moment we see them on the screen. I’ll look into how this can be utilized when I represent the work.
Data Source Module
Now it needs somewhere to fetch the words. A module that returns a word each time it is called could have been implemented in many ways. And while the original work should have its art of collecting words from the internet news, the set of the words is also interchangeable with custom term collections.
The water falling from above is spectacular, and yes, it does give you a unique experience. However, I’m going to represent the visual part on the web, since my goal is not to make a copy of it but to build a demonstration using different methods upon the analysis.
I’ll start with the expression module, the module that takes an array of the n binary signals and makes it rain. Unlike other modules that I’ve got to remake, this one I have to create some part of it. That is, I need to demonstrate the physical environment, to show the falling water. p5.js is one of my favorite tool to do things like this. It helps me to draw the visual elements on the web with code, that implements both real-world concepts and imaginations.
Below is the expression module I made with p5.js, based on the p5.js particle system examples by Daniel Shiffman. The initial number of water nozzles is set to 5. Click it to make an input of fully open
nNozzles handle in the control panel.
What makes us believe as if the water drops are free falling is the downforce. It is consistently added to the velocity of the water drops, makes them faster and faster, frame by frame. Try applying different values by sliding
downforce handle and see how the acceleration changes.
Since texts as shown on the screen already is a set of signal that tells the screen whether to fill specific pixels or not, we can simply resample it into the resolution that fits the expression module.
The example above is a demo of the conversion module. The input text on the left side is rendered into the 200-pixels square. Then it is resampled into a lower resolution of the
nNozzles value specified in the control panel. The outcome on the right side shows the n sequences (vertically) of the n signals (horizontally). You can manipulate
nNozzles to see how the conversion result changes.
The actual module will translate the text into the bit arrays that will look like
[[1,1,1],[1,0,1],[0,0,1]], and pass it on to the expression module. Putting two modules together will result in something like this.
Data Source Module
The last module is the data source module. As mentioned above, I see this part as something very replaceable system-wise, which has
Now, please check out the demo of the reverse-engineered bit.fall. You’ll need a desktop or laptop since the mobile screen is not supported. And feel free to post your custom message by scanning the QR code on the right bottom corner. The word might show up on your screen, or delivered to someone else who is also watching. I’ve uploaded the source for the demo to GitHub.