Black Projections – ICM

For my final projects at ITP, I combined my assignments for Physical Computation and ICM. This made a lot of sense to me, as I genuinely am more enthusiastic about coding if it is part of a physical piece or installation.

I am not sure if my ideas or feelings towards code have changed. Honestly, I think I’ve always had quite a bit of skepticism related to my personal interests surrounding it and how it could be a tool for me, which started before my ITP journey when thinking of going to coding bootcamp. What drew me to ITP was that there was a world just beyond coding and that if I had to use coding, it could be part of more meaningful projects.

This larger project which I am calling “Black Projections,” is an exploration of how time, space, and current design systems alter our reality, memory, and ability to take control of our future. It specifically focuses on the Black Experience and explores these concepts through blackness.

I am very much a long form thinker which means my sketches tend to be less “efficient” and everything is spelled out. This could lend itself to mistakes, but honestly helps my brain out when I’m exhausted. Notation also helps. For my sketch for my final project, I really learned how to push p5.js limits in terms of it’s storage / photo holding capacity and I was pleasantly surprised. It could hold a lot more images than I thought.

The device I built is a portal mapping device that has 14 node points that are connected to sensors that then trigger images and series of text in p5.js.

I had a few issues with my text disobeying the parameters I thought I had set. There are also a few issues with some of the photo alignment. For taking this further, I would like to explore having more of a collage effect. So when an image is triggered, it stays on the screens and fades away even after the sensor is triggered off. Since, right now the sensor is digital and operating on binary the images now display following that where they are either on the screen or off the screen dependent on the digital read of the sensor. In actuality, the sensor values are oscillating between on and off very fast as they try to navigate the magnetic field, so to accomodate this I lowered the framerate of the sketch to one so the images are not speeding through the sketch very fast.

Sketch link:

Server: Web Server for Chrome

Black Projection – Update #2

Project Name: Black Projection

Summary: “Black Projection” is a portal mapping device that allows users to explore the interconnectedness of time, space, and racist hegemonic design systems. Through this, it extends an invitation to project and take control of our own future.



  • Projection / Portal Device in center of room
  • Magnets will be located next to device in a container (pending)
  • Projector will be setup to project images from p5.js sketch
  • Music will be playing in the room

Alternative Setup for Less Space:

  • Project/Portal Device on a stand to raise up to standing length
  • Magnets located next to device
  • Everything will be connected to large Ipad or Monitor to display images

Current Project Status:

  • Images / Content secured
  • Top / “Portal Map” of Device finished
  • Mapping to nodes has been figured out
  • Reed switches connected to breadboard and now need to be tested
  • p5.js sketch started with most of images uploaded (some failed to upload because they were too big)

Black Projections – Update

For my final project, I’m creating a device that invites people to destroy interrogate the idea of the colonial time project (linear time) and investigate how colonization and race as technologies have led to erasure of past and other ways of being, destruction of magic, while creating the “one-world world,” a term coined by John Law.

The device will be accompanied by a zine that is a collection of inspiration, research, questions I have asked while making this project.


Monday Dec 2: Buy acrylic from Canal Plastics, do first draft of laser cutting for the top of device

Tuesday Dec 3: Set up Reed Switches + Submit to be in Winter Show

Wednesday Dec 4: Edit Zine + User testing

Thursday Dec 5: Access User Feedback + Edit Zine

Friday Dec 6: Finish Device Design (the non-electronic components inspired by previous project “Open Portal”

Saturday Dec 7: Edit Zine + Decide if I want to add more images and gif to Black Projections p5.js sketch

Questions / Things to Figure out:

-Non-computer power supply for Arduino

-Music / Sound / Noise Component

-What will “hold” the magnet

-Connect magnets to overarching theory / thesis

Calls – p5.js sound

For our unit on sound using p5.js, my partner Lizzy and I created a 30 second composition called “Calls.”

For our project, we knew that we wanted to incorporated recorded / found sound at the basis of our project. Lizzy from a previous project had recordings of different birds from the Northeast.

We tested these in p5.js to hear what they all sounded like interacting with eachother. Originally, the sounds had ambient noise before and after the initial call or had extreme volume peaks at certain portions so we edited the sounds in Audition so we could have more control over looping them.

We arrived at a good point but wanted to think more about our sonic scape. With just the bird sounds, we were getting a lot of higher frequencies but there was still empty space in other registers. Also personally, I am very curious about synthesizers and how those sounds can interact with nature, so I did some experimentation with that. The addition of the Oscillator / sine wave moving between the frequency 100-200 hz allowed for there to be a more ambient bass rumble. We also added leaves for texture and variety.

Listen to calls here:

Animation – Week 1

During the first week of animation, we explored stop motion and read “Understanding Comics” by Scott McCloud.

I worked with my partners Stacy and Tito to create a stop motion film using sticky notes. The use of sticky notes was inspired by our interest in pixels, which we had just finished talking about in our computational media class.

Here is us on set:

I promise I’m only yawning as part of the acting!

To create our film, we used DragonFrame and the Canon 5D. In the beginning we had a few technical difficulties, namely trying to get the camera set up to do live view, but we were able to solve that issue. Also, some of our deleted frames still exported but we were able to edit those out in Adobe Premiere Pro.

Now, here’s the premiere of our stop motion video!

After filming, I began to read “Understanding Comics” and found it to be pretty interesting and relatable. It gave me a lot to think about in terms of how to navigate visual projects and also how to think about what styles I gravitate towards.

For instance, McCloud describes a triangular structure that communicates different pictorial forms which is “described by these 3 vertices – ‘reality,’ language and the picture plane,” and these all come together to represent the pictorial vocabulary of the visual arts. Here we learn about abstraction and how that corresponds to reality, as well as the tendency for humans to project themselves onto images and force closure.

What interested me the most in this discussion, however, was the talk about how cultures and ways of thinking may effect length, movement, and different prioritization. In a lot Japanese comics, they often first appear in enormous anthologies, run for thousands of pages, have slow cinematic movement, focus on setting a mood, and have a belief that elements omitted from the works are as important as elements that are included. There also is an underlying belief of how things are continuous and connected.

At ITP so far, I’ve been struggling with how fast things seem to be moving and how even when thinking of interactions and interactivity there’s a prioritization of very specific kinds of goals over the journey. There’s a prioritization of something quick and cool over slow and present. How does this impact the art we make here? What does it mean for something to be cool? What if we used time differently? I wonder how I might continue to explore these elements and more in animation projects regardless of the time constraints that are already in place and enforced.

Knitting Pattern

A lot of the artwork, I did this summer involved collaging – a mixing of archival material that allowed me to better understand stories and history.

Currently, I’m very curious about metals and shine and magnets and how these things relate to my understanding of blackness, technology, and black art.

As a result, for this knitting pattern, it would be knitted with copper wire. My hope would be to create a “circuit print.” With this, the knitted pattern could be given power and hooked up to a speaker where then the hidden message could be decoded through the use of a magnet.

When looking for examples of how this could be done, I found paper speakers:

The knitting pattern is simple, but I’ve added to the traditional code of K1 and P1, by adding symbols for Bead1 [Bead1 + Pearl, Bead1 + Knit] and Spiral1 [ Spiral 1 + Pearl, Spiral 1 + Knit].


Cast on odd 7 stitches.

If working flat:

Row 1: K1, P1, K1, P1, K1, P1, K1

Row 2: K1, P1, K1, BP1, K1, P1, K1

Row 3: K1, P1, SK1, P1, SK1, P1, K1

Row 4: K1, P1, SK1, P1, SK1, BP1, K1

Row 5: K1, SP1, K1, SP1, K1, P1, K1

Row 6: K1, BP1, SK1, P1, K1, P1, K1

Code: K1 = Knit 1, P1 = Pearl 1, BP1 = Bead Pearl 1, BK1 = Bead Knit 1, SP1 = Spiral Pearl 1, SK1 = Spiral Knit 1

Once the pattern is knitting power will be given to the spiral points and a magnet will be used to detect the message. The message, I hope to be decoded would be an intergenerational story. The three spirals represent points in time (past, present, future). I would love for me, my mom, and my grandmother to all record a song that has meaning in my family and for that to be decoded with the use of a speaker, copper, and magnet.

Cyber Aura Witch

My ICM partner Wen Chen and I worked together to create a p5.js sketch that manipulated an image or video for a 1 minute experience.

Immediately, when playing around with different ideas, I thought about aura prints which are different types of photographs that can capture your aura. I wasn’t really sure how they worked, but after research Wen and I began thinking more about how colors can translate into an emotional language.

From that we birthed, the cyber aura witch – computational witchcraft using aura to offer fortune for guidance.

The experience is guided by instructions given in both text and sound. Using p5.js ability to capture video, we then used ml5.js’ poseNet library to allow the ability to track the position of the user. We mapped the position of body points to color to allow the ability to change color based off of body position – this controls the aura.

section 1 – introduction to cyber witch

section 2 – aura reading

section 3 – fortune telling

section 4 – opportunity to proceed forward

Origin Tale of Arachne

For physical computation midterm, my partner Douglas and I created a device that tells the origin story of spiders (the tale of arachne).

First, we went and bought some reed switches from tinkersphere and tested them out to understand how they work.

We then put the sensors on the board and learned that you could use the internal resistor in the Arduino if you set the digital input to pull up. A quick trip to the Container Store got us an enclosure for our project.

The top of our enclosure / device was acrylic that was etched by the laser cutter and a hole was cut into the enclosure to allow the cable to come out of the box and connect to the computer which we needed to show the p5js interaction.

There was so much to learn when it came to serial control and connecting the arduino to the p5.js but happy to see how it all turned out.


For our final fabrication project, we learned about motors and techniques for how to mount them.

In our physical computation classes, we have learned how to use our servos and connect them with our arduinos but not too much.

Admittedly, this was the first assignment I struggled with project ideation. For some reason, I have not really imagined many projects that had moving elements in this way so it was interesting to try to figure that out.

One recommendation / tip in our class has been to learn where you gravitate to. To learn your standard. I like using found / common objects and soft materials.

Taking inspiration from the arduino project hub, I decided to mount a flower and figure out an enclosure for it.

First, I started by testing out the servo motor to make sure it worked and that I could program different things to it.

I then grabbed materials to create my flower and bought a micro breadboard to more easily fit into my enclosure. I tried different pot sizes to determine what would be able to give me the best amount of room to work with without being too big.

I then used cardboard and felt to create two inner discs. I put the initial cardboard disc right above the breadboard and then set the motor on top of that and then put a felt disc over the motor and thread through part of the spinning portion of the motor so that I could attach the stem of the flower to it.


For Introduction to Computational Media, we had to create some sort of p5.js sketch that we would then present to the class for five minutes.

I had a hard time coming up with an idea of what to do initially, but then remembered back to an old idea / old source of inspiration which was Image CAPTCHAs (those response tests you’re forced to do so that the computer can determine if you’re a human or a robot).

I always wanted to recreate these tests but as a way of testing some sort of bias.

Unfortunately, I didn’t quite feel confident coding something similar but instead opted for something more loosely inspired.

This week’s videos focused tremendously on manipulating the DOM so I figured, I should go ahead and try that out with this project and because we recently had Indigenous People’s Day, I came up with something thematically tied in with that.

var words = ["click verify", "evil", "invader", "confused", "pain", "murder", "genocide", "thief", "fake"]
var index = 0;
var button;
var truthP;

function setup() {
  createCanvas(500, 500);
  button = createButton("verify");
  truthP = createP('Have you been lied to?');
  truthP.position(65, 601);

function draw() {

function textwords() {
  textAlign(CENTER, CENTER);
  text(words[index], 250, 250);

function mouseClicked() {
  index = index + 1;

function verifyTruths() {
  if (index < 9 && index > 0) {
    text('#tru', 250, 200);

function theEnd() {
  if (index > 8) {
    text('#FUCKCHRISTOPHERCOLUMBUS', 250, 200);

function oververify() {
  truthP.html('Are you surprised?');