Design a site like this with
Get started

Video Sculpture – All Connecting


All Connecting is an interactive video sculpture that exposes the systems to the users when they make search request online in real-time. It visualizes the flow of packets transmitting between performer in the video and servers in real-time. This project is an reinterpretation for The Wave (1965) by Hans Haacke.


Processing in Max 

  • Downloaded the OSC and external CNMET (but this one doesn’t really work for me) – I would need the file to update so we didn’t continue. 
  • I tried to retrieve the information in max using Node for Max but it still didn’t work 
  • I tried several npm libraries such as curl, http, and request (deprecated) and went to office hour with Cassie but still couldn’t make the packet information shown. We couldn’t figure out the way to use node for max to get the packets. It is quite hard to use sniffer.
We found it is nice to use pcap to get the packet.
  • I did succeed in a little bit but when I used the max-api to put the thing in the function, it didn’t work and told me I should recompile the node.js since they have different versions.  
  • I gave up on 4:54 pm on Mar 18 since it felt too overwhelming. 
  • After emailing Gabe, he suggested me to use MaxURL which gave the output of the HTML body, which is quite helpful but we wanted to show packets more than the HTML content. 

Since we already have the processing sketch to get the packet using Carnivore.

Therefore, instead of using Max, we decided to use Processing and use Syphon to show in MadMapper where we plan the path of each packet we receive. 

Process in Processing with Carnivore library

For my part, I worked on getting the IP address of the receiver and sender address and compare if it is processed through my computer’s ip address. It is not the public IP address I should look for, it is the wifi network’s ip address. The documentation of the Carnivore is quite helpful here

I added “setVolumneLimit” since we are thinking about having 8 pipes going on the wall. Also, in order to prevent showing any packets when there is no request from our users, I used “setShouldSkipUDP” to make sure. A UDP packet can be sent without establishing a connection to the recipient. reference here

I wrote some code to help divide the ip address into 8 sections. Since the first part of the IP address has a range of 0-255(reference), I made sure each part has the range of 255/8. I wrote a function in processing to get all the information needed to return the text as a string which will be transported into madmapper. Below shows the packet information in the console in Processing. My code can be found here.

Wenjing worked on converting the strings into moving texts. Final code here.

Stefan worked on getting the packet working as well as using MadMapper to follow the path in his room where the installation is shown due to the COVID-19 situation.

Example screenshot of MadMapper format here.


I like how we still managed to work with each other and achieve ideal end goal during this period or time. Stefan will finish projecting and documenting the whole process while I will takeover to do post-production.

I love working with them through the process. Each of us has the determination to make it happen and during our brainstorming process, Wenjing really made sure we understood Hans Haacke’s concept first. It is quite wonderful to see how each of us process information and interpret the concept of chosen art piece. 

I am super happy of my contribution to the team! The final result turns out so well that I am so proud of all our efforts. 


Published by Yiting Liu


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: