Return to Main Page
Projection Arm Display Brainstorm Session - November 12, 2008
-Projection on the arm.
-tube, box, uniform projection surface, visibility for bystanders
-possibility of manipulating the surface
-use of webcam to size arm and fit display to it
-on/off switch—manipulated by participant
-stand for projector—possible use of plumbing tubing
-Laptop display
-supplementing arm projection,
-possibility of interaction between physical arm and projection arm.
-idea of vein movement as the next function. Letters coming down a vein to create explanations, tumbleoff upon pressing next. Changing colour based on coming and going—blue and red.
Various Ideas:
-operation game
-surgical experience
-Harvey tourniquet –importing picture into processing and inkscape, to manipulate the picture.
-use of sign cutter, for an engraving. 24inch long sticker that looks like the Harvey illustration,attached to whiteboard and then use projection on the whiteboard.
-low tech options: pop-up book, voyage of the circulatory system.
-possibility of using open source graphics
-use of google image—3rd art project, using clay, tubing, led lightshttp://www.daviddarling.info/images/circulatory_system.jpg
Script:
-participants told what to do, step by step.
-touch start and stop
-next button on arduino switch
-processing running on laptop, controls projector and display on computer. —possibility of using twodesktops, as projection and computer screen need to be different.
Involvement of entire exhibit:
-movement of people as the circulatory system—creating something on the larger display
-video camera seeing each individual person, each person as a vessel or something similar. Tracking movement though circulatory system.
-sound effects—one theme throughout possibility
-tracking of heart rate of throughout the exhibit—possibly a standardized heart rate to prevent people from freaking out.
Feedback from 14 Jan 2009 Meeting
-Problem of using two projectors and of projecting on to a 90 degree angle, people walking in front of the beam etc. —maybe using a monitor to display the extra info
-White foam or white cardboard over white plastic because of the expense factor.
-idea of using ABS piping.
Feedback from 28 Jan 2009 Meeting
-Majority of the discussion focusing on the way in which the exhibit should be displayed. As the original idea of projecting directly onto the arm area is not possible.
-Veins—different possibilities for incorporating interaction. Veins with buttons, hiding the buttons under the picture (possibly interface issue), using pressure sensors etc.
-Emphasis should be on the software/code/simulation development at this point.
-Orientation of arm and screen, using arm box idea again, interaction based.—Problem being this focuses more on the patient's experience, when we want to emphasize the experience of Harvey.
-Possibility of two person exhibit—patient and doctor roles, presenter being the patient in the case of a lone visitor. Would require a rethinking of the layout, the screen orientation and physical space. Maybe making it a two person exhibit that can easily transform into a one person activity.
-To work on this as a one person exhibit for now, and discuss with reviewers the possibility of two people.
Illustrations - Meili
Forearm Veins and Valves in De Moto Cordis
Figura 1 shows the distended veins in the forearm and the position of valves when the arm is congested.
Figura 2 demonstrating the inflow direction of the blood flowing in veins by pressing one finger on the vein and expelling the blood toward the heart. It turns out that the vein won't fill until the finger is released
Figura 3 shows function of valves which prevent the blood from flowing backward.
Anatomical Arteries
Arteries and veins with muscles
Colorful Blood Circulation
Here is a version of the arm that can be cut on the vinyl sign cutter
harvey-arm.bmp
Some changes of flow of blood in veins - Meili
Veins have some interesting changes during different body movements.
Resting supine: the return of blood along the veins to the heart is largely a passive process. Sufficient pressure is transmitted from arteries through capillaries to veins to provide an adequate pressure for venous return.
Standing: blood distends the dependent veins and the return is decreased.
Physical exercise, particularly involving the legs: they causes an increase in the flow of blood into the leg veins, acting as an auxiliary pump mechanism to enhance the return of blood to the heart. when the heart is beating a little faster, it will also influence the flow of the blood in veins in the arm.
Related parts of body in blood circulation - Meili
Muscles: Veins possess valves and many run deeply in the limbs, surrounded by muscles. Rhythmic movements, as when walking or running, cause alternate muscle tensing and relaxing. During the relaxing phase blood flows into the veins between the muscles, distending them. When the muscle then contracts the veins are compressed, so blood is forced along them. The valves ensure that blood can only move towards the heart. A contracting muscle also produces several chemicals which are the end products of its metabolic activity. These ‘metabolites’ act directly on the resistance vessels (arterioles), dilating them and thus regulating blood flow so that it is appropriate for the level of activity. Although sympathetic nerves do supply muscle blood vessels, they control only the resting blood flow and play no part in the response to exercise. At rest, flow in all muscles comprises only about 1 litre/min out of the cardiac output of 5 litres/min. During exercise, if cardiac output increases to 25 litres/min, 20 litres of this goes to the working muscles.
Skin: Blood flow to the skin is controlled by the mechanisms of temperature regulation. If local skin temperature or general body temperature rises, skin vessels, including special arterio-venous shunt vessels, dilate to increase skin blood flow and thereby increase skin temperature and facilitate cooling. Skin flow is controlled partly by nerves and partly by direct local temperature effects (warm hands are red). During very cold conditions blood flow to the entire skin is almost completely cut off. During extreme heat, flow may increase to the extent that most of the output of the heart flows through the skin.
Research
Reasons Harvey believed blood circulates in the body: Melissa
Based on William Harvey’s Work, On the Movement of the Heart and Blood in Animals
•Harvey believed that blood is transmitted in such a quantity through the body that it would not be possible for the body to produce and supply such a quantity.
•Veins return this blood to the heart from parts and members of the body
•“blood circulates, revolves, propelled and then returning, from the heart to the extremities, from the extremities to the heart, and thus that it performs a circular motion” 87
•Harvey illustrates that in a half an hour the heart will have made more than one thousand beats. Harvey through multiplying the number of beats per half hour times the amount of blood, that he measured in drachms, propelled by the heart with each beat, Harvey determined that one thousand half ounces or one thousand times three drachms would be propelled during that time period. Harvey then states that this would be more blood than would be present in the entire body therefore it would not be possible for the body to produce a constant supply of new blood it only makes sense that the blood would circulate through the body.
Text Panel Arm Projection Melissa
1. One of William Harvey’s main discoveries was that blood circulates through the body. The force of the heart on the blood pumps the blood through all the veins in the body and back to the heart.
2. To illustrate this, you can now see the blood proceeding down the arm and then returning upwards making its way back to the heart.
3. In order to prove his theory Harvey created observable experiments. He tied a turnkey around the arm. This allowed veins to become more visible and to swell. He also observed that by tensing the arm veins also became swelled and hence, more observable.
4. Within these conditions Harvey proceeded to disrupt blood flow in the arm by stopping the flow of blood by placing his finger on the vein.
5. As you can see this disrupted blood flow. Notice how before the blockage the veins and arteries fill up with blood and after the blockage the veins become less swelled and less visible due to the lack of blood. When a finger is released the blood continues on its way.
6. As Harvey’s experiment further demonstrates the progression of the blood through the arm is proved by its movement from one point to another as the fingers are removed and passage for the flow of blood is open.
Steps of Harvey's Arm Experiment from On the Motion of the Heart and blood in Animals by William Harvey - Melissa
-
Tie a tourniquet around the arm just above the elbow
-
The veins will swell and become distended and bulges or knots will become visable along the veins. Harvey refered to these elevations as valves.
-
Place your finger on the inferior vein. This refers to the vein which is on the inside of the arm closest to the body. Notice how the vein seems to disapear after the point on the vein where the finger is placed as it is becomming emptied of blood.
-
Now that the blood has been pressed out and the vein is empty apply a second finger to the distended vein about 3cm from the first finger and right above the valve. This will create a section of emptied vein but the valve in between the two fingers will remain swolen
-
No matter how much pressure you apply to the valve you will find that you cannot force any blood past the valve and into the emptied vein. You will notice instead that the valve will only become more swolen. Thus, the valves serve the function similar to the sigmond valves of the aorta and pulmonary artery which is to prevent the reflux of blood.
-
Beginning again place one finger on the vein. You will notice the veins will become swolen. By placing a second finger on the vein where the veins are distended you will notice the veins are still swolen before the blockage although between the two fingers the veins become empty. Further by removing one finger, the emptied area of vein between the two fingers again fills with blood. This proves the flow of blood in one direction away from and back to the heart. While the valves are seen to regulate the floow of blood in the body acting as dams.
These steps correspond to Harvels arm figures. When Harvey was explaining the experiment he refered to the arm drawings and in the book On the Motion of Heart and Blood in Animals he used 4 figures of the arm to explain the experiment. Figure 4 shows the flow of blood in one direction
Harvey's Arm Figures Melissa
Development of Harvey's Arm Experiment in Processing - Vicky
Version 1:
The above is one version of the Harvey arm that I've programmed so far in Processing. Blue "blood" moves from right to left in the top vein; red "blood" moves from left to right in the bottom artery. The opposing movement actually occurs continuously in the code but *appears* as if it happens only once because of the "opaque" settings of the code responsible for the colour. (Version two is an attempt to show continuous movement, but the tradeoff is that colour quality/opacity is compromised.)
In case any programmer (or anyone else) is interested in seeing the code and would like to run the program in Processing, I've copied and pasted it below. Just a few notes:
1) In order to see the Harvey arm template as shown in the above image, the svg (Scalable Vector Graphics) file entitled "moo4.svg" has to be first added to the data folder of the Processing sketch. To add this svg file (which I believe requires you to have Inkscape installed), first save it to your computer with the same file name (I've uploaded it below); then in Processing click on "Sketch" in the menu, followed by "Add file". Select the corresponding file and click "Open". The file should now be added to your sketch (there'll be a note at the bottom of the screen that confirms that one file has been added). This process can be used to add not only SVG files, but images (ending with the file extension .jpg, .png, and .gif.).
2) The SVG file is a tracing of Harvey's arm image, which was done using the bezier curves tool in Inkscape after the image, in .bmp format, was uploaded into Inkscape. I simply uploaded the svg file into Processing; however, there should be a way to also copy and paste the bezier curve coordinates of the traced image itself from the XML code in Inkscape; this code could then be pasted into Processing, which might then get rid of the irregular black shading in the template (though some people have told me the shading gives an "abstract art" feel to the image). I have not yet figured out how to transfer the bezier curve coordinates from the svg file into Processing....am still looking into this. If any other programmer figures this out, please share the wisdom. :)
WJT: I have some notes on how to do it
here
3) I am sure the code below could be written more concisely; I have condensed it as best as I could (it was a lot worse to begin with, lol!). Some of it seems repetitive, simply because I coded the vein and artery using repeat line patterns. I tried to use "iteration" to duplicate the pattern and shorten the code but got strange results...
4) Anything with two backslashes // indicates an internal comment, rather than programming code.
Anyways, here is the code:
import processing.candy.*;
import processing.xml.*;
SVG m;
float vein = 1245.0;
float artery = 450.0;
void setup(){
size(1400,1000);
background(255);
// The file "moo4.svg" must be in the data folder
// of the current sketch to load successfully
m = new SVG(this, "moo4.svg");
m.drawMode(CENTER);
int x=520;
int y=465;
//vein = connecting "V" lines
line(x-75, y-45, x, y);
line(x-75, y-35, x-15, y+5);
line(x-15, y+5, x-75, y+35);
line(x-75, y+45, x, y+10);
// vein - upper pattern
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
x=x+80;
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
x=x+80;
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
x=x+80;
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
x=x+80;
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
x=x+80;
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
x=x+80;
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
x=x+80;
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
x=x+80;
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
x=x+80;
line(x, y, x+60, y);
line(x+60, y, x+65, y-5);
line(x+65, y-5, x+75, y-5);
line(x+75, y-5, x+80, y);
//vein - lower pattern
int a=520;
int b=475;
line(a, b, a+60, b);
line(a+60, b, a+65, b+5);
line(a+65, b+5, a+75, b+5);
line(a+75, b+5, a+80, b);
a=a+80;
line(a, b, a+60, b);
line(a+60, b, a+65, b+5);
line(a+65, b+5, a+75, b+5);
line(a+75, b+5, a+80, b);
a=a+80;
line(a, b, a+60, b);
line(a+60, b, a+65, b+5);
line(a+65, b+5, a+75, b+5);
line(a+75, b+5, a+80, b);
a=a+80;
line(a, b, a+60, b);
line(a+60, b, a+65, b+5);
line(a+65, b+5, a+75, b+5);
line(a+75, b+5, a+80, b);
a=a+80;
line(a, b, a+60, b);
line(a+60, b, a+65, b+5);
line(a+65, b+5, a+75, b+5);
line(a+75, b+5, a+80, b);
a=a+80;
line(a, b, a+60, b);
line(a+60, b, a+65, b+5);
line(a+65, b+5, a+75, b+5);
line(a+75, b+5, a+80, b);
a=a+80;
line(a, b, a+60, b);
line(a+60, b, a+65, b+5);
line(a+65, b+5, a+75, b+5);
line(a+75, b+5, a+80, b);
a=a+80;
line(a, b, a+60, b);
line(a+60, b, a+65, b+5);
line(a+65, b+5, a+75, b+5);
line(a+75, b+5, a+80, b);
a=a+80;
line(a, b, a+60, b);
line(a+60, b, a+65, b+5);
line(a+65, b+5, a+75, b+5);
line(a+75, b+5, a+80, b);
line(a+80, b, a+85, b);
//artery
int c = 420;
int d = 515;
//artery - upper pattern
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
c=c+80;
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
c=c+80;
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
c=c+80;
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
c=c+80;
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
c=c+80;
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
c=c+80;
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
c=c+80;
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
c=c+80;
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
c=c+80;
line(c, d, c+60, d);
line(c+60, d, c+65, d-5);
line(c+65, d-5, c+75, d-5);
line(c+75, d-5, c+80, d);
line(c+80, d, c+125, d);
//artery - lower pattern
int e = 420;
int f = 525;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
e=e+80;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
e=e+80;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
e=e+80;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
e=e+80;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
e=e+80;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
e=e+80;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
e=e+80;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
e=e+80;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
e=e+80;
line(e, f, e+60, f);
line(e+60, f, e+65, f+5);
line(e+65, f+5, e+75, f+5);
line(e+75, f+5, e+80, f);
line(e+80, f, e+125, f);
}
void draw(){
m.draw(width/2, height/2);
vein = vein - 2.0;
artery = artery + 2.0;
fill(0, 255, 255, 150);
//stroke(250, 255, 255, 220);
noStroke();
ellipse(vein, 470, 8, 8);
fill(255, 50, 50, 150);
//stroke(250, 255, 255, 150);
ellipse(artery, 520, 8, 8);
if (vein < 510.0){
vein = 1245.0;
}
if (artery > 1250.0){
artery = 450.0;
}
}
Version 2:
The above is a second version of the Harvey arm. Because the blue and red "blood" only appear to move once through the vein and artery in the first version, I tried to show continual movement in the second version. The best I could do was to make a blue and red circle (or "ellipse" in programming lingo) move through the vein and artery continuously, after they are initially filled with colour. In this version, the colour of the "blood" is much more transparent compared to the first version, so is not as visually striking...to make it opaque, however, conceals visualization of movement. I am still pondering how else to show continous movement. If any programmer has suggestions, please let me know. :)
The code for the second version is nearly identical to the code for the first. The only differences lie in the "void draw" section of the code, as follows:
1) Put two back slashes in front of the "noStroke();" line in order to deactivate that line in the program.
2) Remove the back slashes in front of the following two lines in order to activate them in the program:
"//stroke(250, 255, 255, 220);" "//stroke(250, 255, 255, 150);"
William Harvey Arm Project Melissa
William Harvey through a series of observable experiments concluded that blood circulates throughout the body, thus greatly contributing to our understanding of circulation.
In order to usher in this new understanding of circulation, Harvey would need to disprove Galen’s theory that blood is produced in the liver and is then consumed by the body. In order to accomplish this Harvey observed how much blood is passed through the heart each day. His experiment took into account the capacity of the heart, how much blood is expelled with each pump of the heart and the amount of times the heart beats in a given time. He then projected these numbers over one day and discovered that in order to fit Galen’s theory the liver would need to produce 540 pounds of blood per day to satisfy this theory. Harvey then states that this would be more blood than would be present in the entire body; therefore, it would not be possible for the body to produce such a large supply of new blood; instead it only makes sense that the blood would circulate in the body.
In Harvey’s model the blood is pumped by the heart to all parts of the body and is returned again through the veins and the process is repeated in a circular motion.
Upon discovering circulation Harvey wished to further understand his new paradigm so he created a series of observable experiments which explained and predicted the flow of blood in the body.
Harvey tied a tourniquet around the arm so the veins would swell and become distended. This revealed the valves that were discovered by his teacher Hieronymus Fabricius. Harvey realized through experimentation that the purpose of valves were to control and regulate the flow of blood in the body and to prevent the reflux of blood. Through a series of experiments he blocked blood flow by placing his fingers on the veins and then removed the fingers and allowed blood to flow again.
He concluded that blood flows in only one direction, the valves regulate the flow of blood and thus, Harvey came to an understanding of the behaviour of the blood in the body.
Transferring the Image of the Arm onto Material - Kalyna
I purchased the transfer paper and some material, altered the image of the arm in photoshop, and this is how it came out.
Arduino Coding for Three buttons - Sarah
// Code for sensing a switch status and writing the value to the serial port
int button1 = 4; // Switch connected to pin 4
int button2 = 12; //Switch connected to pin 9
int button3 = 7; //Switch connected to pin 7
void setup() {
pinMode(button1, INPUT); // Set pin 0 as an input
Serial.begin(9600); // Start serial communication at 9600 bps
}
void loop() {
if (digitalRead(button1) == HIGH) { // If switch is ON
Serial.print(1); } // send 1 to Processing
else if (digitalRead(button2) == HIGH) { //If switch 2 is ON
Serial.print (2); } //send 2 to processing
else if (digitalRead (button3) == HIGH) { // If switch 3 is ON
Serial.print (3); //send 3 to processing
} else { //If the switch is not ON
Serial.print (0); // send 0 to Processing
}
delay(100); // Wait 100 milliseconds
}
Some details for Vicky by Meili
1. There are valves in veins, but no valves in arteries. The reason is as following:
Blood flow through arterial system is pressure driven. The heart pushes the blood outward to the peripheral parts of the body. By contrast, the venous system is a low pressure system and the return of the blood to the heart is the result of contractions of surrounding muscle tissue. When you walk you are also helping return blood from the venous system. Since the movement is mostly passive the valves in the veins serve to keep the flow of blood in one direction. If you squeeze a water balloon the water goes in both directions. Don't want that in the veins.
Harvey never mentioned whether there are valves in arteries, but just mentioned valves in veins and its function.
2. Valves:
Fabricious discovered that the veins have valves, but he did not understand their function. He believe that they delayed the flow of blood and thereby, prevented flooding of extremities of the body.
3. Galen's theory about blood circulation:
Galen demonstrated that the arteries also contain blood. He believed that blood was formed in the liver, and from there it moved through the veins to the various parts of the body. Some of the blood went to the right ventricle of the heart, where it became divided to the lungs, and other passed through minute pores in the septum to the left ventricle, and then entered the aota, from where it reached the lungs and other parts of the body. The venous blood nourished the body, and arterial blood carried a vital spirit bestowed on it in the heart from air, which entered through the lungs. The atria were not significant parts of the hearts, but were considered to be extensions of large blood vessels.
So it is a back-forth movement. The blood was propelled by the vessels through which it passed, and sloshed back and forth through the body.
It works like this: The mouth, nostrils, and trachea inhale air, and by an opposite movement the air is exhaled through the same channels.
Feedback - Rob
Bill - Suggested that text should be short and larger for those with short attention spans.
- Differentiate content/message from instructions (either through bold, italic or underlined text)
- Speed up the flow of the veins.
Jeff - Make the dowel horizontal.
- Find some way of simulating a turnicate.
- Use 'bite sized' portions of text.
- Find a way to let people know where they are at in the experiment (step 1 of 5 etc...)
- Code in a lapse of 20 - 30 seconds between graphics/content & instructions for next step.
Paul - Try to find some way of animating the instructions for pressing on our virtual valves (possibly through graphics or video)
- Suggested presenting the text in the form of narrated audio.
Shelley - Suggested titling the exhibit 'Harvey the Observer: Proof that Blood Circulates'. This would be in order to let the participant know what they will be learning.
- Simulate a turnicate.
- Find a way to incorporate audio.












