Invisible Angels

Devil's Whisper


Nowadays, many young adults struggle to manage and express their emotions, which can lead to health issues. Our concept Invisible Angels, is a jacket to help users express themselves freely and properly in a socially acceptable manner.

Invisible Angels integrates fashion and technology. When a user puts on the jacket, it will change colours depending on what the user is feeling. Fear is represented by purple, anger is red, sadness is blue, surprise is yellow, love is pink, and joy is orange. When a user starts to feel angry or scared, the soothing vibrations in the jacket will be activated to help them acknowledge their emotions as well as feel like a calming touch to help regulate their emotions. Since not everyone wants every emotion showcased to the public, a stress-ball device is placed in the pocket that allows users to secretly calm down without other people realising some visible signs like stress or agitation. This device also has an emotion delay component that is activated when squeezed, which enables the jacket’s colours to fade out for 30 seconds to allow the user to regain composure and hide any emotion they don’t want people to see.

From our initial idea ‘Pocket Angels’, to ‘Shoulder Angels’, and finally the ‘Invisible Angels’, a lot of changes were made to the strategies and coping mechanisms that help people to control their emotions. However, our constant motivation is to bring confidence to people, to help them embrace different emotions, and express internal feelings safely. At the same time, appropriate expression of their emotions is also beneficial to people’s social communication. Ideally, with the help of this jacket, users will be happier and more confident, and the jacket will display more positive emotions.

Technical Description

Pressure Sensor (Stree Ball)

The pressure sensor was implemented through the help of an Adafruit learn tutorial as none of the team were familiar with how to use one. The tutorial had a circuit diagram of how to attach the pressure sensor to an Arduino and also a sample code that helped us get started. This tutorial helped form the base of the code used for the final working stress ball as the sample code explained how to make a light brighter the harder you squeeze the pressure sensor. The code was then modified to display a light and then when the pressure sensor was squeezed the LED would go out. This was done through modifying the IF statements of the sample code and we kept the wiring the same. We spoke with the tutors to ask how to change an LED pin to an LED strip for when the neo pixels needed to be added in. They explained to us that we needed to define the pin and the amount of neo pixels, and from there we were able to change the LED pin to an LED strip.

Neo Pixels


We initially had a loose idea of what we wanted our lights animation to look like, which was one light appearing after the other as we noticed the LEDs can be quite bright and intense if they appear all at once. After looking through the examples on the Arduino software, we noticed that one of the examples was what we wanted to achieve, it was the Strand Test. This example contained a lot of different variations, but we just used the colour wipe. Once the pressure sensor was complete and we had already discussed with the tutors about using an LED strip, the transition from a pin to the strip was relatively straightforward; we just needed to modify the IF statements to get the code to work. There are several instances of serial.begin(), and strip.begin() that needed to be included for the combined code to work, some were missed when copying across the code and it caused some issues. It just took a couple tries to ensure all the necessary parts of the code were included when merging the files together.

Design and Lighting Choices

We started out using a neo pixel strip to test our initial animations and codes as we had easy access to them. However, we knew we wanted to be able to style the lights on our final jacket to create the experience we wanted. We went through different design options but after talking to the tutors, we found that individual neo pixels exist and that they may work to achieve the final look we wanted; so we settled on the flora version 2 model. We decided to create a cleaner design we would use with conductive thread, again an Adafruit tutorial inspired this idea. The first attempt of sewing the lights together resulted in them not working correctly and showing random colours. This happened on the second attempt and also the third attempt when we tried soldering. However, on this third attempt, after talking to the tutors, we realised that the data line should have gaps between in and out, so we were able to get the lines working correctly. After we finally got those lights working, we did not touch the lights till the week of the exhibit. We ended up using LED strips for the final exhibit as the neo pixels stopped working the day before the exhibit; this is explained in more detail in technical difficulties.

Galvanic Skin Response (GSR)

The GSR sensor is mainly used to detect the user’s skin electricity through a metal detector worn on the user’s finger. The conductance of the skin increases when the user's sweat glands are more active, and sweat gland activity is also affected by mood changes. When the GSR sensor recognizes the change of the user's skin conductance, it identifies the category of emotion according to the result after analysing the data from user tests. The identified emotions are displayed in colour by neo pixels. Different colours represent different emotions.

In the user test, we selected six videos representing joy, fear, sadness, surprise, love and anger, and the user watched these videos while wearing the GSR sensor. After collecting a large amount of user data, we analysed the data, and finally determined the data variation range of six emotions. For the exhibit, we were only able to demonstrate three of the colours, red, purple and yellow. These colours will give users a good understanding of the concept as they show off the different features.

In addition, for a more comfortable user experience, we cut the finger sleeve of the GSR sensor and pinned it to the jacket cuff. That way, users can simply wear the jacket normally and the GSR sensor will still detect the changes in the user.

Vibration Motors

When the GSR detects that the user is currently in a negative mood, such as anger or fear, the vibration motor will be activated. Four vibration motors are connected to the Arduino board by using dupont lines and a breadboard. Based on user evaluation, we implemented the ‘Staccato’ vibration pattern, and the motors will start vibrating and then fade out from the top to the bottom by using AnalogWrite( ) function. Placed on the right shoulder and arm, the motors are also fixed onto a filed piece of plastic to ensure they could be placed properly in the jacket without breaking as the wires are very delicate.

Physical Construction

There were some issues merging the separate codes together, while maintaining the functionality of all the individual components. It took longer than expected and we required the help of the tutors to help us get to our final file that we used for the exhibit.

Adding the interactions to the jacket was an easier task. The jacket had a lining that we were able to hide all of our wires in which made the process a lot simpler. We just had to unpick parts of the jacket to allow the wires to go through, like in the pocket of the jacket for the stress ball and the cuff of the sleeve to hide the GSR wires.

The pressure sensor is attached to a filed piece of plastic to ensure that the wires are secure and to allow for the sensor to read the pressure. A foil ball is placed on the sensor to create a button and for the sensor to read the pressure. The plastic board and the foil were then wrapped in two layers of foam so users would not feel the plastic and put into a fabric covering that was sewn.

Similarly, the vibration motors were attached to a filed board to ensure the wires were secure and didn't break as they are very delicate, they were then super glued down. Small pockets were then sewn into the jacket, under the lining so it would hide the wires, for each of the vibration motors.

The GSR cuff was done the day before the exhibit, we hoped to sew it in properly before the exhibit started but we did not get a chance so it was pinned in place.

Technical Difficulties

The day before the exhibit the neo pixels on the jacket weren't working. We decided to add LED strips on either sleeve of the jacket so users could still have the full experience. The day of the exhibit, we found that everything was connected correctly, however the LED strip was dead, so we cut it off and replaced it and it worked in time for the exhibit.

The GSR sensor wasn't working as we expected due to the cold conditions that day. It sometimes didn't work because people were cold and there wasn't much sweat on their skin.

Several problems were related to the power bank. When the jacket was connected to the power bank, the pressure sensor stopped working. As a backup plan, during the marking session, we connect the jacket to the computer to show the tutors the fully working function. Similarly, the stress ball wasn't always working late at night. We were able to simulate the experience by taking our fingers on/off the GSR sensor when squeezing the stress ball to show users how the jacket would work. During the exhibition, the lights on the jacket stayed on when no one was wearing it, and it could have potentially been the power bank connection.

Final Statement


Compared with the lively atmosphere and a large flow of people in the campus, there were less opportunities in the online exhibition to interact with visitors. We still had a strong sense of participation as our internal members kept their cameras on and live streamed the other teams’ work. It was a successful exhibition for our team because we cooperated well and the visitors were so engaged when wearing our jacket. iIt was also great to see the high level of interest shown by the users in experiencing our product.


There were many different people we interacted with and were interested in our concept. It was fascinating to talk to students who weren’t in IT and to hear their thoughts on what we created. On the other hand, it was quite a different experience to talk to people in industry and to hear their thoughts about our concept and what directions they could see our concept going. The experience overall also felt quite surreal and validating after having put in so much effort over the semester we got to see people in our jacket, interacting with it, trying it on and seeing how they respond to it.

Public Response

We spoke with a range of different people. It surprised us to see students from different faculties and people who didn't have an IT background respond to our concept. Below is a summary of some of the people we spoke with.

A visitor really liked our concept and said he could see his company using it. The customer service section in his company is currently facing some issues regarding their staff getting upset while talking to customers. We spoke about how our concept would be useful to calm down in stressful situations. It was exciting to hear the different ways people could apply our concept to their day-to-day life.

A DECO1100 student was interested in our concept. He thought his friend who was struggling to settle into university would benefit from having our jacket as it would give her the confidence to get out more.

We received some interesting questions about considerations we made while designing the jacket. It was pointed out that some natural feelings like stress, anger, happen in situations where people just need to acknowledge them rather than regulate them. We hadn't taken this question into account and it would be something we should explore further.

Overall, talking to everyone it was really encouraging to hear the positive feedback but also the questions and scenarios people proposed to us that we hadn't considered.

Future Directions

There are five features we identified throughout the exhibit that we will look to as future directions. We received positive feedback about the pressure cuff function. People liked the idea of being comforted by pressure and being hugged when feeling upset. After talking to users, we will consider the possibilities of incorporating our concept on other clothing like shirts or even scarves, so it isn't restricted to a jacket. The current results of the GSR are affected by environmental factors, such as indoor/outdoor temperatures, user's body temperatures, etc. We could add more GSR sensors across the body to reduce the error rate. Next, researching ways to allow a GSR to take into consideration when a user doesn't need to be calmed down. Finally, users liked the idea of being able to set their own colours on the jacket to express their individuality. They also liked this future direction and took into consideration the different cultural interpretations of colours.


Team Photo:
Eventphotography. (2022, June 2) The University of Queensland - Interaction Design Exhibit 2022. [Photograph]

Ada, L., &Nosonowitz, D. (2012, July 29). Connecting to an FSR. Adafruit.

Cooper, J., Stern, B., Blaine, E., Ada, L., &Barela, A. (2012, November 8). Sewable NeoPixels. Adafruit.

Anonymous. (n.d.) Arduino example - strandtest. Adafruit NeoPixels Library.