Intro to Comp Media Finall


Final project

The post is about steps and thought went through while working on two projects – Microhabitat(phycom class) and A Bowl of Rice(storytelling class)


For the last ICM project, I decided to design web version of Microhabitat, my final phycom project.
The project lets audience to look around my small habitat using microscope. Being physically remote,  the web version  will allow audience to get hints on what they will see using the real microscope. (link to project proposal)

Link to code

In the script, there are two things that the user can play with

  • Change angle of the camera control the knob and using the right and left arrow
  • Look at details by getting close to the video the user is seeing

The code goes through the following steps to make “get close to the screen to see details”

  • Record initial eye distance
    To stabilize the value, add all the first 50 frames of eye dist on starting the poseNet. Then average the values
  • Compare the real-time eye dist with the initial eye dist.
  • The video with the details written on it is tinted (255,0). If the compared eye dist goes over a certain number, change the value to (255,255)

There are two knobs, one changing the angle of the camera and the other responsible for changing focus of the camera(course or fine). In order to realize the project, communication between two computers is needed. In the beginning, sending and receiving arduino and p5.js data between two computers looked barable, which I realized later that it’s not.


Coding has lots of visible and laborious details that have to be carefully planned compared to using software (such as Adobe creative suits)

During the whole semester, I felt coding is like a very sensitive person.
While using WebRTC, the details to consider got bigger, such as

  • Do they speak the same language? if not, is there translator to help them?
  • Did they shake hands?
  • Do they have single thing to say or multiple things to say?
  • How many answers does the person expect to hear?
  • How fast are they traveling?
  • Do they have any change of getting stuck in traffic jam?

HOWEVER, errors occurred when failed to consider all the details to sometimes came up as a new idea that I didn’t expect. 
Also it cuts down a lot of energy and time to implement something like this.