Research Critique: Costume and Textile

Utam Moses (choreographer) and Eric Lindsay’s (composer)”The Space Between Us” is a collaborative electronic music and modern dance piece for computationally enhanced dancers and MAX/MSP, a programming language for interactive music and multimedia.

the space between us
The dancers’ costumes are augmented a wearable microcomputer (LilyPad Arduino), a wireless transmitter, and various sensors.

The costumes are embedded with LilyPad Arduino technology. One of the dancers’ (with the round skirt) costume combines LilyPad components and an XBee (wireless transmitter) together with pressure and flex sensors connected by conductive thread, which detects and transmits the movements of the dancer to the composer’s laptop, which are then used to generate and control sound within a MAX/MSP environment.

lilypadMainBoard
Lilypad Arduino Board

 

“The e-textiles facilitate interactivity between dancers’ movements and the music that accompanies their dancing, transforming the power dynamic between composer and choreographer by putting the power of live musical improvisation in the hands (body) of dancers. This relationship extends an unprecedented power to dancers, who are most often constrained by the decisions made previously by a composer.”                                                                                            – Eric Lindsay

For the costumes to achieve functionalities and expressive capabilities, sensors are to track the most communicative motions of the dancers, the music controls had to be sensitive to the gestures onstage but conspicuous enough so as to ensure the audience knew what movements elicited which kinds of sounds, and the costumes had to withstand duress from stretching, heat, and perspiration.

im2
Instead of a dancer’s movements being a slave to the fixed constraints of a pre-composed piece of music, the wireless dance costume puts the power of live musical composition in the hands (body) of the dancer, who can explore and improvise new shapes and structures within an otherwise free musical environment.

This project uses Arduino kit which is an open source technology. It is important as all Arduino boards are completely open-source, empowering users to build them independently and eventually adapt them to their particular needs. The software too, is open-source, and it is growing through the contributions of users worldwide. A worldwide community of makers – students, hobbyists, artists, programmers, and professionals – has gathered around this open-source platform, their contributions have added up to an incredible amount of accessible knowledge that can be of great help to novices and experts alike.

 

Research Critique: Glitch Aesthetics

 

Glitch art is the aestheticization of digital or analog errors, such as artifacts and other “bugs”, by either corrupting digital data or by physically manipulating electronic devices (for example by circuit bending).

In recent years it has found a central place in contemporary media art, particularly via the Internet where emergent low-resolution glitch forms and other so-called “accidents” of artifacts are often native to the medium. 

tumblr_mticoq91A51roo3oco1_r1_1280-e1390972312199


One of the key artists who have pioneered the art and theory of glitch aesthetics is Rosa Menkman. We will look at one of her famous works, The Collapse of PAL

The Collapse of PAL is a transmission art project that explores the performativity of television in light of the challenges brought about by a converging mediascape. Menkman’s performance dealt with obsolescence, death of media, and what is most interesting, media archaeology of signals and signal formats.

Instead of the focus on devices, even if at times lost and outside mainstream, we are seeing new perspectives that take in their focus components, processes and such “minor elements” of media history.

The screens were filled with electronic signal landscapes, of waveforms and at times recognizable Gestalts. The angel from future was the protagonist through whose mouth the Collapse of PAL painted a history of the PAL signal as loser to for example the DVB signal.
193500857_960
Despite the fact that I loved the piece, I also sensed the danger of nostalgia in this strong defensive reaction of history of losers – which was framed through an idea of progress as the force that blindly abandons all that it considers inefficient. A critique of rationalism and progress is not grounded enough. Thus there is a serious question for us to think about the answer: To what extent are we in danger of celebrating past media just for the sake of our emotional attachment to them as childhood memories and part of the collective media memories that are now in danger of being lost with new signal solutions and media environments? 

 

“I could only understand it as irrational and void of meaning, and so I walked away from it, confused and titillated”- Rosa Menkman.

 

Research Critique: Virtual Bodies in the Third Space

A virtual body is the state of being when inhabiting virtual reality or a virtual environment. The third space refers to a shared electronic social space where the physical and the virtual are blended. This topic is enigmatic and has been open to dispute.


telematic-Dreaming_low
Paul Sermon’s Telematic Dreaming was originally produced as a commission for the annual summer exhibition curated by the Finnish Ministry of Culture in Kajaani, with support from Telecom Finland, in June 1992.

Paul Sermon’s Telematic Dreaming (1992) turns a bed into the support of high-resolution images that might show a partner, intimately alive although being thousand kilometers away. The light-intense projection of the other results in a remarkable suggestion which turns the touch of the projected body into an intimate action.

But Sermon deliberately avoids providing an audio link so as to concentrate attention on the meeting of two bodies separated in real space but virtually conjoined: “human interaction was reduced to its simplest essence: touch, trust, vulnerability.”

Sermon aims at expanding the senses of the user, while it is obvious that the other cannot really be touched but that only swift, decisive, possibly tenderly reactive movements can experience the suggestion of touch—a moment of contemplation, as many users observed.

My response: The computerisation of human experience is generally thought to diminish the physical and emotional sides of life, yet the in the virtual world of Telematic Dreaming questions of privacy, intimacy and identity were central. Not only the performer but also many members of the public were overwhelmed by their experiences on the other bed.  The installation was paradoxical for not only using technology to provide a forum for experiencing the basics of human intimacy, but for situating this private interaction within a public domain.

Research Critique: Dance Performance

Eiko & Koma: My Parents

Eiko Otake and Takashi Koma Otake, generally known as Eiko & Koma, are a Japanese performance duo. Since 1972, Eiko & Koma have worked as co-artistic directors, choreographers, and performers, creating a unique theater of movement out of stillness, shape, light, sound, and time.

Eiko & Koma’s iconoclastic work combines slow and nuanced movement vocabulary with bold theatrical design. Whether performing in a theater or in natural sites outdoors, Eiko & Koma often move as if they are not human.
Eiko & Koma’s iconoclastic work combines slow and nuanced movement vocabulary with bold theatrical design. Whether performing in a theater or in natural sites outdoors, Eiko & Koma often move as if they are not human.

In post-war Japan, nature was part of the life and life was simpler without much technology. Baby boomers including Eiko and Koma protested on the streets for the damages done to the earth during the industrialization. That was where their aspirations came in.

In their dance, they often move as if they are not human. The movements are in their most pristine forms. While they are dancing on the floor, they reminds me of those earth creatures with a long, narrow body and a lot of legs. Many of their works contain nudity, which emphasizes the vulnerability of humans and transforms their appearance so they do not have everyday human bodies.

“A fish is naked and stone is naked. Why not us?”

 

Motion Control

Motion Control was produced with an Arts Council England / BBC Dance for Camera Award and examines the synergy between camera and performer. The film is notable for hyper-sound Foley score overlaid with text and electro-opera.

Devised and choreographed by Liz Aggiss and Billy Cowie and directed by David Anderson, Motion Control examines the synergy of camera and performer.
Devised and choreographed by Liz Aggiss and Billy Cowie and directed by David Anderson, Motion Control examines the synergy of camera and performer.

Take one glamorous and ageing dancer. Trap her in the real world, then smash into her private reality. Control her movement, contain her emotion. Well you can try but she has already beaten you to it. With hypersound and super smart awareness submit to this bizarre journey of entrapment.

This screen dance challenges traditional notions of choreography through depicting movements both viscerally and conceptually. And of course it is very hard to get it out of your head after watching it. The performer’s face, her hair, the soundtrack, the camera angel, the special effect, her dance in the small box trying to fight against gravity made it one of the most strangely fascinating things I have seen in a while. As I was reading through the comments on Youtube, I found one really interesting: “oh my..this is very dark, makes me feel very uncomfortable.a horrible piece of work but one that raises strong and powerful emotions. fantastic!” 

Yes, the film looked really dark and horrible at the beginning, especially when the camera came out of the ground and entered this red room with a witch-like woman lying in the green bed. But the choreography/cinematography really fascinated me.

lizaggisshead

Research Critique: Sensing Garments and Smart Textiles

Wearable Kinesthetic Systems, Alessandro Tognetti, Federico Lorussi, Mario Tesconi, Raphael Bartalesi, Giuseppe Zupone, Danilo De Rossi (2005)

 

“This paper deals with the design, the development and the realization of sensing garments, from the characterization of innovative comfortable and spreadable sensors to the methodologies employed to gather information on posture and movement.”
The report was about developing a wearable kinesthetic system for capturing and classifying body posture and gesture.
It started with the relevance of body kinematics monitoring technology in several biological disciplines and applications like rehabilitation monitoring. Some drawbacks of the conventional technologies were then mentioned. For example, the clumsy mechanical plug and wires of traditional sensors may bound human movements.
ULKG prototype
ULKG prototype
Two types of sensorized garments based on conductive elastomer (CE) sensors were created: an Upper Limb Kinesthetic Garment (ULKG) and a Sensing Glove. The piezoresistive properties of CE sensors made it possible to obtain a sensing fabric which could then be used to manufacture garments capable of monitoring human movements.
The process to obtain the fabric was rather technical. Refer to the link for more details. http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1079930/
The report then further described the prototypes of ULKG and sensing glove and their electrical models and data acquisition techniques. At the end of the report, it evaluated the performances of both garments. The results turned out to be quite accurate.
In this work, the garment’s wearability was placed with priority, which led to its advantage over the traditional monitoring wearables.

 Wearable Electronics and Smart Textiles: A Critical Review, Matteo Stoppa and Alessandro Chiolerio (2014)
“This review focuses on recent advances in the field of Smart Textiles and pays particular attention to the materials and their manufacturing process. Each technique shows advantages and disadvantages and our aim is to highlight a possible trade off between flexibility, ergonomics, low power consumption, integration and eventually autonomy.”
The review started with an introduction of smart textiles. It described the convergence of electronics and textiles into fabrics which were able to sense, compute, communicate and actuate. More attention was devoted to the materials and methodologies to develop smart textiles. Each scientific approach was followed by a review of the related work carried out by companies, universities or research institutes.
Smart Textiles are defined as textile products such as fibers and filaments, yarns together with woven, knitted or non-woven structures, which can interact with the environment/user.
Smart Textiles are defined as textile products such as fibers and filaments, yarns together with woven, knitted or non-woven structures, which can interact with the environment/user.

 

It discussed fabrication techniques like conductive fibers and conductive inks. These conductive materials could be used as sensors due to their electrical properties. Other types of sensors like stretch sensors and pressure sensors were mentioned, too.

 

Each method presented has a very specific feature such as conductivity, flexibility, biocompatibility, mechanical resistance and washability. With only a few approaches able to satisfy all these requirements at the same time, trade off often exists.
The review concluded with a vision of future wearables. The final key factor for user acceptance of wearable systems is the fit comfort.

Research Critique – Biometrics

Dana Haim is a textile designer living in London. She finished her MA in Design for Textile Futures at Central Saint Martins. I found one of her biomimicry projects during MA Textiles Futures course particularly intriguing. It’s called the braided beaded ball suit.

Vimeo caption: ‘The braided beaded balls suit’ eventually becomes a paradox of adornment, seduction, and fashion. In a way it mimics nature, whilst being an artificial counter strike to its natural descent.

This video was made in collaboration between Dana Haim and Learke Hooge Andersen. It was part of a biomimicry project where they were very much inspired by the glowing creatures of the deep sea as well as weird formations in the human body to inform new approaches in design. They created a kind of hybrid of the two using this costume that they made specifically for this video.

research2-1
Dana (Left) with her Danish buddy Learke (Right)

They also used several kinds of recycled materials to create the costume such as left over tights, ribbons, and beads. The dancer in the video is Supitchanga Vanasirikul.

” I am inspired by: The beauty of a forgotten old wall layered by the patina of time, remnants of posters, flyers and staples, cracks running down it and rust dripping through the cement. Multi colour neon graffiti dancing between the layers of paint, paper and dirt. Colourful dreamscapes. Wild animals and all the patterns and textures found in nature for instance the beauty of wood grain or the many facets of mineral stones. ”                                                                                                                            – Dana Haim

What is special about this project is its emulation of the beautiful symmetry in nature. For centuries, symmetry has remained a subject that’s fascinated philosophers, astronomers, mathematicians, artists, architects, and physicists. No one’s sure why it’s such an ever-present property, but it’s definitely one of the greatest gifts from nature.

research2-4
Examples of symmetry in nature

research2-3

 

Sources:

http://deehaim.flavors.me/#dana-haim

http://theglittertrail.blogspot.sg/2010/09/balls-suit-was-shortlisted.html

 

Project Hyperessay #2: Conclusion

The objective of the collaborative project Touch was to investigate critical concepts and fundamental artistic concerns inherent in the emerging form of live networked performance in the third space, through creative dance movements, interactive wearables, smart textiles, audio-visual arts and the Critical Response Process (CRP).  

This collaboration between School of Art, Design & Media at Nanyang Technological University in Singapore and the School of Arts, Media & Engineering at Arizona State University took place on Thursday, April 21 (SGT) in a third space where the artist Angeline Young and students of ADM performed as a collective body. And the performance was being live broadcasted over the Internet to expand the experience of the networked performance to the global audience despite of the spatial divide.

23aaaaaa


My inspiration came from this project called “The Space Between Us” which was a collaborative electronic music and modern dance piece for computationally enhanced dancers and MAX/MSP, a programming language for interactive music and multimedia.

Link:

https://www.youtube.com/watch?v=msqol0w9NVs

pp1

One of the dancers’ (with the round skirt) costume combined LilyPad components and an XBee (wireless transmitter) together with pressure and flex sensors connected by conductive thread, which detected and transmitted the movements of the dancer to the composer’s laptop, which were then used to generate and control sound within a MAX/MSP environment.

So instead of a dancer’s movements being a slave to the fixed constraints of a pre-composed piece of music, the wireless dance costume put the power of live musical composition in the hands (body) of the dancer, who could explore and improvise new shapes and structures within an otherwise free musical environment. This became the concept for both my costume design and dance performance. 

 

The interactive mechanism of my costume was largely based on this idea. 

 

 

While conceptualising for the idea of the final performance, we had been explicating the concept of “touch” in the third space throughout the first half of the semester by exploring such topics as “the virtual body,” “distributed presence,” “third space,” “biometrics,””sensing garments and smart textiles,””glitch aesthetics,””dance movement” and etc. 

 

Some research critiques that helped me arrive at the final work I produced for the performance:

research2=2

This was part of a biomimicry project called braided beaded ball suit which was an emulation of the beautiful symmetry in nature. Artists who created this were very much inspired by the glowing creatures of the deep sea as well as weird formations in the human body to inform new approaches in design. This inspired my costume design of glowing LEDs in front of the background of the black velvet as well as the mesh structure created by wires which resembled vines in the nature. 

21aaaaaa

 

In my research critique of dance performance, Eiko & Koma’s iconoclastic work combined slow and nuanced movement vocabulary with bold theatrical design. Whether performing in a theater or in natural sites outdoors, Eiko & Koma often moved as if they were not human. Although this was not exactly what I imagined my dance movements in the final performance would look like, I did borrow the simpleness and directness from their dance. 

Essentially, dance is a way of communication. Without the fixed constraints of a pre-composed piece of music the artist’s personal narrative is embodied through pure movements – dance in its most pristine form.

Eiko and Koma

IMG_8736


He is a weaver of personal histories through sound, a composer, who conducts and orchestrates the sonic world that is generated by the movement and actions of Angeline and the colony. He carefully layers the sound to coordinate a sense of harmonic affiliation in the third space through the carefully blending of personal histories represented in sound. However, Yuhao’s efforts are often undermined and disrupted by the actions of Charlene and Feliciana. Yuhao seeks to overcome their resistance through mysterious answers from Angeline as to the amorphous and intangible nature of human communication in the third space to create a world of mutual understanding.

victorian_era_inverness_cape

 

Based on this character sketch, I designed and made my costume which was inspired by the Victorian Era men’s fashion. Most often associated with Sherlock Holmes, the inverness cape is a weatherproof outer coat which was often worn in 1880s London. 

 

IMG_8604

IMG_8605unspecified

With the costume in progress, I worked on electronic / wearables for incorporation into the piece. There were many possibilities for input sensing, from accelerometers to proximity sensors, and the goal was to create the ideal mapping of input and output, embedded appropriately in the garment or accessory for the performance.

Movement and gesture would be translated into sound. Each character emitted specific kinds of sounds. I spent a big portion of the time on codings especially the radio transmission of data used to generate and control sound within a MAX/MSP environment. We switched from bluetooth wireless to radio wireless as bluetooth had some connection problem with Mac causing the data transmission to be unstable.

nrf24L01-black

 

Under the guidance of Naga, I managed to transmit data between two nRF24L01 transceivers with one as the transmitter sending out the data and the other one receiving the data. The transmitter was connected to LilyPad which was sewn onto the costume. The receiver was connected to Randall’s Mac and Max software  extracted data from it to generate sound control.

Final performance

recording_4-14.01_18_03_08.Still001

recording_4-14.01_36_41_23.Still008 recording_4-14.02_01_46_14.Still011

 

Touch is not fundamentally about technology. Nor is it an attempt to define a new genre of art practice. It is about what we have been researching and exploring over the course of the semester which is called “the virtual embrace”. It is about experience. You will only know what it means after you experience it. The questions at the start of the project: What is “touch” in the third space?  How does it feel to “touch” without physically touching? How do our digital representations in the third space connect to our corporeal bodies during the “touch”? How has the “virtual embrace” transformed the way in which we engage in social media and digital communications? Maybe only six of us have an answer for ourselves and these answers don’t have to be the same. 

1aaaaaaa

Final Project: Project Update #4

Last week I worked on the wireless transmission of data between the costume (Arduino Lilypad Board) and the Max software on the laptop. After adopting the trial-and-error method, I managed to achieve a relatively smoother data flow. With both electronics and the clothes ready, the last thing to be done is to integrate everything and test the sounds/lights, and that the costume withstands duress from stretching, heat, and perspiration, etc.


 

IMG_8778

The first step toward a both functional and aesthetic costume is to sew electronic components onto the coat. My initial idea was to hide all the wires underneath the fabrics and exposing only sensors and LED lights. During the making process, I found that the exposed wires actually created unexpected aesthetic effects by adding another layer of texture on top of the black velvet material. Due to the elastic property of the wire, I was able to change its shape to construct a mesh in which LED lights were randomly yet evenly distributed.


IMG_8787
More wires and a more complicated mesh.

Another major concern was where to place the Lilypad main board. As it controls the functionality of the costume, it has very complex connections to rest of the circuit thus has lots of wires. I didn’t want it to be exposed so I made a slit near the collar and hid the slit with a fold.

IMG_8780

IMG_8784

 

IMG_8785


As a result the board was hid under the cape and would not affect the appearance of the costume. Moreover, I was able to adjust the direction to which the proximity sensor faced so it could give more accurate data.

 

And lastly, I tried dancing in the costume and it didn’t hinder most of my movements except some arm and shoulder ones because the existence of the cape and the wire mesh. I placed the power bank in my pants pocket and it worked normally. Another issue was that I had to adjust the angle of the proximity sensor from time to time as the wires connecting it tended to twist away from its original position.

 

Final Project: Project Update #3

Last week I finished most of the non-electronic aspect of the costume design.

On the performance day, I will wear a white shirt under the outer garment and probably black pants to look like a conductor of an orchestra.

IMG_8775


This week I focused more on codings especially the radio transmission of data used to generate and control sound within a MAX/MSP environment. We switched from bluetooth wireless to radio wireless (as shown in the picture below) as bluetooth had some connection problem with Mac causing the data transmission to be unstable.

nrf24L01-black
The nRF24L01 is a highly integrated, ultra low power (ULP) 2Mbps RF transceiver IC for the 2.4GHz ISM (Industrial, Scientific and Medical) band.

Basically there are two nRF24L01 transceivers with one as the transmitter sending out the data and the other one receiving the data. The transmitter will be connected to Lilypad which is sewn onto the costume. The receiver will be connected to Randall’s Mac and Max software will be extracting data from it to generate sound control.

Following is the code I have developed under the guidance of Naga. It is for both receiver and transmitter. Just change the value of the variable “role” to either “sender” or “receiver” when programming respective boards.

Probably you have noticed the big chunks of “if-else” clauses. They were written to ensure a gradual change of the parameter. As the proximity sensor sometimes gave us very sudden changes of the data, which in turn caused Max software unable to perceive and process it.

/* THIS PROGRAM IS SENDER AND RECEIVER FOR RADIO COMMUNICATION

SENDER HAS THE SENSOR CONNECTED
RECEIVER IS CONNECTED TO LAPTOP

*/

#include <SPI.h>
#include “nRF24L01.h”
#include “RF24.h”
#include “printf.h”

RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

typedef enum { SENDER=1, RECEIVER} role_e;
const char* role_name[] = { “invalid”, “SENDER”, “RECEIVER”};

role_e role = SENDER;

int sensor_pin = A0;
int recv_values[3];
int sensor_values[3];
int ack_values[3];
int ar_size = 3;
uint8_t tmp;
uint8_t cnt;
bool read_status = false;
bool write_status = false;
int current_val ;
int previous_val;
int new_distance;
int old_distance;
int diff_distance;
int distance;

//LED section
int led = 8; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by

void setup()
{

pinMode(sensor_pin, INPUT);
// declare pin 8 to be an output:
pinMode(led, OUTPUT);
Serial.begin(57600);
printf_begin();
Serial.println(role_name[role]);

radio.begin();
radio.setRetries(15,15);
radio.setPayloadSize(sizeof(int)*ar_size);

if(role == SENDER)
{
radio.openWritingPipe(pipes[0]);
radio.openReadingPipe(1,pipes[1]);
}
if(role == RECEIVER)
{
radio.openWritingPipe(pipes[1]);
radio.openReadingPipe(1,pipes[0]);
}
radio.startListening();
radio.printDetails();
delay(20);

old_distance = analogRead(sensor_pin);
}

void loop()
{

if(role == SENDER)
{
radio.stopListening();
unsigned long time = millis();
//printf(“Now sending %lu…”,time);

new_distance = analogRead(sensor_pin);
diff_distance = new_distance – old_distance;

printf(“%d %d %d”, new_distance, old_distance, diff_distance);

if (diff_distance >=10){ //sudden change in data
//make sudden changes smooth
distance = old_distance;
printf(“%d”,distance);
//for (int counter = 0; counter < diff_distance; counter++) {
distance = distance + int(diff_distance/4);
if (distance <= 12) {
distance = 1;
} else if (distance <= 14){
distance = 2;
} else if (distance <= 16){
distance = 3;
} else if (distance <= 18 ){
distance = 4;
} else if (distance <= 20 ){
distance = 5;
} else if (distance <= 22 ){
distance = 6;
} else if (distance <= 24){
distance = 7;
} else if (distance <= 26){
distance = 8;
} else if (distance <= 28){
distance = 9;
} else if (distance <= 30){
distance = 10;
} else if (distance <= 32){
distance = 11;
} else if (distance <= 34){
distance = 12;
} else if (distance <= 36){
distance = 13;
} else if (distance <= 38 ){
distance = 14;
} else if (distance <= 40){
distance = 15;
} else if (distance <= 42){
distance = 16;
} else if (distance <= 44){
distance = 17;
} else if (distance <= 46){
distance = 18;
} else if (distance <= 48){
distance = 19;
} else if (distance <= 50){
distance = 20;
} else if (distance <= 52){
distance = 21;
} else if (distance <= 54 ){
distance = 22;
} else if (distance <= 56){
distance = 23;
} else if (distance <= 58){
distance = 24;
} else if (distance <= 60){
distance = 25;
} else if (distance <= 62){
distance = 26;
} else if (distance <= 64){
distance = 27;
} else if (distance <= 66){
distance = 28;
} else if (distance <= 68){
distance = 29;
} else if (distance <= 70 ){
distance = 30;
} else if (distance <= 72){
distance = 31;
} else if (distance <= 74){
distance = 32;
} else if (distance <= 76){
distance = 33;
} else if (distance <= 78){
distance = 34;
} else if (distance <= 80){
distance = 35;
} else if (distance <= 82){
distance = 36;
} else if (distance <= 84){
distance = 37;
} else if (distance <= 86 ){
distance = 38;
} else if (distance <= 88){
distance = 39;
} else if (distance <= 90){
distance = 40;
} else if (distance <= 92){
distance = 41;
} else if (distance <= 94){
distance = 42;
} else if (distance <= 96){
distance = 43;
} else if (distance <= 98){
distance = 44;
} else if (distance <= 100){
distance = 45;
} else if (distance <= 102){
distance = 46;
} else if (distance <= 104){
distance =47;
} else if (distance <= 106){
distance = 48;
} else if (distance <= 108 ){
distance = 49;
} else if (distance <= 110){
distance = 50;
}else if (distance <= 112){
distance = 51;
}else if (distance <= 114){
distance = 52;
}else if (distance <= 116){
distance = 53;
}else if (distance <= 118){
distance = 54;
}else if (distance <= 120 ){
distance = 55;
} else if (distance <= 122 ){
distance = 56;
} else if (distance <= 124){
distance = 57;
} else if (distance <= 126){
distance = 58;
} else if (distance <= 128){
distance = 59;
} else if (distance <= 130){
distance = 60;
} else if (distance <= 132){
distance = 61;
} else if (distance <= 134){
distance = 62;
} else if (distance <= 136){
distance = 63;
} else if (distance <= 138 ){
distance = 64;
} else if (distance <= 140){
distance = 65;
} else if (distance <= 142){
distance = 66;
} else if (distance <= 144){
distance = 67;
} else if (distance <= 146){
distance = 68;
} else if (distance <= 148){
distance = 69;
} else if (distance <= 150){
distance = 70;
} else if (distance <= 152){
distance = 71;
} else if (distance <= 154 ){
distance = 72;
} else if (distance <= 156){
distance = 73;
} else if (distance <= 158){
distance = 74;
} else if (distance <= 160){
distance = 75;
} else if (distance <= 162){
distance = 76;
} else if (distance <= 164){
distance = 77;
} else if (distance <= 166){
distance = 78;
} else if (distance <= 168){
distance = 79;
} else if (distance <= 170 ){
distance = 80;
} else if (distance <= 172){
distance = 81;
} else if (distance <= 174){
distance = 82;
} else if (distance <= 176){
distance = 83;
} else if (distance <= 178){
distance = 84;
} else if (distance <= 180){
distance = 85;
} else if (distance <= 182){
distance = 86;
} else if (distance <= 184){
distance = 87;
} else if (distance <= 186 ){
distance = 88;
} else if (distance <= 188){
distance = 89;
} else if (distance <= 190){
distance = 90;
} else if (distance <= 192){
distance = 91;
} else if (distance <= 194){
distance = 92;
} else if (distance <= 196){
distance = 93;
} else if (distance <= 198){
distance = 94;
} else if (distance <= 200){
distance = 95;
} else if (distance <= 202){
distance = 96;
} else if (distance <= 204){
distance = 97;
} else if (distance <= 206){
distance = 98;
} else if (distance <= 208){
distance = 99;
} else if (distance <= 210){
distance = 100;
} else if (distance <= 212){
distance = 101;
} else if (distance <= 214){
distance = 102;
} else if (distance <= 216){
distance = 103;
} else if (distance <= 218){
distance = 104;
} else if (distance <= 220){
distance = 105;
} else if (distance <= 222){
distance = 106;
} else if (distance <= 224){
distance = 107;
} else if (distance <= 226){
distance = 108;
} else if (distance <= 228){
distance = 109;
} else if (distance <= 230){
distance = 110;
} else if (distance <= 232){
distance = 111;
} else if (distance <= 234){
distance = 112;
} else if (distance <= 236){
distance = 113;
} else if (distance <= 238){
distance = 114;
} else if (distance <= 240){
distance = 115;
} else if (distance <= 242){
distance = 116;
} else if (distance <= 244){
distance = 117;
} else if (distance <= 246){
distance = 118;
} else if (distance <= 248){
distance = 119;
} else if (distance <= 250){
distance = 120;
} else if (distance <= 252){
distance = 121;
} else if (distance <= 254){
distance = 122;
} else if (distance <= 256){
distance = 123;
} else if (distance <= 258){
distance = 124;
} else if (distance <= 260){
distance = 125;
} else if (distance <= 262){
distance = 126;
} else if (distance <= 264){
distance = 127;
} else if (distance <= 266){
distance = 128;
} else if (distance <= 268){
distance = 129;
} else if (distance <= 500){
distance = 130;
}

// } //for loop end

old_distance = new_distance;

}else if (diff_distance <= -10) {
//make sudden changes smooth
distance = old_distance;

//for (int counter = 0; counter > diff_distance; counter–) {
distance = distance – int(diff_distance/4);
if (distance <= 12) {
distance = 1;
} else if (distance <= 14){
distance = 2;
} else if (distance <= 16){
distance = 3;
} else if (distance <= 18 ){
distance = 4;
} else if (distance <= 20 ){
distance = 5;
} else if (distance <= 22 ){
distance = 6;
} else if (distance <= 24){
distance = 7;
} else if (distance <= 26){
distance = 8;
} else if (distance <= 28){
distance = 9;
} else if (distance <= 30){
distance = 10;
} else if (distance <= 32){
distance = 11;
} else if (distance <= 34){
distance = 12;
} else if (distance <= 36){
distance = 13;
} else if (distance <= 38 ){
distance = 14;
} else if (distance <= 40){
distance = 15;
} else if (distance <= 42){
distance = 16;
} else if (distance <= 44){
distance = 17;
} else if (distance <= 46){
distance = 18;
} else if (distance <= 48){
distance = 19;
} else if (distance <= 50){
distance = 20;
} else if (distance <= 52){
distance = 21;
} else if (distance <= 54 ){
distance = 22;
} else if (distance <= 56){
distance = 23;
} else if (distance <= 58){
distance = 24;
} else if (distance <= 60){
distance = 25;
} else if (distance <= 62){
distance = 26;
} else if (distance <= 64){
distance = 27;
} else if (distance <= 66){
distance = 28;
} else if (distance <= 68){
distance = 29;
} else if (distance <= 70 ){
distance = 30;
} else if (distance <= 72){
distance = 31;
} else if (distance <= 74){
distance = 32;
} else if (distance <= 76){
distance = 33;
} else if (distance <= 78){
distance = 34;
} else if (distance <= 80){
distance = 35;
} else if (distance <= 82){
distance = 36;
} else if (distance <= 84){
distance = 37;
} else if (distance <= 86 ){
distance = 38;
} else if (distance <= 88){
distance = 39;
} else if (distance <= 90){
distance = 40;
} else if (distance <= 92){
distance = 41;
} else if (distance <= 94){
distance = 42;
} else if (distance <= 96){
distance = 43;
} else if (distance <= 98){
distance = 44;
} else if (distance <= 100){
distance = 45;
} else if (distance <= 102){
distance = 46;
} else if (distance <= 104){
distance =47;
} else if (distance <= 106){
distance = 48;
} else if (distance <= 108 ){
distance = 49;
} else if (distance <= 110){
distance = 50;
}else if (distance <= 112){
distance = 51;
}else if (distance <= 114){
distance = 52;
}else if (distance <= 116){
distance = 53;
}else if (distance <= 118){
distance = 54;
}else if (distance <= 120 ){
distance = 55;
} else if (distance <= 122 ){
distance = 56;
} else if (distance <= 124){
distance = 57;
} else if (distance <= 126){
distance = 58;
} else if (distance <= 128){
distance = 59;
} else if (distance <= 130){
distance = 60;
} else if (distance <= 132){
distance = 61;
} else if (distance <= 134){
distance = 62;
} else if (distance <= 136){
distance = 63;
} else if (distance <= 138 ){
distance = 64;
} else if (distance <= 140){
distance = 65;
} else if (distance <= 142){
distance = 66;
} else if (distance <= 144){
distance = 67;
} else if (distance <= 146){
distance = 68;
} else if (distance <= 148){
distance = 69;
} else if (distance <= 150){
distance = 70;
} else if (distance <= 152){
distance = 71;
} else if (distance <= 154 ){
distance = 72;
} else if (distance <= 156){
distance = 73;
} else if (distance <= 158){
distance = 74;
} else if (distance <= 160){
distance = 75;
} else if (distance <= 162){
distance = 76;
} else if (distance <= 164){
distance = 77;
} else if (distance <= 166){
distance = 78;
} else if (distance <= 168){
distance = 79;
} else if (distance <= 170 ){
distance = 80;
} else if (distance <= 172){
distance = 81;
} else if (distance <= 174){
distance = 82;
} else if (distance <= 176){
distance = 83;
} else if (distance <= 178){
distance = 84;
} else if (distance <= 180){
distance = 85;
} else if (distance <= 182){
distance = 86;
} else if (distance <= 184){
distance = 87;
} else if (distance <= 186 ){
distance = 88;
} else if (distance <= 188){
distance = 89;
} else if (distance <= 190){
distance = 90;
} else if (distance <= 192){
distance = 91;
} else if (distance <= 194){
distance = 92;
} else if (distance <= 196){
distance = 93;
} else if (distance <= 198){
distance = 94;
} else if (distance <= 200){
distance = 95;
} else if (distance <= 202){
distance = 96;
} else if (distance <= 204){
distance = 97;
} else if (distance <= 206){
distance = 98;
} else if (distance <= 208){
distance = 99;
} else if (distance <= 210){
distance = 100;
} else if (distance <= 212){
distance = 101;
} else if (distance <= 214){
distance = 102;
} else if (distance <= 216){
distance = 103;
} else if (distance <= 218){
distance = 104;
} else if (distance <= 220){
distance = 105;
} else if (distance <= 222){
distance = 106;
} else if (distance <= 224){
distance = 107;
} else if (distance <= 226){
distance = 108;
} else if (distance <= 228){
distance = 109;
} else if (distance <= 230){
distance = 110;
} else if (distance <= 232){
distance = 111;
} else if (distance <= 234){
distance = 112;
} else if (distance <= 236){
distance = 113;
} else if (distance <= 238){
distance = 114;
} else if (distance <= 240){
distance = 115;
} else if (distance <= 242){
distance = 116;
} else if (distance <= 244){
distance = 117;
} else if (distance <= 246){
distance = 118;
} else if (distance <= 248){
distance = 119;
} else if (distance <= 250){
distance = 120;
} else if (distance <= 252){
distance = 121;
} else if (distance <= 254){
distance = 122;
} else if (distance <= 256){
distance = 123;
} else if (distance <= 258){
distance = 124;
} else if (distance <= 260){
distance = 125;
} else if (distance <= 262){
distance = 126;
} else if (distance <= 264){
distance = 127;
} else if (distance <= 266){
distance = 128;
} else if (distance <= 268){
distance = 129;
} else if (distance <= 500){
distance = 130;
}

// } //end of for loop

old_distance = new_distance;

} else { //smooth change in data
distance = new_distance;
old_distance = new_distance;
if (distance <= 12) {
distance = 1;
} else if (distance <= 14){
distance = 2;
} else if (distance <= 16){
distance = 3;
} else if (distance <= 18 ){
distance = 4;
} else if (distance <= 20 ){
distance = 5;
} else if (distance <= 22 ){
distance = 6;
} else if (distance <= 24){
distance = 7;
} else if (distance <= 26){
distance = 8;
} else if (distance <= 28){
distance = 9;
} else if (distance <= 30){
distance = 10;
} else if (distance <= 32){
distance = 11;
} else if (distance <= 34){
distance = 12;
} else if (distance <= 36){
distance = 13;
} else if (distance <= 38 ){
distance = 14;
} else if (distance <= 40){
distance = 15;
} else if (distance <= 42){
distance = 16;
} else if (distance <= 44){
distance = 17;
} else if (distance <= 46){
distance = 18;
} else if (distance <= 48){
distance = 19;
} else if (distance <= 50){
distance = 20;
} else if (distance <= 52){
distance = 21;
} else if (distance <= 54 ){
distance = 22;
} else if (distance <= 56){
distance = 23;
} else if (distance <= 58){
distance = 24;
} else if (distance <= 60){
distance = 25;
} else if (distance <= 62){
distance = 26;
} else if (distance <= 64){
distance = 27;
} else if (distance <= 66){
distance = 28;
} else if (distance <= 68){
distance = 29;
} else if (distance <= 70 ){
distance = 30;
} else if (distance <= 72){
distance = 31;
} else if (distance <= 74){
distance = 32;
} else if (distance <= 76){
distance = 33;
} else if (distance <= 78){
distance = 34;
} else if (distance <= 80){
distance = 35;
} else if (distance <= 82){
distance = 36;
} else if (distance <= 84){
distance = 37;
} else if (distance <= 86 ){
distance = 38;
} else if (distance <= 88){
distance = 39;
} else if (distance <= 90){
distance = 40;
} else if (distance <= 92){
distance = 41;
} else if (distance <= 94){
distance = 42;
} else if (distance <= 96){
distance = 43;
} else if (distance <= 98){
distance = 44;
} else if (distance <= 100){
distance = 45;
} else if (distance <= 102){
distance = 46;
} else if (distance <= 104){
distance =47;
} else if (distance <= 106){
distance = 48;
} else if (distance <= 108 ){
distance = 49;
} else if (distance <= 110){
distance = 50;
}else if (distance <= 112){
distance = 51;
}else if (distance <= 114){
distance = 52;
}else if (distance <= 116){
distance = 53;
}else if (distance <= 118){
distance = 54;
}else if (distance <= 120 ){
distance = 55;
} else if (distance <= 122 ){
distance = 56;
} else if (distance <= 124){
distance = 57;
} else if (distance <= 126){
distance = 58;
} else if (distance <= 128){
distance = 59;
} else if (distance <= 130){
distance = 60;
} else if (distance <= 132){
distance = 61;
} else if (distance <= 134){
distance = 62;
} else if (distance <= 136){
distance = 63;
} else if (distance <= 138 ){
distance = 64;
} else if (distance <= 140){
distance = 65;
} else if (distance <= 142){
distance = 66;
} else if (distance <= 144){
distance = 67;
} else if (distance <= 146){
distance = 68;
} else if (distance <= 148){
distance = 69;
} else if (distance <= 150){
distance = 70;
} else if (distance <= 152){
distance = 71;
} else if (distance <= 154 ){
distance = 72;
} else if (distance <= 156){
distance = 73;
} else if (distance <= 158){
distance = 74;
} else if (distance <= 160){
distance = 75;
} else if (distance <= 162){
distance = 76;
} else if (distance <= 164){
distance = 77;
} else if (distance <= 166){
distance = 78;
} else if (distance <= 168){
distance = 79;
} else if (distance <= 170 ){
distance = 80;
} else if (distance <= 172){
distance = 81;
} else if (distance <= 174){
distance = 82;
} else if (distance <= 176){
distance = 83;
} else if (distance <= 178){
distance = 84;
} else if (distance <= 180){
distance = 85;
} else if (distance <= 182){
distance = 86;
} else if (distance <= 184){
distance = 87;
} else if (distance <= 186 ){
distance = 88;
} else if (distance <= 188){
distance = 89;
} else if (distance <= 190){
distance = 90;
} else if (distance <= 192){
distance = 91;
} else if (distance <= 194){
distance = 92;
} else if (distance <= 196){
distance = 93;
} else if (distance <= 198){
distance = 94;
} else if (distance <= 200){
distance = 95;
} else if (distance <= 202){
distance = 96;
} else if (distance <= 204){
distance = 97;
} else if (distance <= 206){
distance = 98;
} else if (distance <= 208){
distance = 99;
} else if (distance <= 210){
distance = 100;
} else if (distance <= 212){
distance = 101;
} else if (distance <= 214){
distance = 102;
} else if (distance <= 216){
distance = 103;
} else if (distance <= 218){
distance = 104;
} else if (distance <= 220){
distance = 105;
} else if (distance <= 222){
distance = 106;
} else if (distance <= 224){
distance = 107;
} else if (distance <= 226){
distance = 108;
} else if (distance <= 228){
distance = 109;
} else if (distance <= 230){
distance = 110;
} else if (distance <= 232){
distance = 111;
} else if (distance <= 234){
distance = 112;
} else if (distance <= 236){
distance = 113;
} else if (distance <= 238){
distance = 114;
} else if (distance <= 240){
distance = 115;
} else if (distance <= 242){
distance = 116;
} else if (distance <= 244){
distance = 117;
} else if (distance <= 246){
distance = 118;
} else if (distance <= 248){
distance = 119;
} else if (distance <= 250){
distance = 120;
} else if (distance <= 252){
distance = 121;
} else if (distance <= 254){
distance = 122;
} else if (distance <= 256){
distance = 123;
} else if (distance <= 258){
distance = 124;
} else if (distance <= 260){
distance = 125;
} else if (distance <= 262){
distance = 126;
} else if (distance <= 264){
distance = 127;
} else if (distance <= 266){
distance = 128;
} else if (distance <= 268){
distance = 129;
} else if (distance <= 500){
distance = 130;
}

} //end of else

sensor_values[0] = distance;
sensor_values[1] = (cnt)%10;
sensor_values[2] = (cnt)%100;
delay(20);
write_status = radio.write( &sensor_values[0], sizeof(int)* ar_size);
printf(“SENSOR VAL %d %d %d \n”, sensor_values[0], sensor_values[1], sensor_values[2]);
if( ! write_status)
{
Serial.println(“ERROR WRITE”);
}

radio.startListening();// Wait here until we get a response, or timeout (250ms)
unsigned long started_waiting_at = millis();
bool timeout = false;
while ( ! radio.available() && ! timeout )
if (millis() – started_waiting_at > 200 )
timeout = true;

brightness = distance * 2;
if (brightness > 255){
brightness = 255;
}
brightness = 255 – brightness;

// set the brightness of pin 8:
analogWrite(led, brightness);

}

if(role == RECEIVER)
{
if(radio.available())
{
read_status = false;
while(!read_status)
{
read_status = radio.read(&recv_values[0], sizeof(int) * ar_size );
delay(100);
}
//printf(“RECEIVED %d %d %d\n”, recv_values[0], recv_values[1], recv_values[2]);
radio.stopListening();
//radio.write( &recv_values[0], sizeof(int)*ar_size );

//Serial.println(recv_values[0]);
Serial.print(recv_values[0], DEC);
Serial.print(” “);
Serial.print(recv_values[1], DEC);
Serial.print(” “);
Serial.print(recv_values[2], DEC);
Serial.print(” “);
Serial.println(“\r”);
radio.startListening();
}
}
}

 

Besides the implementation of wireless transmission, the code contains the control of LED lights in response to the proximity with objects in the environment.

 

Final Project: Project Update #2

Last week I researched on the various electronic components that might be needed for the costume and tested some basic functional circuits off the fabrics( as things will get a tad complicated after the electronics are sewed onto the fabrics). Based on the concept of my costume, which is to explore the relationship between live music improvisation and dance choreography/freestyle, I explored:

  • Light-sensitive LED circuit (as the decoration on the costume as well as an indication of its interactivity with the environment)
  • Circuit with a buzzer as the output (which can generate sounds of different pitches)
  • Wireless transmission of data to the laptop using bluetooth (which is critical in the process of creating sounds from movements)
  • Motion-sensitive circuit with LED and buzzer (as a simulation of the functionality of the costume)

victorian_era_inverness_capeI mainly worked on the artistic aspect of the costume design in the week followed. I was inspired by the Victorian Era men’s fashion. Most often associated with Sherlock Holmes, the inverness cape is a weatherproof outer coat which was often worn in 1880s London. The inverness cape is a sleeveless outer garment, which was typically worn in 2 styles: a more formal version where the topcoat is finished with short lapels and the capes are set back behind them, as well as a less formal “coachman’s cape” which had no lapels.

I decided to go with the less formal “coachman’s cape” as the lapels might hinder head movements and it would be easier for me as an inexperienced fashion designer to start with.

 

 

IMG_8773

 

 

I found this black velvet material in one of the clothing outlet in Chinatown.

 

 

 

IMG_8605

 

I showed Galina the design and she taught
me the sewing basics including how to use the sewing machine to make different stitches.

 

 

 

IMG_8604

 

I finished the rest of the sewing on my own. It was a fulfilling learning experience.

 

 

 

 

This is the completed costume!

unspecified

 

Explores emerging forms of experimental performance and audio-visual art that engage live media via the Internet.