Sneaking Out – Narrative spaces [ATLR II EX2]

Mahnoor Shahid – 3162358

Siyue Yasmine Liang – 3165618

Jin Annie Zhang – 3161758


Narrative Spaces – Sneaking Out [ATLR II EX2]

Our narrative revolves around you quietly trying to sneak out of the house at night without waking up your parents. But your parents have secretly set up traps around the house that play loud alarm sounds when triggered. The setting of the installation is supposed to represent the entryway in a house. You have to try your best to stay quiet and avoid these alarms while exiting. If sounds are played you have to stop them by replacing other objects on sensors or using other methods. As the interaction starts, your pet dog wakes up and starts barking for food. Your first challenge is to give the dog food within 30 seconds before your parents wake up!

Interaction Steps

The installation has a challenging procedure that the player has to overcome.

  1. The first challenge is to stop the dog from barking by giving him food within 30 seconds (before the parents wake up).
  2. You have to grab the food bowl from the table and the place is on the mat to stop the barking.
  3. The food bowl is on a light sensor, so when the bowl is taken off the table, the light sensor triggers an alarm sound.
  4. Now, the player has to find another object and cover the light sensor with it to stop the alarm
  5. They can take a painting off the wall and place it on the sensor.
  6. As they move towards the door, there is a light beam from a flashlight that is shining on a light sensor, if the player crosses it, an alarm will trigger so they must walk over the light beam
  7. Near the door, there is a safe that the player has to open to get the car keys.
  8. The code has three numbers that are hidden around the room.
  9. The player has strategically walk around the room and search for them without triggering the light beam alarm.
  10. The number can be found behind the painting, on the dog bowl, and near the table lamp.
  11. Once the code is found and correctly entered, the safe is unlocked and the player can grab the keys and sneak out!



Max Patches

Dog bowl switch and light sensor alarm trigger

This max patch had one digital switch and one analog light sensor.

The dog barking starts at the beginning of the game. When the dog bowl is placed on the mat, the digital switch closes, and the dog sound stops.

The dog bowl was on top of a light sensor. When the dog bowl is moved, an alarm sound triggers since the lamp is shining on it. The person has to replace the bowl with something else.


img_0552 img_0553




Light Beam “Alarm System”


This match patch has one analog light sensor. By default, the flashlight is shining on the sensor which keeps the alarm sound off. When a person passes through the light beam,  the light sensor receives no light and plays the alarm sound. The person in the game has to make sure not to block the light beam to avoid alarms. 






Atmosphere Sound


To give a night time atmosphere, we had a cricket chirping in the stereo sound.


Keypad and servo motor lock

The player has to find the code numbers 5,9 and 4 and enter them in that specific order. When the correct order of the code typed into the keypad, the servo motor rotates 90 degrees, ending up in a horizontal position. This unblocks the hole and allows the person to open the box cover.




Code for the lock system




  • lamp
  • dog bowl
  •  conductive fabric (digital switch)
  • dog mat
  • flashlight
  • 2 light sensors
  • painting
  • stickers

Audio Files

  • Dog barking (Barks for 30 seconds, then “Who’s there” dialogue starts).
  • Crickets
  • Alarm ringing
  • Buzzer sound when the code entered is incorrect.



ATLR II Experiment 1: The Suede Game

Mahnoor Shahid – 3162358

Andrew Ng-Lun – 3164714

Denzel Arthur – 3157183


The SuedeGame is a 3 player puzzle game. The players are storekeepers who have to find separated parts of their leather items. The separated items are a watch, a duffle bag, and a journal. They have to assemble the found objects corrected according to the item they belong to before the store opens.

When they come close to a  part, a video starts on the monitor showing information related to leather products or sewing.




We based our game concept on Leather in Three Dimensions by Rex Lingwood. It is a craft book that demonstrates interesting leather crafting techniques for the beginner and the expert. The book includes instructions and diagrams of how to shape, fold and cut the leather. Based on this, we thought of a basic matching game where the player would have to collect and assemble the corrects parts of a leather object and assemble them correctly. The three products are a leather watch, leather duffle bag, and a leather journal book. In our initial concept, the players would have had to select the correct parts from a table. Later we changed the environment to a leather store where the players have to find hidden parts of the products and assemble all three of them before the store opens.

Data synchronization in unity and pubnub:

We used the Pubnub Unity SDK to synchronized our game across three laptops in real time. This tutorial shows a Unity Build in WebGL hence we chose to use laptops instead of other devices for a better game view.


To develop our suede game, we used Unity to build the leather store game system. Unity excels at creating 3D environments and has easy compatibility with other 3D models. This gives us the opportunity to create our own content from other applications and merge them together in Unity such as using Blender to create 3D models and input them into the game environment. Unity is not only compatible with model applications but can also talk to online networking platforms like pubnub. By using pubnub, we can connect several users together to play the game on several screens with live updates. Furthermore, the beauty of unity, it allows us to fully customize the game components, whether they are the UI menu, interactive buttons, lightings/camera direction, and other features, but also when developing the game, it gives us an interface to work with which makes editing much easier.


screen-shot-2019-01-27-at-10-15-09-pmscreen-shot-2019-01-27-at-10-15-18-pm screen-shot-2019-01-27-at-8-43-10-pm screen-shot-2019-01-27-at-8-15-10-pm screen-shot-2019-01-27-at-8-14-18-pm


Although the initial real-time synchronization involving Unity SDK and pubnub on WebGL was a success, we had difficulty connecting the finished game to Pubnub. Eventually, the game was connected to pubnub but we were unable to test it with multiple players.

Process Video links:


We created a back-up sketch in p5.js related to modifying shapes. The idea of the sketch was to drag small circles on the outline of the circular shape and match it to the static shape. It was meant to be a multiplayer, interactive game. So far, the players can drag their mouse along the x-axis to change the radius of the circle. Their interactions can be seen on other devices in real time through the help of Pubnub. We are still working on the dragging to manually modifying the shape.

download-1 screen-shot-2019-01-24-at-4-29-58-pm


P5 sketch:

Unity scripts:

Unity build:


EX3 – Rainy Weather Controller


Siyue Liang (3165618)

Mahnoor Shahid  (3162358)

Jin Zhang (3161758)

DIGF-2004-001 Atelier I: Discovery

Documentation: Weather Controller


Project Description

We created an interactive umbrella that a person could use to control the rainy weather. The umbrella had three sensors to control the projection; stretch sensor, proximity sensor, and a pressure sensor.

The stretch sensor triggered the starting and stopping of the rain. The pressure sensor triggered the lighting and thunder on the screen and the proximity sensor controlled the speed of the rain.

We incorporated these sensors with the structure of the umbrella and how it moves when it is opened and closed. For example, the stretch sensor was obscurely attached to an arm of the wireframe. When the umbrella stretched, so did the stretch sensor and it triggered the rainfall.

The pressure sensor was glued to the bottom part of the handle where it would be to press and hold the pressure sensor with the umbrella.

The proximity sensor was taped to the fabric of the umbrella close to where a person’s head would typically be. Therefore it was easy to control the rain speed with the head position.


Materials and Techniques


Stretch Sensor

  • Stretch sensing fabric
  • Needle and thread


Pressure Sensor

  • Velostat (senses pressure)
  • Neoprene sheets
  • Sewing machine


Proximity sensor

  • Bare conductive paint
  • Paper, paint brush
  • Capacitive Sensing library in Arduino


Other materials used


  • Umbrella
  • Arduino and breadboard
  • Male to male wires
  • Two 1 megaohm resistors
  • One 10k ohm resistor
  • One 220k ohm resistor
  • Alligator clips
  • Needle and thread
  • Sewing machine
  • LED lights
  • Tape and a glue gun

Obstacles with code

We had some issues with the code in Processing. For example, the soundtrack in setup function couldn’t play for some reason so we tried putting it in draw function. It worked this way but also had a minor issue where if the person pressed the sensor too frequently, the sound would overlap repeatedly and take a long time to finish playing.  Another issue we had with Processing was that the values generated by sensors were very unstable that it was difficult for us to settle on a fixed range for each sensor as the value inputted kept changing.

Since we had never worked with CapSense before, we had to experiment a lot, in the beginning, to make the code work. The CapSense code caused some issues with the serial input.  Each time a new sensor was added, the sensor input wasn’t being read in the CapSense sketch serial port yet it was being read in other Arduino sketches. It took a while to debug. We commented out the millisecond function and had to put the reading of the analog inputs in void loop().


Obstacles with sensors

The stretch sensor didn’t have a large difference in its resistance when stretched and un-stretched so we tried to used a higher resistor.

The conductive paint sensor needed very high resistance for a larger proximity area so we combined two 1 megaohm resistors on the breadboard.


Last Minute Issues

  • Due to the fabric material of the umbrella, it was incredibly difficult to glue and tape the conductive paint sensor onto it. We tried multiple tapes and eventually found one that stuck for longer yet was still peeling off after a while.
  • The stretch sensor broke the umbrella wire so we had to re-sew it onto another arm.
  • The stretch sensor lost much of its elasticity and so we needed to edit the processing code multiple times to match the serial port inputs correctly.
  • The proximity sensor wasn’t working too smoothly for some reason but eventually worked properly.
  • We tried using the conductive thread as a wire which caused short circuits.
  • The rain sound wasn’t working in processing yet we got the thunder sound to work with the lightning. In processing, sometimes the audio would I expectantly stop working for no reason.


Discoveries and Lessons Learned

  • Using the CapSense library, we discovered that almost anything conductive can become a proximity sensor.
  • We learned how to incorporate the sound library in Processing.
  • We gained a lot of experiences working with fabric and sewing techniques.

Overall, It was a lot of fun working with sensors and we learned a lot in the process.  Doing this project we realized that there is a huge space left about sensor for us to explore and try out.


Project Context (Inspirations & References)

We got the idea of the weather controller because of the rainy weather that has been around recently.  

Neoprene Pressure Sensor:

  • We used the conductive thread technique in this tutorial and elongated the shape of our sensor to wrap around the handle of our umbrella

Conductive Paint Proximity Sensor:

  • This tutorial and youtube video was very helpful in building a basic proximity sensor with the CapSense library

Troubleshooting with the Cap Sensitive Library:

  • Learned about what resistor we should use for the desired response and how the library worked.

Sewing Machine Guide:

  • We needed to use a sewing machine to construct our pressure sensor neatly.

Using Sound Library in Processing:

  • Used this tutorial to import rain and thunder sound files in our processing code.












Rain starting with the stretch sensor and the speed is increasing with the proximity sensor:


Thunder sound and lightning with the pressure sensor:


Fritzing Diagram: