Masseduction was an unofficial music video set to St. Vincent’s Masseduction utilizing a cluster of Raspberry Pi’s and 4K monitors.
As part of an experimental media class, one assignment was to make a piece of art using a 15-screen Raspberry Pi cluster, meaning 15 computers were attached to 15 monitors in a grid, allowing them to send messages to one another in parallel. By familiarizing myself with the MPI and pygame packages for python, I was able to create this (partial) music video for St. Vincent’s Masseduction while utilizing all computers within the cluster.
Setup 16 Raspberry Pi’s, 15 4K monitors
Software Python3, MPI for python, Pygame, PuTTY (to SSH into the cluster)
Materials Used
Development
Using PuTTY to SSH into the cluster, I developed a single program on the master node that would use MPI for python to sync all the nodes to run at the exact same time. This single program managed conditional blocks to time the actions of every single monitor; for each monitor, I used the standard pygame package to display simple full screen colors and texts. For the actual animation process, I developed a process that I would later incorporate into my senior project, Put On A Show:
For each screen, determine every animation that will occur on that screen (i.e. create a storyboard).
For each of those animations, determine the timestamp in the song in which they will occur.
Create a conditional block for each node to play the animation at the corresponding timestamp.
Repeat for the remainder of the song for each node.
A pseudocode example of this would look like the following:
If thisNode is node1:
If time > 0s and time <= 2.22s:
Display a pink screen
If time > 2.22s and time <= 3.56s:
Display a white screen with pink text
If time > 3.56s and time <= 7.23s:
Display a pink screen
…
[repeat for the duration of the song]
…
[repeat for each node]
Once all the animations were coded, I ran the program on the master node, which started the song, synced all the nodes, and began the programmed animations in parallel.
Displayed as part of Brett Stalbaum’s Fall 2017 VIS141B class at UCSD.