week 14: final project documentation (Moon)

Partner: Jerry

Project Name: Ghost Talk

Link: http://imanas.shanghai.nyu.edu/~jy2122/final_project/

  • Inspiration

In this project, we want to make a detective game. However, as we think traditional detective game may be too normal as many people have made similar games, so we decided to make some different point:

1.One important element in our project is the clock. Users can interact with the clock to adjust the time, and there will be different elements accordingly.

2.The way to “detect” is the ghost communication–the soul of the dead can talk with different things and find clues in those communications.

3.The killer, in the end, is the dead himself. Because he cannot accept the truth that his wife died 1 year ago, so he had split personality disease. Part of him act as his wife and part of him act as the husband, which makes him do a lot wired things and finally leads to his death.

Actually there were several different ideas in my mind when thinking of the story, one is about AI: maybe a AI machine in this man’s room killed him because it have autonomy, so that we can provoke people’s thinking about people and AI in the future. Another one is that the man is actually living in a virtual  world like The Matrix, maybe he finally find out that all his memory is fake and his brain, his consciousness, his sense are all controlled by machine, which could also have some profound meanings. However after discuss we decided to choose the split personality story as it is easier to convey the message.


  • Working process

First is to have a basic idea of what’s going on in this story, in other word, how split personality killed the man? Then I came up with the idea that the man’s wife has illness, and he fed his wife with the medicine that day–which is feeding himself the medicine. But the medicine is harmful and poisonous to normal people, which makes sense, and he dies because of it.

Then, we decided the materials would be in comic format, as it would be very time-consuming if we take video, also, real video recording have too much restriction, and comic picture would help convey our ideas a lot. So we began to searching for suitable pictures. As learned from my comic project, all the pictures and elements in our picture is “from the same world”, though it is very difficult to find many pictures of the same style, but it worth the time because it makes the visual effect a lot better. There are something I want to stress about the pictures:

  1. The dead man: I  make the picture all in grey, because I don’t want to show the gender of the dead very clearly at the beginning, as he act as both the wife and the husband. I first use cut out the died man part from a picture then us PS to make it into grey and deal with some details.

2.The goldfish: Because time is a important element  in this story, so at 11am, there are three alive goldfish, and 2pm, there is only 2 alive, with one dead. This gives user the information that the goldfish died because of lack of food, and the man’s wife is responsible of feeding them. At first this is the materials:(the original picture only have 2 fish)

But after some user test, people said that the dead fish in the 2pm picture is not clear enough, so we finally decided to made the dead picture out of the bowl–on the table, which is much clear.

3.picture on the wall: There is a portrait of the deceased for his wife, but the man hide it behind a picture on the wall. This is the original picture I found in the Internet:

however, the wall in the picture is not horizontal:

if put the picture directly on the wall, it looks wired, so I changed the shape to make the Perspective Effect:

Finally, because a bare picture on the wall look not very natural, so I drew a nail and lines there, so this looks more like a mural painting hanging on the wall. And in the game, users can remove the picture to find out the portrait of his wife.

4. Because time changes, so the light should be different. We put the two pictures together and adjust the opacity of each one to make it get darker. Here are the four different background pictures. (Pay attention to the light and the setting sun effect outside the window)

5. Also, because we want the “ghost” to “shaking” rather than stay still, but no css animation can satisfy us, so we first use AFTER EFFECT make this still image to a gif, then we cut the black background frame by frame to achieve the effect we want.


The Script is another important part, as we rely on the words to tell the story and the fact. Because split personality, we need to show the contradiction between his memory and the fact, so we think a dialogue between the soul and the things should be a good way rather than only the things tell what they “see”. We wrote the dialogue directly in the txt so that they can appear on website:

Then, because we think that have a voiceover would be super helpful, so we asked a friend to record the man’s voice. However, for the objects, in order to create a sense of non-human, we used virtual sound which assembles by machines. In this circumstance, we use google voice Api to constantly turns text into audio.

  • Reflection

Overall I like our project, but there are some point I think we can improve:

1.I think we can have a more logical story to make the end more surprising to users. I think it would be better if at first people assume the murder is someone else, and finally find out that it is the murder himself. But in our current story, the only suspicious people is the delivery man and the wife, and there are not many information which can mislead users to think the delivery man is the killer. Though we tried our best to form the story, maybe there are still some details that we can improve. Maybe if we have more time, we can read more detective novels and it can help us construct the story.

2.Another thing we may improve is the animation. Because our project is based on static pictures, the only dynamic thing is the “core flame”. If we have more time we may put more dynamic things on the picture to make it look better, for example, we can make the goldfish swimming, make the shadow moving with the time. Also, when the soul merge with the “core” of different things, there could be flicker to make it looks more amazing。

3. There are some minor logic problems regarding the sequence of the items. Because I wrote the dialogues based on time, so we restrict people “jumping” from time–people need to follow the time sequence. Also, inside one single period, we make the “fire” to appear one by one if there is strong logic, for example, the medicine and ring in 4pm. But inside some period, such as cup and TV in 10am, it should better to first talk to cup then talk to TV, because the conversation with TV begin with “Hi! The cup told me there was a person came here at 10am or food delivery, did you see that?”, which causes a time sequence. But we didn’t notice this beforehand, and this need to be improved.

4.I think it would better to have 2 clocks rather than one, so that users can switch from time to time more easily.

Final Project: Half and Half | Emma Tao Ren

Project Name: Half and Half

Basic Description:

In this project, we are asked to create a toy and the main idea of it is “uncanny”. The first thing came into my mind is the Hello Kitty doll. In 1990s HongKong, there happened a famous case of murder. Two men abused and imprisoned a woman in their apartment for 2 weeks, they finally killed her and hid her head in a Hello Kitty doll. The crime was so cruel and astonishing that, I immediately decided to use Hello Kitty doll as my main character of this project. My initial idea was that, the Hello Kitty doll I create is cut into half, the left part of it is made of soft toy, while the right part is the 3D print skeleton. By combining these two parts together. I can thus create a toy with “uncanny” feeling: The character we are most  familiar with turn into something terrifying. However, I didn’t manage to 3D print the skeleton out, in the end, I used my toy bear to create a similar concept. In this turn, the skeleton are made of soft steel wire, and get wrapped by white cloth.

Try 1:

  1. I found a human body skeleton model online and downloaded it.

2. Then I modified different parts one by one, and create a special skeleton for Hello Kitty.

3. I adjusted the skeleton a bit and went for 3D print, however, maybe the skeleton is too complicated, or maybe I used the file format as Maya obj, the 3D print didn’t work out. So I gave up this try and worked on the toy bear.

Try 2:

  1. First, I got my two toy bears and cut them into half half like this  

2. Then, I sealed them together with black thread and needle.

3. After that, I used some steel wires and cross them throught the right part of the bear like this/

4. In the end, I wrapped the steel wire with white cloth and imitated the white skeleton, and the final work came into this:


Tyler Roman- Inflatables Long Term Reading Assignment (Mikesell)

For the Long Term Reading Assignment, I made sure to charge in first and grab the most interesting piece (at least to me) and was more than happy to grab

Towards a Soft Pneumatic Glove for Hand Rehabilitation

published in Intelligent Robots and Systems (IROS), 2013 IEEE/RSJ International Conference.

And a link to my bare-bones presentation.

The reason for the lack of text being the expectation that I would narrate most of the information gained from the reading.

Overall the purpose of the text was exactly that of the title. Creating a soft glove made of air-controlled pneumatic networks that when actuated would cause the hand to contract in a semi-natural fashion thus creating a cheaper, easier, and simpler means of hand rehabilitation rather than the practice of requiring the hiring expensive physical rehabilitator.

The way in which this was done was by creating soft actuators through the use of silicone.

Taking inspiration from McKibben actuators the team involved used silicone and molds in order to create these actuators based on the PneuNet (Pneumatic Network Technique).

Once the actuators were created the team spent vast amounts of time taking careful calculations in order to ensure reliability, comfortability, and safety. In order to do so, they spent a lot of time calculating and comparing results taken between the observed data and the FEM data or Finite Element Modeling data (data calculated via mathematical computation and physics). Luckily, bar a few discrepancies in data due to the nature of the measurements and further improvements needing to be made most of the results landed squarely in what was both anticipated and needed.

The actuators were then connected to a neoprene glove designed for comfortability and quick removal for safety and then tested. The tests showed the actuators working to bend the hand to grasp various objects as seen in the photos in my powerpoint.

Take away and reflection:

Overall, I really liked this paper. It was a nice extension to the McKibben actuator lab we did in Lab 3 and really showed me yet again, the versatility of inflatables and their importance in the development and furthering of modern technology. coming into this class I honestly thought that the class would be about balloons and hot air balloons and water balloons or like bouncy castles and the like and yet, time and time again I have been suprised with the artistry, creativity, and unfortold possibilities of inflatables. The idea that inflatables could be used to tackle such things as physical rehabilitation, or used as “hugging” or support type devices to tackle mental illness, was a concept I had never taken into consideration before. Truly though, the depth of research needed to calculate and understand the full utility of the soft actuator truly goes to show the diversity of the inflatable for progress in the modern age, in all faculties of life, and in ways I had honestly never thought possible.

Tyler Roman- Inflatables Lab 5 (Mikesell)

 For this lab, I partnered with Isabella Baranyk and Maya Williams to use Arduino to control and measure an air pressure sensor.

The materials used were an Arduino, Breadboard, wires, air pump, valve, power source, IP 120 transistor, diode, voltage regulator, pressure sensor, and an inflatable square of TPU coated fabric

In the lab using the materials, we created two circuits, the first being a circuit designed to cycle through various high and low states, inflating and deflating an inflatable as they change.


While I was soldering the wires to the air pump, Maya and Isabella used the digital multimeter to ensure that the voltage was correct before plugging the circuit into any power sources. Our circuit needed about volts of outside power from a secondary source which they measured pretty accurately as seen below.


When the circuit was finished we connected the air pump to the valve with some small plastic tubing and then attached the inflatable square made of TPU coated fabric to the valve and successfully inflated it, but not deflating. After a while, we realized we still needed the power from the secondary source. Once the power was connected the finished circuit could both inflate and deflate the square. In the video we recorded you can hear the clicking of the valve that shows that air pressure is being released from the system.

The second circuit we constructed involved us adding a pressure sensor to our previous circuit. Then, after inputting an Arduino code for pressure sensing provided to us by Professor Mikesell, we connected a syringe to the open end of the valve with plastic tubing. By using the syringe and a serial monitor we were able to look at and calculate the air pressure/the change in air pressure. The maximum pressure we reached was a little over 30 which is supposedly about the highest you can reach. You can see some video of this below.

Credits to Maya Williams for photos/video


// Code to Control Valve
void setup() {
 // initialize digital pin LED_BUILTIN as an output.
 pinMode(6, OUTPUT);

// the loop function runs over and over again forever
void loop() {
 digitalWrite(6, HIGH); // turn the LED on (HIGH is the voltage level)
 delay(10000); // wait for a second
 digitalWrite(6, LOW); // turn the LED off by making the voltage LOW
 delay(1000); // wait for a second

//Pressure sensor code

#include "Wire.h"
#include <Arduino.h>

#define sensor_I2C 0x28 // each I2C object has a unique bus address, the DS1307 is 0x68
#define OUTPUT_MIN 1638.4 // 1638 counts (10% of 2^14 counts or 0x0666)
#define OUTPUT_MAX 14745.6 // 14745 counts (90% of 2^14 counts or 0x3999)
#define PRESSURE_MIN 14.5 // min is 0 for sensors that give absolute values
#define PRESSURE_MAX 100 // 1.6bar (I want results in bar)
float psi = 0; // 14.5 psi is pressure at sea level

void setup()
 Wire.begin(); // wake up I2C bus
 delay (500);

void loop()
 float pressure, temperature;
 //send a request
 Wire.beginTransmission(sensor_I2C); // "Hey, CN75 @ 0x48! Message for you"
 Wire.write(1); // send a bit asking for register one, the data register (as specified by the pdf)
 Wire.endTransmission(); // "Thanks, goodbye..."
 // now get the data from the sensor
 delay (20);

Wire.requestFrom(sensor_I2C, 4);
 while (Wire.available() == 0);
 byte a = Wire.read(); // first received byte stored here ....Example bytes one: 00011001 10000000
 byte b = Wire.read(); // second received byte
 byte c = Wire.read(); // third received byte stored here
 byte d = Wire.read(); // fourth received byte stored here

byte status1 = (a & 0xc0) >> 6; // first 2 bits from first byte
 //Serial.println(status1, BIN);

int bridge_data = ((a & 0x3f) << 8) + b;
 int temperature_data = ((c << 8) + (d & 0xe0)) >> 5;

 temperature = (temperature_data * 0.0977) - 50;

 Serial.print("PSI ");

Serial.print("temperature (C) ");

delay (500);

Tyler Roman- Inflatables Lab 4 (Mikesell)

The point of this lab was to create an inflatable dome which I did along with partners Maya Wang and Matthew Couch.

The materials used were a large sheet of plastic, scissors, cardboard, tracing paper, a marker, and a handheld iron.

1Then, using http://www.domerama.com/calculators/cover-pattern/ we calculated the dimensions for the gores and created a template using the cardboard. The Template was then used to create 8 corresponding gores that would be used to make the dome.



Once the side gores were completed and the resulting dome was flipped inside out we then made a base for the dome, using two pencils and a ruler to trace a circle onto another sheet of plastic. The base was then ironed onto the gores while a small opening was left for inflation. Finally, we took some leftover plastic and fashioned an inflation straw. Once the straw was done it was secured to the dome with tape since the awkward shape was not conducive to heat sealing. The dome blew up well even though the end shape vaguely resembled a soup dumping or perhaps a breast.




Tyler Roman- Inflatables Lab 3 (Mikesell)

For the second lab, we made McKibben Air Muscle actuators using balloons, a syringe, plastic tubing, some net, some zip ties.

My partners for this project were Maya Williams and Matthew Couch.

To create the muscle the balloon was strung through the net tubing by slowly inching it and pulling it through. Then one end of the joined balloon and the net tube was closed off with zip ties. The other end of the opening was attached to the plastic tube and then connected to the syringe. The final step tie of the opening with the tube using yet another zip tie. Once the muscle was completed it could be tested by using the syringe to pump air into the muscle.


Once each group was finished with their muscle we all connected our muscles to this sculpture created by Professor Mikesell and took turns inflating them causing the sculpture to bend in different directions.


Video of the working sculpture. Credits to Maya Williams

Tyler Roman- Inflatables Lab 2/Assignment 04 (Mikesell)

For this lab, Professor Mikesell brought us through the basics of creating 3D models using the Computer Assisted Design (CAD) software Fusion360 from Autodesk.

We practiced creating shapes and extruding them, hollowing and shelling them, and creating holes as seen below.

Then for the last part of the lab/the weekly assignment Professor Mikesell instructed us to create a bouncy castle.

Or rather a bouncy-castle-ish space. However, I just made a rather generic bouncy castle house as I thought that was assigned. Overall I am quite happy with the way it turned out and got quite a bit of practice sketching, extruding, filleting, and shelling various surfaces.

Inflatables Final Project [Matthew Couch]

Author: Matthew Couch

Date: 2018-05-15


Here was the original proposal I had made for my final project for the class.

I went to the fabric market and asked for TPU. I guess I went to the wrong one, because nobody that I asked knew what I was talking about. In the end I showed a Taobao page of some TPU and an old vendor claimed that the plastic he was selling was similar, so I ended up buying like 200 plastic paper holders. What type of plastic it is I don’t know if I’ll ever know. Luckily it seemed to somewhat inflate and hold its shape relatively well.

After purchasing the plastic, I went to a music shop to buy reeds. To my surprise they were much more expensive than I expected (150 for a box) and in the end proved useless, because I was unable to figure out the science behind them. This is where I decided to change up my choice of final project using what I already had made out of the plastic. At this point, I had created this (used some strong tape because no place I looked had the glue I wanted and apparently people on the streets don’t have a random heat sealer laying around).

After making the base “box” of the proposed instrument, I started experimenting with the reeds to see how to get them to produce sound. Having no musical experience apart from a semester-long class of piano, I went to Wikipedia and YouTube to try and figure out how reeds were used to produce sound. After multiple days of testing with different tubes, plastic pipes, etc., I couldn’t get the reeds to produce sound. At all. So I had to come up with a different idea. While blowing up the inflatable box with nothing more than a straw and my breath, I noticed something that would lead me to the idea for the final project.

After blowing it up for a while I noticed that the plastic kept appearing very dirty. This triggered a memory back to the proposed idea in class of a lung that would have the aim of displaying the health hazards with smoking. As a current (and wanting to quit) smoker myself, the box started to look like a box of 10-pack cigarettes that you would usually buy at the duty-free areas at the airport. With the inside getting dirty, my new idea of putting finished cigarettes in came up. I want the box to represent both a lung after smoking as well as the cause of it, a box of tons of cigarettes. Being an inflatable, I had further ideas that work best in a presentation. Blowing cigarette smoke into the inflatable would not only cause it to inflate, but also leave smoke in it that would slowly seep out of the place of inflation. While the smoke may be leaving the body, the effects are still done: the lungs are dirtier, and they slowly deflate to nothing. Smoking doesn’t have an immediate impact on the lungs, but rather a slow and (at least in the beginning) unknown one. It also occurred to me to poor a little water into the inflatable to better display the slow dirtying of it. After the fact I realized this idea was horrible and the smell was unbearable, so in the future there could be a healthier way to depict this idea.

After doing this project I realized that being too ambitious can easily cause problems. First off, I have no knowledge of music. Second, my knowledge of inflatables is also not the greatest. Had I put more thought into it originally I could definitely come out with a better overall final project (rather than somewhat improvising after figuring out my original plan wasn’t going to work).

Kinetic Interfaces – week 12 OSC weekly Assignment (Echo)

For OSC weekly assignment, I created a synchronised drawing board. The sender can be used to draw colourful lines and the drawing will be displayed on the receiver’s screen at the same time. Here is the demo:



import oscP5.*;
import netP5.*;

OscP5 oscP5;
NetAddress myRemoteLocation;

void setup() {
  oscP5 = new OscP5(this,12000);
  myRemoteLocation = new NetAddress("",12001);

void draw() {

void mouseDragged() {
  OscMessage msg = new OscMessage("/Echo");
  // let's send mouseX&Y positions
  float x = map(mouseX,0,width,0,1);
  float y = map(mouseY,0,height,0,1);
  float X = map(pmouseX,0,width,0,1);
  float Y = map(pmouseY,0,width,0,1);
  msg.add( x );
  msg.add( y );
  msg.add( X );
  msg.add( Y );

  oscP5.send( msg, myRemoteLocation );
  line(mouseX, mouseY, pmouseX, pmouseY);
import oscP5.*;
import netP5.*;

OscP5 oscP5;

int x,y,X,Y;
float xValue = 0;
float yValue = 0;
float XValue = 0;
float YValue = 0;

void setup() {
  size(800, 500);

  oscP5 = new OscP5(this, 12001);

void draw() {
  int x =(int)map(xValue,0,1,0,width);
  int y =(int)map(yValue,0,1,0,height);
  int X =(int)map(XValue,0,1,0,width);
  int Y =(int)map(YValue,0,1,0,height);

void oscEvent(OscMessage msg) {
  println("Pattern: " + msg.addrPattern() );
  println("Typetag: " + msg.typetag() );

  xValue = msg.get(0).floatValue();
  yValue = msg.get(1).floatValue();
  XValue = msg.get(2).floatValue();
  YValue = msg.get(3).floatValue();
  println("x" + xValue);
  println("y" + yValue);
  println("X" + XValue);
  println("Y" + YValue);