zapra – final project

Revamped spaghetti art

For my final project, I wanted to push my socket.io drawing project further by challenging myself to add new layers of complexity.

View project here
View project with obstacles here

One of my initial ideas was to create "heavy" lines that would sag as they're drawn and rest upon existing lines.  I had difficulty creating this effect with all the qualities I wanted,  so Golan  suggested I try his spring simulation examples to experiment working with physics engines. View heavy lines here.

My next step is to get this working with socket.io so it can be a multiplayer drawing space. I like the idea creating a new type of interaction by being able to push, pull, and collapse other people's lines as they draw. I was able to get it working on Glitch as a single player app, but am running into some difficulty applying the physics engine with data received from  other clients. View progress here on Glitch

zapra – ARSculpture

Behold the Canal, a goopy, body-like tunnel that transcends time and space. It's shockingly convenient as a portal between campus and my apartment, but at what cost?

Documentation:
I created the canal in the Putty 3D app, which allows one to CAD goopy 3D models by simply drawing with your finger.

Over the shoulder:

Full view of the canal:

zapra – UnityScripting

For the scripting tutorial assignment, I followed the Roll-a-ball tutorial to make an interactive game. I found it significantly easier to follow along since the whole game was made from scratch and I didn't have to sift through outdated exercise files. I also liked this tutorial since it provided a lot of references on how to learn more rather than simply telling me what to click or write. For the scripting, it had me click in to the Unity reference library and search through functions so I could understand how to figure out what I need.

 

zapra – Unity Warmup

Unfortunately I largely misinterpreted how long the tutorial would take me and only got up to step 7. My scenes were not compiling for errors I couldn't understand, and as a result I couldn't play the scene to see what was working. I think this tutorial would be much easier if I had two monitors and a mouse rather than a split 13" laptop screen.

 

EDIT: Completed tutorial. Had a significantly easier time using a second monitor and a mouse!

zapra – situated eye

Eye tracker drawing

For this project, I wanted to use machine learning to create a device that explored subtle changes in the eyes. Using a two dimensional image regressor, most of my development involved exploring the nuances of how I interacted with the tracker rather than the code itself. While my original intention was a tracker that would allow the user to draw with their eyes, I spent a lot of time experimenting with how to collect data points, my proximity to the camera, and the range and speed of how I moved my eyes.

View code

Process / Early Iterations

Knowing I wanted to make a program detecting eye movements, I experimented with pupil dilation, lying, and smile lines by recording myself as I performed different tasks. While I was interested in the concept of detecting nuances expressions in people's eyes, I felt the observable changes were too subtle to detect for the scope of this project.

Before adding specific points of reference for the training set, I added samples by clicking in the vicinity of where I was moving. This helped me while I was starting out but did not produce the most accurate results.

An arc I drew with my feet

Training

For greater precision and a method for other users to reproduce the tracker, I created a series of points to use during the training set with indicators of when each point had at least 30 samples.

Setup

My final setup involved a large monitor screen, a precise webcam, and a number keypad to train the program. The larger screen allowed for a greater sense of eye movement for the program to track, and the keypad let me train the set without having to glance at my laptop and disrupt eye movement.

zapra – 08a – machinelearning

Pix2Pix

This was a really fun way of seeing the different opportunities to interact with machine learning from the user's perspective. I love all my cats.

GAN Paint

This reminded me a lot of the stamp tool in Photoshop. The examples given are all architectural, but I think it would be interesting to see this being used on people or other living things.

Artbreeder

I had a lot of fun creating my own mix of genes (see a chicken-catamaran hybrid below).

Infinite Patterns

I created this using the seal + stone wall + African Grey Parrot crossbreed I had made in ArtBreeder.

Talk to Transformer

This was my favorite one to play with by far. My first several attempts were too vague to generate anything of interest, but its funny to see how many specifics you need to feed the transformer to get a satisfactory amount of coherent nonsense.

  1. I had this crazy dream about zombies last night where we were all in the same room together." He smiled. "I don't remember if I was the one who said 'we' that time or whether it was the other guests or the other staff, but we were all feeling weird when we woke up to discover that we would soon be fighting for their lives against these horrible creatures."

"Yes, I remember," her father replied with a small smile. "It was a good dream." He reached for a drink of water, but hesitated when he heard the sound of water dripping down the hallway below, then he looked down the hallway to see that three of the four staircases had collapsed on their own.

Harry sighed. With one hand pressed to his forehead, he reached for the drink in the bowl and took a sip. "What Can I tell you a secret about why I am afraid of birds? I am afraid of birds because, like all things that live in the sky, they have eyes. And I fear that their eyes are in the sky and their eye-screens are on and I can't tell them anything except what their own eyes can see. And so I fear their eyes like a mother afraid of a baby. And I know they will hurt me.

"What if one day, one of them looks up and sees me, I am so afraid of being hurt so I put a glass of water on the stove and sit there, so that they can't reach me. They are too smart, too clever or there is some mistake. So, even if they know every part about me that has not been invented, they will never hurt me. And sometimes they seem to be watching the moon."

He paused and then added: "And sometimes they are thinking how to tell this to their offspring. They are already thinking too much, but I am only a child, and they have the power of children."

The woman laughed and said happened?" he asked.

"When we arrived at the conference, we found out that the hospital was closing down until further notice while the owner decided to leave the building entirely." Her father replied as he sipped from the cup. "And the next time you arrive

----------------------------------------------------------

2. Can I tell you a secret about why I am afraid of birds? I am afraid of birds because, like all things that live in the sky, they have eyes. And I fear that their eyes are in the sky and their eye-screens are on and I can't tell them anything except what their own eyes can see. And so I fear their eyes like a mother afraid of a baby. And I know they will hurt me.

"What if one day, one of them looks up and sees me, I am so afraid of being hurt so I put a glass of water on the stove and sit there, so that they can't reach me. They are too smart, too clever or there is some mistake. So, even if they know every part about me that has not been invented, they will never hurt me. And sometimes they seem to be watching the moon."

He paused and then added: "And sometimes they are thinking how to tell this to their offspring. They are already thinking too much, but I am only a child, and they have the power of children."

The woman laughed and said


Google AI: Magic Sketchpad

Here's a sketchpad on glitch that will try to finish your drawings for you. It's cool when its accurate and endearing when it scribbles haphazardly.

zapra – telematic

Spaghett.io - A shared drawing space for noodley lines (among other things)

A shared masterpiece between me and some friends

View app

Using the template from the cmuems-drawing-game, I created a shared drawing space where lines have a maximum length and can "weave" through existing lines. I was interested in playing with the idea of the "shared" space by creating constraints that prevent canvas hogging. Since intersecting lines will weave under existing ones, new drawings integrate into old ones rather than covering them up. Each line cannot exceed 1000 pixels, discouraging canvas-sized scribbles and unthoughtful space consumption.

I had an alternate concept for this app where touching lines would be deleted, encouraging people to add lines without intersecting the other clients' in a Blokus-like fill-up-the-space game. In the code you can see an area where I made an attempt (I plan on returning to it), but deleting the right lines proved to be more complex than I anticipated.

Process:

Initial sketches / concepts: some chat rooms, some shared "jukebox" apps using spotify, and a game of motion-tracked foursquare
Some semi-coherent scribblings where I try to make sense of array structures

I think one of my problems for this assignment was that I could come up with ideas faster than I could figure out how to make them. For this project, I originally had planned on making a "radio chat" where you could use a slider or dial to speak to people on the same "channel" as you. Landing on an unstable channel would produce a certain level of "static" from the other chats. I spent the first week of this assignment dissecting the chat template and trying to teach  myself how to use html with p5. After a lot of frustration and confusion with the template, I switched over to the drawing app to see if I would have better luck. I had gotten about a third of the way through with this project when I had the idea of a drawing game that responded to intersections. Hesitant to abandon my first week of progress, I experimented with adding the intersection assignment's code to the drawing app and found myself much more interested in the new concept. Though I feel like I ended this project with a handful of semi-finished apps rather than a more robust deliverable, I really enjoyed working through these problems and would like to revisit some of them in the future.

original "radio chat" concept, demonstrated through drawings instead of text

zapra – LookingOutwards04

Passo Uno (2015) by Krio

Krio is an Italian artist incorporating animatronics into stop motion animation. In his project Passo Uno, he combines 3D printing, robotics, and traditional sculpture techniques to bring his protagonist to life. While traditional stop motion puppets can have hundreds to thousands of sculpted facial expressions, embedding robotic parts allows the animator to  bring the character to life with a single model.

To create the characters, Krio first hand sculpted the models and laser scanned them to create a guide for the mechanical parts. The internal mechanism was then 3D printed and soldered, and the "skin" was cast from silicone. I wish he provided further insight into how he rigged the robotic elements, but you do see a brief shot of an arduino at 0:15. At a time where traditional hand-drawn animation is becoming less and less common in lieu of CGI, it's inspiring to see computation being used to keep the remarkable craft of stop motion alive.

zapra – CriticalInterface

4. The interface collects traces: traces and remains of all agents/agencies which converge in it.

  • Use a notebook to write down your bookmarks, your contacts, your searches.
  • Block the GPS of your phone. If you need to find a place, ask someone. Things will happen.
  • Use your first Nokia 3210 phone again (try not to get too nostalgic about it).
  • Become an Open Data Donor. Only give data deliberately and make sure it stays Open.
  • Connect your computer to a projector and share your screen with your neighborhood. Get used to it, that's our average privacy level.
  • Make a screenshot of the application you are currently using, and print it. Pin it to your bedroom wall.

I was interested in tenet 4 because of its implication that the interface is constantly documenting our interactions. While I assumed the manifesto meant that this is simply a critical part of  the interface, the examples frame this as a hostile occurrence. With digital interfaces encroaching more and more in our lives, we must maintain our awareness of them and their observations of us. Satirically, the assignments provided focus on maintaining control in an omnipresent expanse of data collection services. I find it interesting that they encourage maintaining control by either submitting yourself willingly to a zero privacy reality, or going completely off the grid to prevent any traces of you from existing.

Ironically, purchasing an Amazon Alexa with full acknowledgement of the data mining potential would be completely in line with these assignments. While our smartphones are already listening to us, many people are still convinced that they are still respecting our privacy, at the very least when not in use. By installing a microphone device designed to listen to you all the time, we take back some control with the voluntary sacrifice of our privacy.