<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yunbaby</id>
	<title>Medien Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yunbaby"/>
	<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/Special:Contributions/Yunbaby"/>
	<updated>2026-09-13T15:05:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87014</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87014"/>
		<updated>2016-09-13T08:29:48Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Demonstration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Processing:&lt;br /&gt;
Main Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import netP5.*;&lt;br /&gt;
import oscP5.*;&lt;br /&gt;
import processing.video.*;&lt;br /&gt;
&lt;br /&gt;
OscP5 osc;&lt;br /&gt;
NetAddress remote;&lt;br /&gt;
Movie myMovie;&lt;br /&gt;
&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;&lt;br /&gt;
boolean debug = true;&lt;br /&gt;
&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&lt;br /&gt;
String skeleton1 = &amp;quot;LiQianqian&amp;quot;;&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;&lt;br /&gt;
String bone2 = &amp;quot;LeftHand&amp;quot;;&lt;br /&gt;
String bone3 = &amp;quot;RightHand&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int depth;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);&lt;br /&gt;
  fullScreen(P3D);&lt;br /&gt;
  &lt;br /&gt;
  sphere1 = new Sphere(1);&lt;br /&gt;
 &lt;br /&gt;
  depth = width;&lt;br /&gt;
  &lt;br /&gt;
  osc = new OscP5(this, localport);&lt;br /&gt;
  remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
  setPort(localport);&lt;br /&gt;
&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone2);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone3);&lt;br /&gt;
  &lt;br /&gt;
  refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
  subscribeBone(skeleton1, bone2);&lt;br /&gt;
  subscribeBone(skeleton1, bone3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  sphere1.draw();&lt;br /&gt;
&lt;br /&gt;
  if (frameCount % 10 == 0) {&lt;br /&gt;
    refreshSubscriptions();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setPort(int port) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/configure/port&amp;quot;);&lt;br /&gt;
  msg.add(port); &lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);&lt;br /&gt;
  msg.add(50.0);&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sphere Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
class Sphere {&lt;br /&gt;
  float x, y, z;&lt;br /&gt;
  float x1, y1, z1;&lt;br /&gt;
  float x2, y2, z2;&lt;br /&gt;
  float x3, y3, x4, y4;&lt;br /&gt;
  &lt;br /&gt;
  float a, b, cc;&lt;br /&gt;
  float a1, b1, cc1;&lt;br /&gt;
  float a2, b2, cc2;&lt;br /&gt;
  float a3, b3, a4, b4;&lt;br /&gt;
  &lt;br /&gt;
  float d, e, f;&lt;br /&gt;
  float d1, e1, f1;&lt;br /&gt;
  float d2, e2, f2;&lt;br /&gt;
  float d3, e3, d4, e4;&lt;br /&gt;
  &lt;br /&gt;
  float speedChange, speedChange1, VideoSpeed;&lt;br /&gt;
  int play;&lt;br /&gt;
  color c;&lt;br /&gt;
  &lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int newFrame = 0;&lt;br /&gt;
    &lt;br /&gt;
  Sphere( color c) {&lt;br /&gt;
    this.c = c;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);&lt;br /&gt;
    &lt;br /&gt;
    if(speedChange &amp;gt; 0.3 &amp;amp;&amp;amp; getFrame() &amp;lt; 599){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(getFrame() &amp;lt; 0) myMovie.play();&lt;br /&gt;
    &lt;br /&gt;
    float newSpeed = map(speedChange1, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
    &lt;br /&gt;
    fill(255);&lt;br /&gt;
    x4 = abs(x2 - x3);&lt;br /&gt;
    y4 = abs(y2 - y3);&lt;br /&gt;
    speedChange = abs(x4 - y4);&lt;br /&gt;
    println(speedChange);&lt;br /&gt;
    text(&amp;quot;Root Speed: &amp;quot; + nfc(speedChange, 2) + &amp;quot;X&amp;quot;, 10, 30);&lt;br /&gt;
    x3 = x2;&lt;br /&gt;
    y3 = y2;&lt;br /&gt;
    &lt;br /&gt;
    speedChange1 = dist(a, b, cc, d, e, f);&lt;br /&gt;
    text(&amp;quot;Hand Distance: &amp;quot; + nfc(speedChange1, 2), 10, 50);   &lt;br /&gt;
    &lt;br /&gt;
    VideoSpeed = speedChange1*play;&lt;br /&gt;
    text(&amp;quot;VideoSpeed: &amp;quot; + nfc(VideoSpeed, 2) + &amp;quot;X&amp;quot;, 10, 70); &lt;br /&gt;
    &lt;br /&gt;
    text(getFrame() + &amp;quot; / &amp;quot; + (getLength() - 1), 10, 90);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void updateRoot(float x, float y, float z) {&lt;br /&gt;
    this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    x2 = abs(x - x1);&lt;br /&gt;
    y2 = abs(y - y1);&lt;br /&gt;
    z2 = abs(z - z1);&lt;br /&gt;
    &lt;br /&gt;
    x1 = this.x;&lt;br /&gt;
    y1 = this.y;&lt;br /&gt;
    z1 = this.z;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateLeftHand(float a, float b, float cc) {&lt;br /&gt;
    this.a = map(a, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.b = map(b, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.cc = map(cc, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    a2 = abs(a - a1);&lt;br /&gt;
    b2 = abs(b - b1);&lt;br /&gt;
    cc2 = abs(cc - cc1);&lt;br /&gt;
    &lt;br /&gt;
    a1 = this.a;&lt;br /&gt;
    b1 = this.b;&lt;br /&gt;
    cc1 = this.cc;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateRightHand(float d, float e, float f) {&lt;br /&gt;
    this.d = map(d, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.e = map(e, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.f = map(f, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    d2 = abs(d - d1);&lt;br /&gt;
    e2 = abs(e - e1);&lt;br /&gt;
    f2 = abs(f - f1);&lt;br /&gt;
    &lt;br /&gt;
    d1 = this.d;&lt;br /&gt;
    e1 = this.e;&lt;br /&gt;
    f1 = this.f;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demonstration&#039;&#039;&#039; ==&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=Ns1VKddXT_w|1000|left|Wool&#039;s World|frame}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
On the 16th of July, Wool&#039;s World exhibited in Digital Lab. We played the PPT about the introduction of Wool&#039;s World on the video wall when we arranged the exhibition. The red object handles and all the plumb lines with different length hung from the top. The mystic box covered by black wool felt with knitted woolen lines set in the center of the platform. It&#039;s glad that all the participants had a good experience when they tried the object handles, especially felt the vibration of the handles. For sure, if we can do more interactive handles, it will be more interested for lots of people. &amp;lt;br&amp;gt;&lt;br /&gt;
It was a pity that the Captury didn&#039;t work well that day because of the update. We could only show the screen interaction part with play back video of the Captury and the live capture video shot before to explain to every participant. If it work, the interactivity will definitely be more meaningful and interesting.&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87013</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87013"/>
		<updated>2016-09-13T08:29:09Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Processing:&lt;br /&gt;
Main Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import netP5.*;&lt;br /&gt;
import oscP5.*;&lt;br /&gt;
import processing.video.*;&lt;br /&gt;
&lt;br /&gt;
OscP5 osc;&lt;br /&gt;
NetAddress remote;&lt;br /&gt;
Movie myMovie;&lt;br /&gt;
&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;&lt;br /&gt;
boolean debug = true;&lt;br /&gt;
&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&lt;br /&gt;
String skeleton1 = &amp;quot;LiQianqian&amp;quot;;&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;&lt;br /&gt;
String bone2 = &amp;quot;LeftHand&amp;quot;;&lt;br /&gt;
String bone3 = &amp;quot;RightHand&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int depth;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);&lt;br /&gt;
  fullScreen(P3D);&lt;br /&gt;
  &lt;br /&gt;
  sphere1 = new Sphere(1);&lt;br /&gt;
 &lt;br /&gt;
  depth = width;&lt;br /&gt;
  &lt;br /&gt;
  osc = new OscP5(this, localport);&lt;br /&gt;
  remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
  setPort(localport);&lt;br /&gt;
&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone2);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone3);&lt;br /&gt;
  &lt;br /&gt;
  refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
  subscribeBone(skeleton1, bone2);&lt;br /&gt;
  subscribeBone(skeleton1, bone3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  sphere1.draw();&lt;br /&gt;
&lt;br /&gt;
  if (frameCount % 10 == 0) {&lt;br /&gt;
    refreshSubscriptions();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setPort(int port) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/configure/port&amp;quot;);&lt;br /&gt;
  msg.add(port); &lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);&lt;br /&gt;
  msg.add(50.0);&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sphere Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
class Sphere {&lt;br /&gt;
  float x, y, z;&lt;br /&gt;
  float x1, y1, z1;&lt;br /&gt;
  float x2, y2, z2;&lt;br /&gt;
  float x3, y3, x4, y4;&lt;br /&gt;
  &lt;br /&gt;
  float a, b, cc;&lt;br /&gt;
  float a1, b1, cc1;&lt;br /&gt;
  float a2, b2, cc2;&lt;br /&gt;
  float a3, b3, a4, b4;&lt;br /&gt;
  &lt;br /&gt;
  float d, e, f;&lt;br /&gt;
  float d1, e1, f1;&lt;br /&gt;
  float d2, e2, f2;&lt;br /&gt;
  float d3, e3, d4, e4;&lt;br /&gt;
  &lt;br /&gt;
  float speedChange, speedChange1, VideoSpeed;&lt;br /&gt;
  int play;&lt;br /&gt;
  color c;&lt;br /&gt;
  &lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int newFrame = 0;&lt;br /&gt;
    &lt;br /&gt;
  Sphere( color c) {&lt;br /&gt;
    this.c = c;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);&lt;br /&gt;
    &lt;br /&gt;
    if(speedChange &amp;gt; 0.3 &amp;amp;&amp;amp; getFrame() &amp;lt; 599){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(getFrame() &amp;lt; 0) myMovie.play();&lt;br /&gt;
    &lt;br /&gt;
    float newSpeed = map(speedChange1, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
    &lt;br /&gt;
    fill(255);&lt;br /&gt;
    x4 = abs(x2 - x3);&lt;br /&gt;
    y4 = abs(y2 - y3);&lt;br /&gt;
    speedChange = abs(x4 - y4);&lt;br /&gt;
    println(speedChange);&lt;br /&gt;
    text(&amp;quot;Root Speed: &amp;quot; + nfc(speedChange, 2) + &amp;quot;X&amp;quot;, 10, 30);&lt;br /&gt;
    x3 = x2;&lt;br /&gt;
    y3 = y2;&lt;br /&gt;
    &lt;br /&gt;
    speedChange1 = dist(a, b, cc, d, e, f);&lt;br /&gt;
    text(&amp;quot;Hand Distance: &amp;quot; + nfc(speedChange1, 2), 10, 50);   &lt;br /&gt;
    &lt;br /&gt;
    VideoSpeed = speedChange1*play;&lt;br /&gt;
    text(&amp;quot;VideoSpeed: &amp;quot; + nfc(VideoSpeed, 2) + &amp;quot;X&amp;quot;, 10, 70); &lt;br /&gt;
    &lt;br /&gt;
    text(getFrame() + &amp;quot; / &amp;quot; + (getLength() - 1), 10, 90);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void updateRoot(float x, float y, float z) {&lt;br /&gt;
    this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    x2 = abs(x - x1);&lt;br /&gt;
    y2 = abs(y - y1);&lt;br /&gt;
    z2 = abs(z - z1);&lt;br /&gt;
    &lt;br /&gt;
    x1 = this.x;&lt;br /&gt;
    y1 = this.y;&lt;br /&gt;
    z1 = this.z;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateLeftHand(float a, float b, float cc) {&lt;br /&gt;
    this.a = map(a, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.b = map(b, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.cc = map(cc, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    a2 = abs(a - a1);&lt;br /&gt;
    b2 = abs(b - b1);&lt;br /&gt;
    cc2 = abs(cc - cc1);&lt;br /&gt;
    &lt;br /&gt;
    a1 = this.a;&lt;br /&gt;
    b1 = this.b;&lt;br /&gt;
    cc1 = this.cc;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateRightHand(float d, float e, float f) {&lt;br /&gt;
    this.d = map(d, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.e = map(e, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.f = map(f, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    d2 = abs(d - d1);&lt;br /&gt;
    e2 = abs(e - e1);&lt;br /&gt;
    f2 = abs(f - f1);&lt;br /&gt;
    &lt;br /&gt;
    d1 = this.d;&lt;br /&gt;
    e1 = this.e;&lt;br /&gt;
    f1 = this.f;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demonstration&#039;&#039;&#039; ==&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=Ns1VKddXT_w|1000|right|Wool&#039;s World|frame}}&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
On the 16th of July, Wool&#039;s World exhibited in Digital Lab. We played the PPT about the introduction of Wool&#039;s World on the video wall when we arranged the exhibition. The red object handles and all the plumb lines with different length hung from the top. The mystic box covered by black wool felt with knitted woolen lines set in the center of the platform. It&#039;s glad that all the participants had a good experience when they tried the object handles, especially felt the vibration of the handles. For sure, if we can do more interactive handles, it will be more interested for lots of people. &amp;lt;br&amp;gt;&lt;br /&gt;
It was a pity that the Captury didn&#039;t work well that day because of the update. We could only show the screen interaction part with play back video of the Captury and the live capture video shot before to explain to every participant. If it work, the interactivity will definitely be more meaningful and interesting.&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87012</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87012"/>
		<updated>2016-09-13T08:25:41Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Demonstration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Processing:&lt;br /&gt;
Main Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import netP5.*;&lt;br /&gt;
import oscP5.*;&lt;br /&gt;
import processing.video.*;&lt;br /&gt;
&lt;br /&gt;
OscP5 osc;&lt;br /&gt;
NetAddress remote;&lt;br /&gt;
Movie myMovie;&lt;br /&gt;
&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;&lt;br /&gt;
boolean debug = true;&lt;br /&gt;
&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&lt;br /&gt;
String skeleton1 = &amp;quot;LiQianqian&amp;quot;;&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;&lt;br /&gt;
String bone2 = &amp;quot;LeftHand&amp;quot;;&lt;br /&gt;
String bone3 = &amp;quot;RightHand&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int depth;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);&lt;br /&gt;
  fullScreen(P3D);&lt;br /&gt;
  &lt;br /&gt;
  sphere1 = new Sphere(1);&lt;br /&gt;
 &lt;br /&gt;
  depth = width;&lt;br /&gt;
  &lt;br /&gt;
  osc = new OscP5(this, localport);&lt;br /&gt;
  remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
  setPort(localport);&lt;br /&gt;
&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone2);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone3);&lt;br /&gt;
  &lt;br /&gt;
  refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
  subscribeBone(skeleton1, bone2);&lt;br /&gt;
  subscribeBone(skeleton1, bone3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  sphere1.draw();&lt;br /&gt;
&lt;br /&gt;
  if (frameCount % 10 == 0) {&lt;br /&gt;
    refreshSubscriptions();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setPort(int port) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/configure/port&amp;quot;);&lt;br /&gt;
  msg.add(port); &lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);&lt;br /&gt;
  msg.add(50.0);&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sphere Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
class Sphere {&lt;br /&gt;
  float x, y, z;&lt;br /&gt;
  float x1, y1, z1;&lt;br /&gt;
  float x2, y2, z2;&lt;br /&gt;
  float x3, y3, x4, y4;&lt;br /&gt;
  &lt;br /&gt;
  float a, b, cc;&lt;br /&gt;
  float a1, b1, cc1;&lt;br /&gt;
  float a2, b2, cc2;&lt;br /&gt;
  float a3, b3, a4, b4;&lt;br /&gt;
  &lt;br /&gt;
  float d, e, f;&lt;br /&gt;
  float d1, e1, f1;&lt;br /&gt;
  float d2, e2, f2;&lt;br /&gt;
  float d3, e3, d4, e4;&lt;br /&gt;
  &lt;br /&gt;
  float speedChange, speedChange1, VideoSpeed;&lt;br /&gt;
  int play;&lt;br /&gt;
  color c;&lt;br /&gt;
  &lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int newFrame = 0;&lt;br /&gt;
    &lt;br /&gt;
  Sphere( color c) {&lt;br /&gt;
    this.c = c;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);&lt;br /&gt;
    &lt;br /&gt;
    if(speedChange &amp;gt; 0.3 &amp;amp;&amp;amp; getFrame() &amp;lt; 599){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(getFrame() &amp;lt; 0) myMovie.play();&lt;br /&gt;
    &lt;br /&gt;
    float newSpeed = map(speedChange1, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
    &lt;br /&gt;
    fill(255);&lt;br /&gt;
    x4 = abs(x2 - x3);&lt;br /&gt;
    y4 = abs(y2 - y3);&lt;br /&gt;
    speedChange = abs(x4 - y4);&lt;br /&gt;
    println(speedChange);&lt;br /&gt;
    text(&amp;quot;Root Speed: &amp;quot; + nfc(speedChange, 2) + &amp;quot;X&amp;quot;, 10, 30);&lt;br /&gt;
    x3 = x2;&lt;br /&gt;
    y3 = y2;&lt;br /&gt;
    &lt;br /&gt;
    speedChange1 = dist(a, b, cc, d, e, f);&lt;br /&gt;
    text(&amp;quot;Hand Distance: &amp;quot; + nfc(speedChange1, 2), 10, 50);   &lt;br /&gt;
    &lt;br /&gt;
    VideoSpeed = speedChange1*play;&lt;br /&gt;
    text(&amp;quot;VideoSpeed: &amp;quot; + nfc(VideoSpeed, 2) + &amp;quot;X&amp;quot;, 10, 70); &lt;br /&gt;
    &lt;br /&gt;
    text(getFrame() + &amp;quot; / &amp;quot; + (getLength() - 1), 10, 90);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void updateRoot(float x, float y, float z) {&lt;br /&gt;
    this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    x2 = abs(x - x1);&lt;br /&gt;
    y2 = abs(y - y1);&lt;br /&gt;
    z2 = abs(z - z1);&lt;br /&gt;
    &lt;br /&gt;
    x1 = this.x;&lt;br /&gt;
    y1 = this.y;&lt;br /&gt;
    z1 = this.z;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateLeftHand(float a, float b, float cc) {&lt;br /&gt;
    this.a = map(a, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.b = map(b, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.cc = map(cc, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    a2 = abs(a - a1);&lt;br /&gt;
    b2 = abs(b - b1);&lt;br /&gt;
    cc2 = abs(cc - cc1);&lt;br /&gt;
    &lt;br /&gt;
    a1 = this.a;&lt;br /&gt;
    b1 = this.b;&lt;br /&gt;
    cc1 = this.cc;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateRightHand(float d, float e, float f) {&lt;br /&gt;
    this.d = map(d, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.e = map(e, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.f = map(f, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    d2 = abs(d - d1);&lt;br /&gt;
    e2 = abs(e - e1);&lt;br /&gt;
    f2 = abs(f - f1);&lt;br /&gt;
    &lt;br /&gt;
    d1 = this.d;&lt;br /&gt;
    e1 = this.e;&lt;br /&gt;
    f1 = this.f;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demonstration&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=Ns1VKddXT_w|1000|right|Wool&#039;s World|frame}}&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
On the 16th of July, Wool&#039;s World exhibited in Digital Lab. We played the PPT about the introduction of Wool&#039;s World on the video wall when we arranged the exhibition. The red object handles and all the plumb lines with different length hung from the top. The mystic box covered by black wool felt with knitted woolen lines set in the center of the platform. It&#039;s glad that all the participants had a good experience when they tried the object handles, especially felt the vibration of the handles. For sure, if we can do more interactive handles, it will be more interested for lots of people. &amp;lt;br&amp;gt;&lt;br /&gt;
It was a pity that the Captury didn&#039;t work well that day because of the update. We could only show the screen interaction part with play back video of the Captury and the live capture video shot before to explain to every participant. If it work, the interactivity will definitely be more meaningful and interesting.&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87011</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87011"/>
		<updated>2016-09-13T07:16:28Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Demonstration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Processing:&lt;br /&gt;
Main Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import netP5.*;&lt;br /&gt;
import oscP5.*;&lt;br /&gt;
import processing.video.*;&lt;br /&gt;
&lt;br /&gt;
OscP5 osc;&lt;br /&gt;
NetAddress remote;&lt;br /&gt;
Movie myMovie;&lt;br /&gt;
&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;&lt;br /&gt;
boolean debug = true;&lt;br /&gt;
&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&lt;br /&gt;
String skeleton1 = &amp;quot;LiQianqian&amp;quot;;&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;&lt;br /&gt;
String bone2 = &amp;quot;LeftHand&amp;quot;;&lt;br /&gt;
String bone3 = &amp;quot;RightHand&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int depth;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);&lt;br /&gt;
  fullScreen(P3D);&lt;br /&gt;
  &lt;br /&gt;
  sphere1 = new Sphere(1);&lt;br /&gt;
 &lt;br /&gt;
  depth = width;&lt;br /&gt;
  &lt;br /&gt;
  osc = new OscP5(this, localport);&lt;br /&gt;
  remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
  setPort(localport);&lt;br /&gt;
&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone2);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone3);&lt;br /&gt;
  &lt;br /&gt;
  refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
  subscribeBone(skeleton1, bone2);&lt;br /&gt;
  subscribeBone(skeleton1, bone3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  sphere1.draw();&lt;br /&gt;
&lt;br /&gt;
  if (frameCount % 10 == 0) {&lt;br /&gt;
    refreshSubscriptions();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setPort(int port) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/configure/port&amp;quot;);&lt;br /&gt;
  msg.add(port); &lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);&lt;br /&gt;
  msg.add(50.0);&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sphere Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
class Sphere {&lt;br /&gt;
  float x, y, z;&lt;br /&gt;
  float x1, y1, z1;&lt;br /&gt;
  float x2, y2, z2;&lt;br /&gt;
  float x3, y3, x4, y4;&lt;br /&gt;
  &lt;br /&gt;
  float a, b, cc;&lt;br /&gt;
  float a1, b1, cc1;&lt;br /&gt;
  float a2, b2, cc2;&lt;br /&gt;
  float a3, b3, a4, b4;&lt;br /&gt;
  &lt;br /&gt;
  float d, e, f;&lt;br /&gt;
  float d1, e1, f1;&lt;br /&gt;
  float d2, e2, f2;&lt;br /&gt;
  float d3, e3, d4, e4;&lt;br /&gt;
  &lt;br /&gt;
  float speedChange, speedChange1, VideoSpeed;&lt;br /&gt;
  int play;&lt;br /&gt;
  color c;&lt;br /&gt;
  &lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int newFrame = 0;&lt;br /&gt;
    &lt;br /&gt;
  Sphere( color c) {&lt;br /&gt;
    this.c = c;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);&lt;br /&gt;
    &lt;br /&gt;
    if(speedChange &amp;gt; 0.3 &amp;amp;&amp;amp; getFrame() &amp;lt; 599){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(getFrame() &amp;lt; 0) myMovie.play();&lt;br /&gt;
    &lt;br /&gt;
    float newSpeed = map(speedChange1, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
    &lt;br /&gt;
    fill(255);&lt;br /&gt;
    x4 = abs(x2 - x3);&lt;br /&gt;
    y4 = abs(y2 - y3);&lt;br /&gt;
    speedChange = abs(x4 - y4);&lt;br /&gt;
    println(speedChange);&lt;br /&gt;
    text(&amp;quot;Root Speed: &amp;quot; + nfc(speedChange, 2) + &amp;quot;X&amp;quot;, 10, 30);&lt;br /&gt;
    x3 = x2;&lt;br /&gt;
    y3 = y2;&lt;br /&gt;
    &lt;br /&gt;
    speedChange1 = dist(a, b, cc, d, e, f);&lt;br /&gt;
    text(&amp;quot;Hand Distance: &amp;quot; + nfc(speedChange1, 2), 10, 50);   &lt;br /&gt;
    &lt;br /&gt;
    VideoSpeed = speedChange1*play;&lt;br /&gt;
    text(&amp;quot;VideoSpeed: &amp;quot; + nfc(VideoSpeed, 2) + &amp;quot;X&amp;quot;, 10, 70); &lt;br /&gt;
    &lt;br /&gt;
    text(getFrame() + &amp;quot; / &amp;quot; + (getLength() - 1), 10, 90);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void updateRoot(float x, float y, float z) {&lt;br /&gt;
    this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    x2 = abs(x - x1);&lt;br /&gt;
    y2 = abs(y - y1);&lt;br /&gt;
    z2 = abs(z - z1);&lt;br /&gt;
    &lt;br /&gt;
    x1 = this.x;&lt;br /&gt;
    y1 = this.y;&lt;br /&gt;
    z1 = this.z;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateLeftHand(float a, float b, float cc) {&lt;br /&gt;
    this.a = map(a, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.b = map(b, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.cc = map(cc, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    a2 = abs(a - a1);&lt;br /&gt;
    b2 = abs(b - b1);&lt;br /&gt;
    cc2 = abs(cc - cc1);&lt;br /&gt;
    &lt;br /&gt;
    a1 = this.a;&lt;br /&gt;
    b1 = this.b;&lt;br /&gt;
    cc1 = this.cc;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateRightHand(float d, float e, float f) {&lt;br /&gt;
    this.d = map(d, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.e = map(e, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.f = map(f, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    d2 = abs(d - d1);&lt;br /&gt;
    e2 = abs(e - e1);&lt;br /&gt;
    f2 = abs(f - f1);&lt;br /&gt;
    &lt;br /&gt;
    d1 = this.d;&lt;br /&gt;
    e1 = this.e;&lt;br /&gt;
    f1 = this.f;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demonstration&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=pSsYTj9kCHE|1000|right|Wool&#039;s World|frame}}&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
On the 16th of July, Wool&#039;s World exhibited in Digital Lab. We played the PPT about the introduction of Wool&#039;s World on the video wall when we arranged the exhibition. The red object handles and all the plumb lines with different length hung from the top. The mystic box covered by black wool felt with knitted woolen lines set in the center of the platform. It&#039;s glad that all the participants had a good experience when they tried the object handles, especially felt the vibration of the handles. For sure, if we can do more interactive handles, it will be more interested for lots of people. &amp;lt;br&amp;gt;&lt;br /&gt;
It was a pity that the Captury didn&#039;t work well that day because of the update. We could only show the screen interaction part with play back video of the Captury and the live capture video shot before to explain to every participant. If it work, the interactivity will definitely be more meaningful and interesting.&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Digital_Puppetry_Lab/Group_A_Midsummer_Night%27s_Dream&amp;diff=87010</id>
		<title>GMU:Digital Puppetry Lab/Group A Midsummer Night&#039;s Dream</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Digital_Puppetry_Lab/Group_A_Midsummer_Night%27s_Dream&amp;diff=87010"/>
		<updated>2016-09-13T07:13:01Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Demonstration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Midsummer Night&#039;s Dream==&lt;br /&gt;
&lt;br /&gt;
Group work by &#039;&#039;&#039;Liu Yun&#039;&#039;&#039; &amp;amp; &#039;&#039;&#039;Li Qianqian&#039;&#039;&#039; &amp;amp; &#039;&#039;&#039;Fan Xiangzhen&#039;&#039;&#039; &amp;amp; &#039;&#039;&#039;Wu Junyuan&#039;&#039;&#039; &amp;amp; &#039;&#039;&#039;Tan Yuxin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Have you ever looked at the moon with the breeze at night? Have you ever heard the harmony of the birds and frogs? Do you remember the wonderful summer nights? &lt;br /&gt;
We just want to give you a midsummer night&#039;s dream.&lt;br /&gt;
This project is based on processing with the face detection and data collection, and then send the data message into the MaxMsp. We divide four regions in MaxMsp. The various sounds you hear will change according to your different position. In addition, in the unity we tried to establish a vivid picture of summer. Imagine that grass is moving with the wind in a beautiful moonlight accompanied by bursts of sounds of insects.  Let`s enjoy a summer dream together.&lt;br /&gt;
&lt;br /&gt;
== Diagram ==&lt;br /&gt;
&lt;br /&gt;
[[File:FLowDiagram.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Demonstration ==&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=CroYcuakmjM|1000|left|A Midsummer Night&#039;s Dream|frame}}&lt;br /&gt;
[https://www.youtube.com/watch?v=CroYcuakmjM &#039;&#039;&#039;Demonstration Viedo&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
[[File:Demo1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Demo2.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
&lt;br /&gt;
[[File:FaceDetectionOutput.jpg|left]]&lt;br /&gt;
&#039;&#039;&#039;Data Input:&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Getting data (the position X and Y of the center of face and the size of face) by face detection &amp;lt;br&amp;gt;&lt;br /&gt;
· Sending data from processing to Max/Msp by OSC &amp;lt;br&amp;gt;&lt;br /&gt;
· Another processing file sending the same data to Unity by using different port &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProcessingToMaxMsp.jpg|left]]&lt;br /&gt;
&#039;&#039;&#039;Data Transfer:&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Receiving data from processing by OSC &amp;lt;br&amp;gt;&lt;br /&gt;
· Only keeping number from the message by using &#039;zl slice&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Dividing number into three usable data by using &#039;unpack&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Sending data separately from Yun&#039;s laptop to Xiangzhen&#039;s laptop in Max/Msp by OSC &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SoundEffect&amp;amp;BG.jpg|left]]&lt;br /&gt;
&#039;&#039;&#039;Audio Output:&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Receiving data from Yun&#039;s Max/Msp by OSC  &amp;lt;br&amp;gt;&lt;br /&gt;
· Control volumes of 4 corner&#039;s sound effects by building different functions with data received &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ProcessingToUnity.jpg|left]]&lt;br /&gt;
&#039;&#039;&#039;Data Using in Unity:&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Receiving data from processing by OSC &amp;lt;br&amp;gt;&lt;br /&gt;
· Dealing with function call between js and C# file&amp;lt;br&amp;gt;&lt;br /&gt;
· Using &#039;x&#039; and &#039;y&#039; data sent by Yun&#039;s laptop to control the quaternion of the camera&amp;lt;br&amp;gt;&lt;br /&gt;
· Connect TUIO app with Laptop &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TuioPad.jpg|left]][[File:ScreenTouch.jpg]]&lt;br /&gt;
&#039;&#039;&#039;Data Getting by phone:&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Using the app TuioPad to get screen touch data by phone &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:UnityTerrain.jpg|left]]&lt;br /&gt;
&#039;&#039;&#039;Terrain Creation and Particular System in Unity:&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Build a terrain -- tree (5 styles) --build grass --adjust parameters &amp;lt;br&amp;gt;&lt;br /&gt;
· Create skybox, light environment, windzone &amp;lt;br&amp;gt;&lt;br /&gt;
· Create glow warm and falling leaves particle system &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:scripts_1.jpg|left]]&lt;br /&gt;
&#039;&#039;Scripts_1:&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Refer to unity asset &amp;quot;firstcharactorcontroller&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
· Variable definitions &amp;lt;br&amp;gt;&lt;br /&gt;
· Initializing the transform of camera  &amp;lt;br&amp;gt;&lt;br /&gt;
· Getting data from osc &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:scripts_3.jpg|left]]&lt;br /&gt;
&#039;&#039;Scripts_2:&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
· Set the range of data &amp;lt;br&amp;gt;&lt;br /&gt;
· Using function of Quaternion to change rotation of the camera&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=87009</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=87009"/>
		<updated>2016-09-13T07:11:22Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Demonstration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
This video is about a 3D Chinese Knot tied from loose to tight. The 3D animation is made by 3DS MAX.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
[[Image:CapturyAxis.png|thumb|left|Coordinate Axis of the Performance Platform]]&lt;br /&gt;
[[Image:CapturyAxis2.png|thumb|left|Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Using position x as the condition. If user stand in the center of the platform, the speed will be slowest. The farther away from the center user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand at the side close to the Video Wall, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(x &amp;lt; -50 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(abs(y)/10, 0, 150, 0*play, 2*play);  //abs() to have absolute position value&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File ==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;br /&gt;
&lt;br /&gt;
== Demonstration ==&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=dufgDEGYieY|1000|left|Demonstration Video of Controlling the Video in Processing with Captury|frame}}&lt;br /&gt;
[https://www.youtube.com/watch?v=dufgDEGYieY Demonstration Video of Controlling the Video in Processing with Captury]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87008</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87008"/>
		<updated>2016-09-13T07:07:36Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Demo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Processing:&lt;br /&gt;
Main Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import netP5.*;&lt;br /&gt;
import oscP5.*;&lt;br /&gt;
import processing.video.*;&lt;br /&gt;
&lt;br /&gt;
OscP5 osc;&lt;br /&gt;
NetAddress remote;&lt;br /&gt;
Movie myMovie;&lt;br /&gt;
&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;&lt;br /&gt;
boolean debug = true;&lt;br /&gt;
&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&lt;br /&gt;
String skeleton1 = &amp;quot;LiQianqian&amp;quot;;&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;&lt;br /&gt;
String bone2 = &amp;quot;LeftHand&amp;quot;;&lt;br /&gt;
String bone3 = &amp;quot;RightHand&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int depth;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);&lt;br /&gt;
  fullScreen(P3D);&lt;br /&gt;
  &lt;br /&gt;
  sphere1 = new Sphere(1);&lt;br /&gt;
 &lt;br /&gt;
  depth = width;&lt;br /&gt;
  &lt;br /&gt;
  osc = new OscP5(this, localport);&lt;br /&gt;
  remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
  setPort(localport);&lt;br /&gt;
&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone2);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone3);&lt;br /&gt;
  &lt;br /&gt;
  refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
  subscribeBone(skeleton1, bone2);&lt;br /&gt;
  subscribeBone(skeleton1, bone3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  sphere1.draw();&lt;br /&gt;
&lt;br /&gt;
  if (frameCount % 10 == 0) {&lt;br /&gt;
    refreshSubscriptions();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setPort(int port) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/configure/port&amp;quot;);&lt;br /&gt;
  msg.add(port); &lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);&lt;br /&gt;
  msg.add(50.0);&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sphere Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
class Sphere {&lt;br /&gt;
  float x, y, z;&lt;br /&gt;
  float x1, y1, z1;&lt;br /&gt;
  float x2, y2, z2;&lt;br /&gt;
  float x3, y3, x4, y4;&lt;br /&gt;
  &lt;br /&gt;
  float a, b, cc;&lt;br /&gt;
  float a1, b1, cc1;&lt;br /&gt;
  float a2, b2, cc2;&lt;br /&gt;
  float a3, b3, a4, b4;&lt;br /&gt;
  &lt;br /&gt;
  float d, e, f;&lt;br /&gt;
  float d1, e1, f1;&lt;br /&gt;
  float d2, e2, f2;&lt;br /&gt;
  float d3, e3, d4, e4;&lt;br /&gt;
  &lt;br /&gt;
  float speedChange, speedChange1, VideoSpeed;&lt;br /&gt;
  int play;&lt;br /&gt;
  color c;&lt;br /&gt;
  &lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int newFrame = 0;&lt;br /&gt;
    &lt;br /&gt;
  Sphere( color c) {&lt;br /&gt;
    this.c = c;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);&lt;br /&gt;
    &lt;br /&gt;
    if(speedChange &amp;gt; 0.3 &amp;amp;&amp;amp; getFrame() &amp;lt; 599){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(getFrame() &amp;lt; 0) myMovie.play();&lt;br /&gt;
    &lt;br /&gt;
    float newSpeed = map(speedChange1, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
    &lt;br /&gt;
    fill(255);&lt;br /&gt;
    x4 = abs(x2 - x3);&lt;br /&gt;
    y4 = abs(y2 - y3);&lt;br /&gt;
    speedChange = abs(x4 - y4);&lt;br /&gt;
    println(speedChange);&lt;br /&gt;
    text(&amp;quot;Root Speed: &amp;quot; + nfc(speedChange, 2) + &amp;quot;X&amp;quot;, 10, 30);&lt;br /&gt;
    x3 = x2;&lt;br /&gt;
    y3 = y2;&lt;br /&gt;
    &lt;br /&gt;
    speedChange1 = dist(a, b, cc, d, e, f);&lt;br /&gt;
    text(&amp;quot;Hand Distance: &amp;quot; + nfc(speedChange1, 2), 10, 50);   &lt;br /&gt;
    &lt;br /&gt;
    VideoSpeed = speedChange1*play;&lt;br /&gt;
    text(&amp;quot;VideoSpeed: &amp;quot; + nfc(VideoSpeed, 2) + &amp;quot;X&amp;quot;, 10, 70); &lt;br /&gt;
    &lt;br /&gt;
    text(getFrame() + &amp;quot; / &amp;quot; + (getLength() - 1), 10, 90);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void updateRoot(float x, float y, float z) {&lt;br /&gt;
    this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    x2 = abs(x - x1);&lt;br /&gt;
    y2 = abs(y - y1);&lt;br /&gt;
    z2 = abs(z - z1);&lt;br /&gt;
    &lt;br /&gt;
    x1 = this.x;&lt;br /&gt;
    y1 = this.y;&lt;br /&gt;
    z1 = this.z;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateLeftHand(float a, float b, float cc) {&lt;br /&gt;
    this.a = map(a, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.b = map(b, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.cc = map(cc, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    a2 = abs(a - a1);&lt;br /&gt;
    b2 = abs(b - b1);&lt;br /&gt;
    cc2 = abs(cc - cc1);&lt;br /&gt;
    &lt;br /&gt;
    a1 = this.a;&lt;br /&gt;
    b1 = this.b;&lt;br /&gt;
    cc1 = this.cc;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateRightHand(float d, float e, float f) {&lt;br /&gt;
    this.d = map(d, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.e = map(e, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.f = map(f, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    d2 = abs(d - d1);&lt;br /&gt;
    e2 = abs(e - e1);&lt;br /&gt;
    f2 = abs(f - f1);&lt;br /&gt;
    &lt;br /&gt;
    d1 = this.d;&lt;br /&gt;
    e1 = this.e;&lt;br /&gt;
    f1 = this.f;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demonstration&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=pSsYTj9kCHE|1000|right|Chinese Knot Interaction|frame}}&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
On the 16th of July, Wool&#039;s World exhibited in Digital Lab. We played the PPT about the introduction of Wool&#039;s World on the video wall when we arranged the exhibition. The red object handles and all the plumb lines with different length hung from the top. The mystic box covered by black wool felt with knitted woolen lines set in the center of the platform. It&#039;s glad that all the participants had a good experience when they tried the object handles, especially felt the vibration of the handles. For sure, if we can do more interactive handles, it will be more interested for lots of people. &amp;lt;br&amp;gt;&lt;br /&gt;
It was a pity that the Captury didn&#039;t work well that day because of the update. We could only show the screen interaction part with play back video of the Captury and the live capture video shot before to explain to every participant. If it work, the interactivity will definitely be more meaningful and interesting.&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87007</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87007"/>
		<updated>2016-09-13T04:14:08Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Processing:&lt;br /&gt;
Main Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import netP5.*;&lt;br /&gt;
import oscP5.*;&lt;br /&gt;
import processing.video.*;&lt;br /&gt;
&lt;br /&gt;
OscP5 osc;&lt;br /&gt;
NetAddress remote;&lt;br /&gt;
Movie myMovie;&lt;br /&gt;
&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;&lt;br /&gt;
boolean debug = true;&lt;br /&gt;
&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&lt;br /&gt;
String skeleton1 = &amp;quot;LiQianqian&amp;quot;;&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;&lt;br /&gt;
String bone2 = &amp;quot;LeftHand&amp;quot;;&lt;br /&gt;
String bone3 = &amp;quot;RightHand&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int depth;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);&lt;br /&gt;
  fullScreen(P3D);&lt;br /&gt;
  &lt;br /&gt;
  sphere1 = new Sphere(1);&lt;br /&gt;
 &lt;br /&gt;
  depth = width;&lt;br /&gt;
  &lt;br /&gt;
  osc = new OscP5(this, localport);&lt;br /&gt;
  remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
  setPort(localport);&lt;br /&gt;
&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone2);&lt;br /&gt;
  plugBone(sphere1, skeleton1, bone3);&lt;br /&gt;
  &lt;br /&gt;
  refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
  subscribeBone(skeleton1, bone2);&lt;br /&gt;
  subscribeBone(skeleton1, bone3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
  sphere1.draw();&lt;br /&gt;
&lt;br /&gt;
  if (frameCount % 10 == 0) {&lt;br /&gt;
    refreshSubscriptions();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setPort(int port) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/configure/port&amp;quot;);&lt;br /&gt;
  msg.add(port); &lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);&lt;br /&gt;
  msg.add(50.0);&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sphere Tab:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
class Sphere {&lt;br /&gt;
  float x, y, z;&lt;br /&gt;
  float x1, y1, z1;&lt;br /&gt;
  float x2, y2, z2;&lt;br /&gt;
  float x3, y3, x4, y4;&lt;br /&gt;
  &lt;br /&gt;
  float a, b, cc;&lt;br /&gt;
  float a1, b1, cc1;&lt;br /&gt;
  float a2, b2, cc2;&lt;br /&gt;
  float a3, b3, a4, b4;&lt;br /&gt;
  &lt;br /&gt;
  float d, e, f;&lt;br /&gt;
  float d1, e1, f1;&lt;br /&gt;
  float d2, e2, f2;&lt;br /&gt;
  float d3, e3, d4, e4;&lt;br /&gt;
  &lt;br /&gt;
  float speedChange, speedChange1, VideoSpeed;&lt;br /&gt;
  int play;&lt;br /&gt;
  color c;&lt;br /&gt;
  &lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int newFrame = 0;&lt;br /&gt;
    &lt;br /&gt;
  Sphere( color c) {&lt;br /&gt;
    this.c = c;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);&lt;br /&gt;
    &lt;br /&gt;
    if(speedChange &amp;gt; 0.3 &amp;amp;&amp;amp; getFrame() &amp;lt; 599){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(getFrame() &amp;lt; 0) myMovie.play();&lt;br /&gt;
    &lt;br /&gt;
    float newSpeed = map(speedChange1, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
    &lt;br /&gt;
    fill(255);&lt;br /&gt;
    x4 = abs(x2 - x3);&lt;br /&gt;
    y4 = abs(y2 - y3);&lt;br /&gt;
    speedChange = abs(x4 - y4);&lt;br /&gt;
    println(speedChange);&lt;br /&gt;
    text(&amp;quot;Root Speed: &amp;quot; + nfc(speedChange, 2) + &amp;quot;X&amp;quot;, 10, 30);&lt;br /&gt;
    x3 = x2;&lt;br /&gt;
    y3 = y2;&lt;br /&gt;
    &lt;br /&gt;
    speedChange1 = dist(a, b, cc, d, e, f);&lt;br /&gt;
    text(&amp;quot;Hand Distance: &amp;quot; + nfc(speedChange1, 2), 10, 50);   &lt;br /&gt;
    &lt;br /&gt;
    VideoSpeed = speedChange1*play;&lt;br /&gt;
    text(&amp;quot;VideoSpeed: &amp;quot; + nfc(VideoSpeed, 2) + &amp;quot;X&amp;quot;, 10, 70); &lt;br /&gt;
    &lt;br /&gt;
    text(getFrame() + &amp;quot; / &amp;quot; + (getLength() - 1), 10, 90);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void updateRoot(float x, float y, float z) {&lt;br /&gt;
    this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    x2 = abs(x - x1);&lt;br /&gt;
    y2 = abs(y - y1);&lt;br /&gt;
    z2 = abs(z - z1);&lt;br /&gt;
    &lt;br /&gt;
    x1 = this.x;&lt;br /&gt;
    y1 = this.y;&lt;br /&gt;
    z1 = this.z;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateLeftHand(float a, float b, float cc) {&lt;br /&gt;
    this.a = map(a, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.b = map(b, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.cc = map(cc, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    a2 = abs(a - a1);&lt;br /&gt;
    b2 = abs(b - b1);&lt;br /&gt;
    cc2 = abs(cc - cc1);&lt;br /&gt;
    &lt;br /&gt;
    a1 = this.a;&lt;br /&gt;
    b1 = this.b;&lt;br /&gt;
    cc1 = this.cc;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  public void updateRightHand(float d, float e, float f) {&lt;br /&gt;
    this.d = map(d, 0, 100, -width/2, width/2);&lt;br /&gt;
    this.e = map(e, -100, 100, -height/2, height/2);&lt;br /&gt;
    this.f = map(f, 0, 100, 0, depth);&lt;br /&gt;
    &lt;br /&gt;
    d2 = abs(d - d1);&lt;br /&gt;
    e2 = abs(e - e1);&lt;br /&gt;
    f2 = abs(f - f1);&lt;br /&gt;
    &lt;br /&gt;
    d1 = this.d;&lt;br /&gt;
    e1 = this.e;&lt;br /&gt;
    f1 = this.f;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
On the 16th of July, Wool&#039;s World exhibited in Digital Lab. We played the PPT about the introduction of Wool&#039;s World on the video wall when we arranged the exhibition. The red object handles and all the plumb lines with different length hung from the top. The mystic box covered by black wool felt with knitted woolen lines set in the center of the platform. It&#039;s glad that all the participants had a good experience when they tried the object handles, especially felt the vibration of the handles. For sure, if we can do more interactive handles, it will be more interested for lots of people. &amp;lt;br&amp;gt;&lt;br /&gt;
It was a pity that the Captury didn&#039;t work well that day because of the update. We could only show the screen interaction part with play back video of the Captury and the live capture video shot before to explain to every participant. If it work, the interactivity will definitely be more meaningful and interesting.&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87006</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87006"/>
		<updated>2016-09-13T04:04:10Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
On the 16th of July, Wool&#039;s World exhibited in Digital Lab. We played the PPT about the introduction of Wool&#039;s World on the video wall when we arranged the exhibition. The red object handles and all the plumb lines with different length hung from the top. The mystic box covered by black wool felt with knitted woolen lines set in the center of the platform. It&#039;s glad that all the participants had a good experience when they tried the object handles, especially felt the vibration of the handles. For sure, if we can do more interactive handles, it will be more interested for lots of people. &amp;lt;br&amp;gt;&lt;br /&gt;
It was a pity that the Captury didn&#039;t work well that day because of the update. We could only show the screen interaction part with play back video of the Captury and the live capture video shot before to explain to every participant. If it work, the interactivity will definitely be more meaningful and interesting.&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87005</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87005"/>
		<updated>2016-09-13T03:56:38Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
On the 16th of July, Wool&#039;s World exhibited in Digital Lab. We played the PPT about the introduction of Wool&#039;s World on the video wall when we arranged the exhibition. The red object handles and all the plumb lines with different length hung from the top. The mystic box covered by black wool felt with knitted woolen lines set in the center of the platform. It&#039;s glad that all the participants had a good experience when they tried the object handles, especially felt the vibration of the handles. For sure, if we can do more interactive handles, it will be more interested for lots of people. &lt;br /&gt;
It was a pity that the Captury didn&#039;t work well that day because of the update. We just showed the screen interaction part with play back video and the live capture video shot before and then explained it to every participant.&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87004</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87004"/>
		<updated>2016-09-13T03:38:27Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
On the 16th of July, Wool&#039;s World exhibited in Digital Lab. We played the PPT about the introduction of Wool&#039;s World on the video wall. The red object handles and all the plumb lines with different length hung from the top. The mystic box covered by black wool felt with knitted woolen lines set in the center of the platform.&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87003</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87003"/>
		<updated>2016-09-13T02:03:14Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|1000px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|450px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|right|450px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|450px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|right|450px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87002</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=87002"/>
		<updated>2016-09-13T02:01:39Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|300px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|300px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|left|300px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|300px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|left|300px|Summary]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary05.jpg&amp;diff=87001</id>
		<title>File:Summary05.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary05.jpg&amp;diff=87001"/>
		<updated>2016-09-13T02:01:08Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary04.jpg&amp;diff=87000</id>
		<title>File:Summary04.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary04.jpg&amp;diff=87000"/>
		<updated>2016-09-13T01:59:36Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary03.jpg&amp;diff=86995</id>
		<title>File:Summary03.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary03.jpg&amp;diff=86995"/>
		<updated>2016-09-12T04:59:09Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary02.jpg&amp;diff=86994</id>
		<title>File:Summary02.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary02.jpg&amp;diff=86994"/>
		<updated>2016-09-12T04:47:18Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary01.jpg&amp;diff=86993</id>
		<title>File:Summary01.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:Summary01.jpg&amp;diff=86993"/>
		<updated>2016-09-12T04:44:38Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86992</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86992"/>
		<updated>2016-09-12T04:40:45Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
[[File:Summary01.jpg|thumb|left|300px|Wool&#039;s World]]&lt;br /&gt;
[[File:Summary02.jpg|thumb|left|300px|Plumb Line]]&lt;br /&gt;
[[File:Summary03.jpg|thumb|left|300px|Mystic Box]]&lt;br /&gt;
[[File:Summary04.jpg|thumb|left|300px|Summary]]&lt;br /&gt;
[[File:Summary05.jpg|thumb|left|300px|Summary]]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86991</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86991"/>
		<updated>2016-09-12T04:34:20Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Summary&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86990</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86990"/>
		<updated>2016-09-12T03:28:04Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Design | Interaction with Screen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
[[File:WoolSensor.jpg|thumb|right|500px|Plumb Line with Sensors]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg|thumb|left|500px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Screen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At the beginning of the installation, we decided to replace those colorful fine lines with a 3D Chinese knot, which is designed with one line and very expressive in shape. On the other hand, a complex knot could also become a metaphor to describe a human being with complex relationships in his/her life. &lt;br /&gt;
So we would like to use a Chinese knot as a representation of user on the screen. User can control the knot with his/her movement. If user move quickly or keeping doing gestures, the knot will get very tight which means those relationships cannot be get rid of easily. If user just stay put and do nothing, the knot will get more and more loose. And during the whole interaction, the position of knot is consistent with user.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnot.jpg|thumb|left|500px|3D Chinese knot]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the process of installation, the biggest problem we met is how to stimulate the 3D Chinese knot in real-time. We have explored methods online and obtained with few proper answers. Finally we decided to use a pre-made animation of 3D Chinese knot instead of a stimulation in real-time. The speed of playing fast forward or rewind the animation is related with the changing rate of user&#039;s movement. The faster user move on, the faster the animation will be played on, vice versa.&lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotTight.jpg|thumb|left|450px|Chinese knot get tight]]&lt;br /&gt;
[[File:ChineseKnotLoose.jpg|thumb|right|450px|Chinese knot get loose]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user is captured by the tracking system in real-time, and the related data of his/her movement will be sent to the Processing which control the play of the animation we made. &lt;br /&gt;
&lt;br /&gt;
[[File:ChineseKnotDemo.jpg|thumb|left|500px|Chinese knot demo]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaction with Objects&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We finally decided to use the photocell sensor and vibration motor to build a plumb line. Each line is wrapped with red wools and tied as a handle. The sensor and motor are connected to the Arduino Uno which is running on a laptop.&lt;br /&gt;
&lt;br /&gt;
Here is the code running in Arduino:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int photocellPin = 0;     // the cell and 10K pulldown are connected to A0&lt;br /&gt;
int photocellPin1 = 1;     // the cell and 10K pulldown are connected to A1&lt;br /&gt;
int photocellReading, photocellReading1;     // the analog reading from the sensor divider&lt;br /&gt;
&lt;br /&gt;
void setup() {     // We&#039;ll send debugging information via the Serial monitor&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(3, OUTPUT);   &lt;br /&gt;
  pinMode(5, OUTPUT);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop(void) {&lt;br /&gt;
  photocellReading = analogRead(photocellPin); &lt;br /&gt;
  photocellReading1 = analogRead(photocellPin1); &lt;br /&gt;
&lt;br /&gt;
  if(photocellReading &amp;lt; 400 &amp;amp;&amp;amp; photocellReading1 &amp;lt; 400 ){&lt;br /&gt;
    digitalWrite(3, HIGH);&lt;br /&gt;
    digitalWrite(5, HIGH);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    digitalWrite(3, LOW);&lt;br /&gt;
    digitalWrite(5, LOW);&lt;br /&gt;
    delay(100);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  Serial.print(&amp;quot;Analog reading1 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading);     // the raw analog reading1&lt;br /&gt;
  Serial.print(&amp;quot;Analog reading2 = &amp;quot;);&lt;br /&gt;
  Serial.println(photocellReading1);     // the raw analog reading2&lt;br /&gt;
  Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86939</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86939"/>
		<updated>2016-09-08T08:43:44Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Design | Interaction with Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
&lt;br /&gt;
=== Original Design ===&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Final Design ===&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg|thumb|left|300px|Object Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg]]&lt;br /&gt;
[[File:WoolSensor.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg]]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86938</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86938"/>
		<updated>2016-09-08T08:33:36Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Design | Interaction with Screen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
&lt;br /&gt;
=== Original Design ===&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Final Design ===&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg]]&lt;br /&gt;
[[File:WoolSensor.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86937</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86937"/>
		<updated>2016-09-08T08:27:01Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Design | Interaction with Screen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
&lt;br /&gt;
=== Original Design ===&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Various relationship in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
[[File:Mess.jpg|thumb|left|300px|Mess with all the relationships]]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg]]&lt;br /&gt;
[[File:WoolSensor.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86936</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86936"/>
		<updated>2016-09-08T08:07:33Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Design | Interaction with Screen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
&lt;br /&gt;
=== Original Design ===&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
[[File:Moving.jpg|thumb|left|300px|Mass in the society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Standing.jpg|thumb|left|300px|Keep balance in the society]]&lt;br /&gt;
[[File:Static.jpg|thumb|none|300px|Cut off from society]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
&lt;br /&gt;
[[File:Mess.jpg]]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg]]&lt;br /&gt;
[[File:WoolSensor.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86935</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86935"/>
		<updated>2016-09-08T07:33:58Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Design | Interaction with Screen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
&lt;br /&gt;
=== Original Design ===&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|none|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
&lt;br /&gt;
[[File:Moving.jpg]]&lt;br /&gt;
[[File:Standing.jpg]]&lt;br /&gt;
[[File:Static.jpg]]&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
&lt;br /&gt;
[[File:Mess.jpg]]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg]]&lt;br /&gt;
[[File:WoolSensor.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86934</id>
		<title>GMU:Human and Nonhuman Performances II SS16/Group FLL</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Human_and_Nonhuman_Performances_II_SS16/Group_FLL&amp;diff=86934"/>
		<updated>2016-09-08T07:30:26Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;WOOL&#039;S  WORLD&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Group Project by&lt;br /&gt;
&#039;&#039;&#039;Yun Liu&#039;&#039;&#039; | &#039;&#039;&#039;Xiangzhen Fan&#039;&#039;&#039; |  &#039;&#039;&#039;Qianqian Li&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Basic Idea&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
As growing in the society, people can&#039;t avoid setting up the relationships with others and the relationship will become more complex and extensive.&lt;br /&gt;
Some people become more mess when they rush to solidify the relationship, while others choose become indifferent and even no longer social with people, which make them gradually derailment with society.&lt;br /&gt;
We do not want to defined it how to deal with it is totally exactly. We turn the relations visualized and let the users to feel their relationship with others in the society, looking directly at it, make himself balance. We aim to help people to find a balance of dealing with the interpersonal relationship, try to find a way to perspective on this relationship.&lt;br /&gt;
&lt;br /&gt;
For this project, we&#039;d like to use the wool as the theme. In China, the word &#039;WOOL (毛mao线xian)&#039; will be used to describe complex relationships, because it is &#039;shear continuously, manage to return disorderly&#039;.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Screen ==&lt;br /&gt;
&lt;br /&gt;
=== Original Design ===&lt;br /&gt;
The user will see a representative image of him on the screen, many fine lines around on it. The thin lines are a kind of metaphor of the complex relationships in the society. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram_2.jpg|thumb|left|300px|Original Diagram]]&lt;br /&gt;
[[File:Lines.jpg|thumb|none|300px|Original Graphic Design]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user stood there motionless, lines will disappear slowly and weak, and the user will disappear on the end. It means that if you do not take care of interpersonal relationships, the relationship will not get clearer, only would make themselves out of touch with the community.&lt;br /&gt;
&lt;br /&gt;
[[File:Moving.jpg]]&lt;br /&gt;
[[File:Standing.jpg]]&lt;br /&gt;
[[File:Static.jpg]]&lt;br /&gt;
&lt;br /&gt;
If users try to clear the lines by doing actions quickly and aimlessly, those lines will be more and more disorderly which would turn into a mess. This shows that if you are too eager to sort it out in a rush and expand relationships, not only will make the relationship more chaotic, but also separated from the real contact with others.&lt;br /&gt;
&lt;br /&gt;
[[File:Mess.jpg]]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Design&#039;&#039;&#039; | Interaction with Objects ==&lt;br /&gt;
&lt;br /&gt;
Using different forms of wool represent various relationships in the modern society.&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectOverview.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plumb Line&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nowadays, people sometimes know each other just by coincidence. Some people feel attracted to each other, but some just pass by in your life. &lt;br /&gt;
We&#039;d like to hang many plumb woolen lines with photocell and vibration sensor in the space. If two or more than two people holding the end of the woolen line at the same time, they will feel the vibrations. It likes the meeting between each other. We also thinking about using Pulse Sensor to control the strength of the vibration, that people will feel different feedback by themselves. This also stands for different relationships, some are close and some are estranged.&lt;br /&gt;
&lt;br /&gt;
[[File:Overview2.jpg]]&lt;br /&gt;
[[File:WoolSensor.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mystic Box&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
More and more media appear in the modern society, people take the initiative to establish a wide range of contacts with others through the media. Actually，this box in our interaction design means the media. It is a collection of many different colors of wool. The user can choose a yarn and try to pull it. &lt;br /&gt;
However, there are many possibilities represent the development trends of different relationships.&lt;br /&gt;
For example, one line is pulled up, but there is no change, which similar to the result of the failed social.&lt;br /&gt;
While two lines are pulled up, and found that it was the same root rope. This implies that the two people have established a connection through the media.&lt;br /&gt;
But this connection is not stabled, there is another possibility that when you pull away from long distance or forced over, the line will be broken. It shows that interpersonal relationship should maintain a more healthy and reasonable distance，a good way could help people to make the relationship stable.&lt;br /&gt;
&lt;br /&gt;
[[File:Box.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Installation&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Demo&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Conclusion&#039;&#039;&#039; ==&lt;br /&gt;
In the design process of our work, the interactive elements set up complete connected to our theme. We hope that the user can realize the vivid state of human relationship by this work, and can control and influence it through their own movement, eventually reach the self-sustainability. After many investigations and relevant data studying, finally we found that the &amp;quot;rope&amp;quot; can be maximum physical and poetic simulate the &amp;quot;relationship&amp;quot;. Further, we developed the simple rope to the Chinese knot. Chinese knot represents a kind of harmony and good will, which is very similar to the interpersonal relationships we pursue. At the same time, based on the interaction of the screen, we increased the physical interaction part in same style. A wide variety of wools also represent the complicated interpersonal relationship, and multiplayer interaction device allows users to experience the different results of interpersonal communication directly. We hoped that we could give the users the experience of all aspects.&lt;br /&gt;
&lt;br /&gt;
However, we must admit that there are many regrets. For example, in the original design, we wanted to simulate the process of tie the knot through 3D technology and interact with users in real-time. But unfortunately, because of our technical level is very limited, the time is not abundant，we decided to use the knot animation to be controlled by user`s movement after discussion. Very fortunately, finally we display very well. The Feedback from users who played the device is also satisfactory. Overall, we achieve the expected effect.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Expectation&#039;&#039;&#039; ==&lt;br /&gt;
Art is very independent and personalized. Each user can obtain different experience in our interactive device. Therefore, when design the project, we should prepare more comprehensive investigation and analysis in the early, it can make the project more perfect. At the same time, in terms of technology, we believe it is possible that when we have higher technical ability to complete process of tie the Chinese knot through 3D technology, it will be more striking and have more artistic effect. It is worth mentioning that the Chinese elements in our work are also very unique. In the future, we hope that we can integrate a variety of different countries and regional cultural elements, which will increase more possibility in our design.&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85921</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85921"/>
		<updated>2016-07-30T16:21:33Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Demonstration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
This video is about a 3D Chinese Knot tied from loose to tight. The 3D animation is made by 3DS MAX.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
[[Image:CapturyAxis.png|thumb|left|Coordinate Axis of the Performance Platform]]&lt;br /&gt;
[[Image:CapturyAxis2.png|thumb|left|Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Using position x as the condition. If user stand in the center of the platform, the speed will be slowest. The farther away from the center user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand at the side close to the Video Wall, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(x &amp;lt; -50 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(abs(y)/10, 0, 150, 0*play, 2*play);  //abs() to have absolute position value&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File ==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;br /&gt;
&lt;br /&gt;
== Demonstration ==&lt;br /&gt;
[https://www.youtube.com/watch?v=dufgDEGYieY Demonstration Video of Controlling the Video in Processing with Captury]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85889</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85889"/>
		<updated>2016-07-30T14:35:09Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Control The Video By Processing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
This video is about a 3D Chinese Knot tied from loose to tight. The 3D animation is made by 3DS MAX.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
[[Image:CapturyAxis.png|thumb|left|Coordinate Axis of the Performance Platform]]&lt;br /&gt;
[[Image:CapturyAxis2.png|thumb|left|Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Using position x as the condition. If user stand in the center of the platform, the speed will be slowest. The farther away from the center user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand at the side close to the Video Wall, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(x &amp;lt; -50 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(abs(y)/10, 0, 150, 0*play, 2*play);  //abs() to have absolute position value&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File ==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;br /&gt;
&lt;br /&gt;
== Demonstration ==&lt;br /&gt;
[http://www.example.com Demonstration Video of Controlling the Video in Processing with Captury]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis2.png&amp;diff=85789</id>
		<title>File:CapturyAxis2.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis2.png&amp;diff=85789"/>
		<updated>2016-07-29T18:59:04Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85787</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85787"/>
		<updated>2016-07-29T18:58:50Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Control The Video By Processing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
[[Image:CapturyAxis.png|thumb|left|Coordinate Axis of the Performance Platform]]&lt;br /&gt;
[[Image:CapturyAxis2.png|thumb|left|Diagram]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Using position x as the condition. If user stand in the center of the platform, the speed will be slowest. The farther away from the center user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand at the side close to the Video Wall, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(x &amp;lt; -50 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(abs(y)/10, 0, 150, 0*play, 2*play);  //abs() to have absolute position value&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File ==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;br /&gt;
&lt;br /&gt;
== Demonstration ==&lt;br /&gt;
[http://www.example.com Demonstration Video of Controlling the Video in Processing with Captury]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85786</id>
		<title>File:CapturyAxis.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85786"/>
		<updated>2016-07-29T18:57:16Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: uploaded a new version of &amp;amp;quot;File:CapturyAxis.png&amp;amp;quot;: Reverted to version as of 00:13, 29 July 2016&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Axis related with Captury and Performance Platform.&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85782</id>
		<title>File:CapturyAxis.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85782"/>
		<updated>2016-07-29T18:48:05Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: uploaded a new version of &amp;amp;quot;File:CapturyAxis.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Axis related with Captury and Performance Platform.&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85781</id>
		<title>File:CapturyAxis.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85781"/>
		<updated>2016-07-29T18:47:08Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: uploaded a new version of &amp;amp;quot;File:CapturyAxis.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Axis related with Captury and Performance Platform.&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive_Capture.png&amp;diff=85633</id>
		<title>File:DataReceive Capture.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive_Capture.png&amp;diff=85633"/>
		<updated>2016-07-29T00:53:52Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: uploaded a new version of &amp;amp;quot;File:DataReceive Capture.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Data received in the Captury.&lt;br /&gt;
Screenshot of the Captury&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85632</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85632"/>
		<updated>2016-07-29T00:30:49Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Let&amp;#039;s Enjoy The Example File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
[[Image:CapturyAxis.png|thumb|left|Coordinate Axis of the Performance Platform]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Using position x as the condition. If user stand in the center of the platform, the speed will be slowest. The farther away from the center user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand at the side close to the Video Wall, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(x &amp;lt; -50 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(abs(y)/10, 0, 150, 0*play, 2*play);  //abs() to have absolute position value&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File ==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;br /&gt;
&lt;br /&gt;
== Demonstration ==&lt;br /&gt;
[http://www.example.com Demonstration Video of Controlling the Video in Processing with Captury]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85631</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85631"/>
		<updated>2016-07-29T00:30:37Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Demonstration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
[[Image:CapturyAxis.png|thumb|left|Coordinate Axis of the Performance Platform]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Using position x as the condition. If user stand in the center of the platform, the speed will be slowest. The farther away from the center user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand at the side close to the Video Wall, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(x &amp;lt; -50 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(abs(y)/10, 0, 150, 0*play, 2*play);  //abs() to have absolute position value&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File ==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Demonstration ==&lt;br /&gt;
[http://www.example.com Demonstration Video of Controlling the Video in Processing with Captury]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85630</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85630"/>
		<updated>2016-07-29T00:29:40Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Demonstration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
[[Image:CapturyAxis.png|thumb|left|Coordinate Axis of the Performance Platform]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Using position x as the condition. If user stand in the center of the platform, the speed will be slowest. The farther away from the center user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand at the side close to the Video Wall, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(x &amp;lt; -50 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(abs(y)/10, 0, 150, 0*play, 2*play);  //abs() to have absolute position value&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File ==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Demonstration ==&lt;br /&gt;
[http://www.example.com Controlling the Video in Processing with Captury]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85629</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85629"/>
		<updated>2016-07-29T00:29:20Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
[[Image:CapturyAxis.png|thumb|left|Coordinate Axis of the Performance Platform]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Using position x as the condition. If user stand in the center of the platform, the speed will be slowest. The farther away from the center user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand at the side close to the Video Wall, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(x &amp;lt; -50 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(abs(y)/10, 0, 150, 0*play, 2*play);  //abs() to have absolute position value&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File ==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Demonstration ==&lt;br /&gt;
[http://www.example.com link Controlling the Video in Processing with Captury]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85628</id>
		<title>File:CapturyAxis.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85628"/>
		<updated>2016-07-29T00:14:53Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Axis related with Captury and Performance Platform.&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85627</id>
		<title>File:CapturyAxis.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:CapturyAxis.png&amp;diff=85627"/>
		<updated>2016-07-29T00:13:57Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: Axis related in Captury.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Axis related in Captury.&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85626</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85626"/>
		<updated>2016-07-29T00:13:16Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
[[Image:CapturyAxis.png|thumb|left|Coordinate Axis of the Performance Platform]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
*Using position x as the condition. If user stand at the left edge, the speed will be slowest. The righter user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand close to the platform, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(y &amp;gt; 200 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if(getFrame() &amp;lt; 1) myMovie.play();&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(x, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85625</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85625"/>
		<updated>2016-07-28T23:53:13Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Control The Video By Processing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using position values to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*First thing to know is about the relationship between coordinate axis in the Captury and the Performance Platform. Here is the diagram:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Using position x as the condition. If user stand at the left edge, the speed will be slowest. The righter user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand close to the platform, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(y &amp;gt; 200 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if(getFrame() &amp;lt; 1) myMovie.play();&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(x, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85624</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85624"/>
		<updated>2016-07-28T23:47:23Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Use The Data From The Captury In Processing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LS&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using a single value (position x) to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Using position x as the condition. If user stand at the left edge, the speed will be slowest. The righter user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand close to the platform, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(y &amp;gt; 200 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if(getFrame() &amp;lt; 1) myMovie.play();&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(x, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive.png&amp;diff=85623</id>
		<title>File:DataReceive.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive.png&amp;diff=85623"/>
		<updated>2016-07-28T23:44:54Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Data received in Processing.&lt;br /&gt;
Screenshot of Processing.&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive_Capture.png&amp;diff=85622</id>
		<title>File:DataReceive Capture.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive_Capture.png&amp;diff=85622"/>
		<updated>2016-07-28T23:44:29Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: Data received in the Captury.
Screenshot of the Captury&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Data received in the Captury.&lt;br /&gt;
Screenshot of the Captury&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85621</id>
		<title>GMU:Tutorials/Networking/Controlling Processing with The Captury</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=GMU:Tutorials/Networking/Controlling_Processing_with_The_Captury&amp;diff=85621"/>
		<updated>2016-07-28T23:43:40Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Use The Data From The Captury In Processing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Processing is usually used for the electronic arts, new media art and visual design.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to have a creative work in processing with Captury, you need to receive the OSC messages from the Captury and then use the data as the variable.&amp;lt;br&amp;gt;&lt;br /&gt;
This includes OSC with Processing and an example of controlling the video in Processing with Captury.&amp;lt;br&amp;gt;&lt;br /&gt;
Follow this Step by Step tutorial for using PROCESSING to play the VIDEO with CAPTURY!&lt;br /&gt;
&lt;br /&gt;
== Tips Before Beginning ==&lt;br /&gt;
*In this tutorial, you will see how to use a &#039;&#039;&#039;single value&#039;&#039;&#039; getting from the Captury to control processing. For further processed data, referencing the tutorial by Qianqian Li: [https://www.uni-weimar.de/medien/wiki/GMU:Tutorials/Performance_Platform/Measuring_Motion_with_Processing Measuring Motion with Processing]&lt;br /&gt;
&lt;br /&gt;
*Before the coding in Processing, make sure that the following libraries have been installed: &#039;&#039;Sketch &amp;gt; Import Library &amp;gt; Add Library&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;oscP5&#039;&#039;&#039;: An Open Sound Control (OSC) implementation&lt;br /&gt;
**&#039;&#039;&#039;Video&#039;&#039;&#039;: GStreamer-based video library for Processing&lt;br /&gt;
&lt;br /&gt;
*Prepare the video with a &#039;&#039;&#039;high resolution&#039;&#039;&#039; that can be showed on the video wall well. Because the change of the play speed, the video need a &#039;&#039;&#039;high frame rate&#039;&#039;&#039; to play fluently even with low speed. Here is the information about the video used here as the example:&lt;br /&gt;
**Format: .mov (H.264 Codec)&lt;br /&gt;
**Resolution: 1920*1280 px&lt;br /&gt;
**Length: 10s&lt;br /&gt;
**Frame Rate: 60 FPS&lt;br /&gt;
**Frame: 0~599&lt;br /&gt;
&lt;br /&gt;
== Use The Data From The Captury In Processing ==&lt;br /&gt;
Data sending and receiving between the Captury and Processing over a network connection require OSC (Open Sound Control) protocol. The following is the anatomy of OSC in Processing.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Connect the Captury and Processing&#039;&#039;&#039;&lt;br /&gt;
*To build a connection between the Captury and Processing,  you need to define port number. This could basically any number, and using a 4- or 5-digit number to stay out of the range of most common ports.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;18&amp;quot;&amp;gt;&lt;br /&gt;
int localport = 12000;&lt;br /&gt;
int remoteport = 1065;  //Port number the Captury used to send messages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:remotePort.png|thumb|left|Port for the Captury  to Send Messages]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start oscP5, listening for incoming messages at local port.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;45&amp;quot;&amp;gt;&lt;br /&gt;
osc = new OscP5(this, localport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Remote is a NetAddress, which includes an IP address and a port number. Here it used as parameter to sending OSC messages back to the Capury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;46&amp;quot;&amp;gt;&lt;br /&gt;
remote = new NetAddress(&amp;quot;kosmos.medien.uni-weimar.de&amp;quot;, remoteport);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Receive data from the Captury&#039;&#039;&#039;&lt;br /&gt;
*Inform Processing the name of the skeleton and the bone in use. Remember to rename your own skeleton to tell the difference from the other.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
String skeleton1 = &amp;quot;LS&amp;quot;;  //Skeleton name same with the Captury&lt;br /&gt;
String bone1 = &amp;quot;Root&amp;quot;;  //The bone in use &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:SkeletonBoneName.png|thumb|left|Name of Skeleton and Bone]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Incoming OSC messages are forwarded to the oscEvent method and this function runs every time you receive data. Print the Address Pattern and the Typetag of the received OSC messages in the console.&lt;br /&gt;
**Address Pattern is used to differentiate between different messages you are sending on one port. Here to differentiate between different bones and skeletons. &lt;br /&gt;
**Typetag is used to define what the data type is. For the data of position x, y, z receiving from the Captury, they are all float 32 type and will be showed in console as &#039;f&#039; (&#039;i&#039; for int 32, &#039;s&#039; for OSC-string, &#039;b&#039; for OSC-blob, etc.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;78&amp;quot;&amp;gt;&lt;br /&gt;
void oscEvent(OscMessage msg) {&lt;br /&gt;
  if(debug) {&lt;br /&gt;
    print(&amp;quot;### received an osc message.&amp;quot;);&lt;br /&gt;
    print(&amp;quot; addrpattern: &amp;quot;+msg.addrPattern());&lt;br /&gt;
    println(&amp;quot; typetag: &amp;quot;+msg.typetag());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive.png|thumb|left|Data Received in Processing]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To make sure that all the bones in use are available and refresh them every second or so. And send the message back to the Captury.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;58&amp;quot;&amp;gt;&lt;br /&gt;
void refreshSubscriptions() {&lt;br /&gt;
  subscribeBone(skeleton1, bone1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;71&amp;quot;&amp;gt;&lt;br /&gt;
if (frameCount % 10 == 0) {&lt;br /&gt;
refreshSubscriptions();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;103&amp;quot;&amp;gt;&lt;br /&gt;
void subscribeBone(String skeletonId, String bone) {&lt;br /&gt;
  OscMessage msg = new OscMessage(&amp;quot;/subscribe/&amp;quot; + skeletonId + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;);  //Create OSC message&lt;br /&gt;
  msg.add(50.0);  //Add a float to the OSC message&lt;br /&gt;
  msg.add(0.0);&lt;br /&gt;
  msg.add(100.0);&lt;br /&gt;
  osc.send(msg, remote);  //Send the message&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Image:DataReceive_Capture.png|thumb|left|Data Received in the Captury]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 03 – Pass data to the object&#039;&#039;&#039;&lt;br /&gt;
*Define a function to plug a specific bone to a object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;88&amp;quot;&amp;gt;&lt;br /&gt;
void plugBone(Object target, String skeleton, String bone) {&lt;br /&gt;
  String path =  &amp;quot;/&amp;quot; + skeleton + &amp;quot;/blender/&amp;quot; + bone + &amp;quot;/vector&amp;quot;;&lt;br /&gt;
  osc.plug(target, &amp;quot;update&amp;quot; + bone, path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Declare and construct a object (sphere) from the class Sphere, which is the receiver of the data.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
Sphere sphere1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;40&amp;quot;&amp;gt;&lt;br /&gt;
sphere1 = new Sphere(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;68&amp;quot;&amp;gt;&lt;br /&gt;
sphere1.draw();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Use plugBone function to pass position data of LiQianqian&#039;s Root bone to the sphere object&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
plugBone(sphere1, skeleton1, bone1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 04 – Use the data as a variable&#039;&#039;&#039;&lt;br /&gt;
*In the class Sphere, define the float variable for the position of the sphere.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
float x, y, z;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update the position of the root node. This function will be plugged to OSC.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;48&amp;quot;&amp;gt;&lt;br /&gt;
public void updateRoot(float x, float y, float z) {&lt;br /&gt;
  this.x = map(x, 0, 100, -width/2, width/2);&lt;br /&gt;
  this.y = map(y, -100, 100, -height/2, height/2);&lt;br /&gt;
  this.z = map(z, 0, 100, 0, depth);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can have a sphere moving follow the data from the Captury! For further application, you can use x, y, z to control whatever you want in Processing!&lt;br /&gt;
&lt;br /&gt;
== Control The Video By Processing ==&lt;br /&gt;
Since we can successfully use the data from the capture, it can be creatively to use the position of the object to control whatever you want in Processing!  &amp;lt;br&amp;gt;&lt;br /&gt;
The following is an example of using a single value (position x) to play or reverse the video and change the play speed of the video.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PART 01 – Play a video in Processing&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Basic code to play a video in Processing. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
import processing.video.*;  //Import libraries&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
Movie myMovie;  //Declare a object as Movie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
void setup() {&lt;br /&gt;
  size(1920, 1080);  //or use &#039;fullScreen(P3D);&#039;&lt;br /&gt;
  frameRate(60);&lt;br /&gt;
  background(0);&lt;br /&gt;
  myMovie = new Movie(this, &amp;quot;Chinese Knot_Final.mov&amp;quot;);  //Load a movie, normally followed with &#039;play()&#039; or &#039;loop()&#039;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Draw the movie by the class object (Sphere)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;22&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
    image(myMovie, 0, 0, width, height);  //Position to put the movie&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Called every time a new frame is available to read.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;62&amp;quot;&amp;gt;&lt;br /&gt;
void movieEvent(Movie m) {&lt;br /&gt;
  m.read();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PART 02 – Play or reverse the video and change the play speed&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
*Using position x as the condition. If user stand at the left edge, the speed will be slowest. The righter user stand, the faster the movie play.&lt;br /&gt;
*Using position y as the condition. If user stand close to the platform, the movie will play as usual, if else the movie will reverse. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
int play;  //Declare a value to judge play or reverse the video&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the total number of the movie frames.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
  int getLength() {&lt;br /&gt;
      return int(myMovie.duration() * myMovie.frameRate);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get current frame.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
  int getFrame() {    &lt;br /&gt;
      return ceil(myMovie.time() * 60) - 1;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pay attention that if the movie play to the end, it must be reversed. And if the movie reverse to the beginning, it must play as usual.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Java&amp;quot; line start= &amp;quot;26&amp;quot;&amp;gt;&lt;br /&gt;
    if(y &amp;gt; 200 &amp;amp;&amp;amp; getFrame() &amp;lt; (getLength() - 1)){&lt;br /&gt;
      play = 1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      play = -1;&lt;br /&gt;
      myMovie.play();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if(getFrame() &amp;lt; 1) myMovie.play();&lt;br /&gt;
&lt;br /&gt;
    float newSpeed = map(x, 0, 150, 0*play, 2*play);&lt;br /&gt;
    myMovie.speed(newSpeed);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Enjoy The Example File==&lt;br /&gt;
Thanks for your attention to this tutorial, and feel free to debug and improve it.&lt;br /&gt;
*Here is the complete code for this tutorial uploading on GitHub: [https://github.com/Yunbaby1028/WoolsWorld.git Complete Code of Wool&#039;s World]&amp;lt;br&amp;gt;&lt;br /&gt;
*Example File including the movie is shared on Dropbox: [https://www.dropbox.com/sh/f8jcuw03nekoelz/AABeKONtJAI1vfNK4tWSZ3dTa?dl=0 Example File of Wool&#039;s World]&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:SkeletonBoneName.png&amp;diff=85620</id>
		<title>File:SkeletonBoneName.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:SkeletonBoneName.png&amp;diff=85620"/>
		<updated>2016-07-28T23:38:53Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Name of Skeleton and Bone.&lt;br /&gt;
Screenshot of the Captury.&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive.png&amp;diff=85619</id>
		<title>File:DataReceive.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive.png&amp;diff=85619"/>
		<updated>2016-07-28T23:38:32Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Data received in Processing.&lt;br /&gt;
Screenshot of the Captury.&lt;br /&gt;
&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
	<entry>
		<id>https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive.png&amp;diff=85618</id>
		<title>File:DataReceive.png</title>
		<link rel="alternate" type="text/html" href="https://www.uni-weimar.de/kunst-und-gestaltung/wiki/index.php?title=File:DataReceive.png&amp;diff=85618"/>
		<updated>2016-07-28T23:38:16Z</updated>

		<summary type="html">&lt;p&gt;Yunbaby: uploaded a new version of &amp;amp;quot;File:DataReceive.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Data received in Processing&lt;br /&gt;
Screenshot of the Captury&lt;br /&gt;
== Copyright status: ==&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|c}}&lt;br /&gt;
== Source: ==&lt;/div&gt;</summary>
		<author><name>Yunbaby</name></author>
	</entry>
</feed>