124
& Points of Inflection Process Book

Points of Inflection - Process Book

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Points of Inflection - Process Book

&Points of Inflection Process Book

Page 2: Points of Inflection - Process Book

2

Page 3: Points of Inflection - Process Book

3

This work is not copyrighted. Please feel free to copy,

borrow, steal, reproduce, edit, remix, version, recreate or

plagiarize this work.

Page 4: Points of Inflection - Process Book

4

Page 5: Points of Inflection - Process Book

5

Page 6: Points of Inflection - Process Book

6

Reflect Seven. 16 - 17

Graphic design beyond fair use. 78 - 79

Reflect Eight. 44 - 45

20 y

ear

gap

? 6

0 -

61

Table of Praxis

Page 7: Points of Inflection - Process Book

Refl

ect N

ine.

82

- 8

3

Literature Review Three. 92 - 93

Thesis Essay. 94 - 97

Tem

por

ary

Rep

rod

uctio

ns.

90

- 9

1

7

Page 8: Points of Inflection - Process Book

8

Table of Practice

Algorithmic Poster Generator. 32 - 37

Alg

orith

mic

Pos

ter

Gen

erat

or v

2. 6

8 -

69

USACAN

America's Copyright Extensions. 48 - 51

Forfeiting Canada's Public Domain. 52 - 55

Page 9: Points of Inflection - Process Book

Han

d T

rack

ing.

10

8 -

109

Skeleton Tracking. 104 - 105

Deletion 116 - 123

User Interface 100 - 101

Point Cloud 102 - 103

9

Page 10: Points of Inflection - Process Book

10

Page 11: Points of Inflection - Process Book
Page 12: Points of Inflection - Process Book

12

Page 13: Points of Inflection - Process Book

13

Page 14: Points of Inflection - Process Book

14

Last semester, I drew attention to the fact that designers work primarily with other peoples con-tent and call it their property. The designer is responsible for using the photography, typefaces, and text created by others and claiming that they own the rearranged outcome. In order to highlight this perplexing property relation, I will be focusing on the design activity and decision making process of the designer. The focus of my practice this se-mester will involve the use of computer software to record design activity and decision making. This may involve bringing in algorithmic computa-tion as part of my design process. The intention being that if the computer is the primary tool of design production today, having control of the computer will allow me to manipulate the means of production a designer works within.1 When we look at the means of production from the stand-point of representation, we can then ask the question of how graphic design practice reproduc-es the mode of production it works within? 2

This question leads to an artistic standpoint that is worth commenting on. Namely, that the everyday realities of contemporary design labour can manifest themselves in my formal practice. This goes beyond the mouse and keyboard to include the design studio: the designer’s working environment, the production schedule within the studio, the designer’s relation with colleagues, the importance of networking and so on. All are aspects of the mode of production within which the designer and the design operate. In a similar way, the conceptual art of Sol LeWitt could mimic a bureaucratic method of production:

The aim of the artist would be to give viewers infor-mation...He would follow his predetermined premise to its conclusion voiding subjectivity. Chance, taste or unconsciously remembered forms would play no part in the outcome. The serial artist does not attempt to produce a beautiful or mysterious object but functions merely as a clerk cataloguing the results of his premise.3

In essence, conceptual art could mimic the operat-ing logic of capitalism in order to deconstruct, criticize and draw attention to its logic of production. In a similar way, I hope to take inspiration from the aspects of design labour beyond the computer and draw them back into my formal work to unpick the designers mode of production.

1. Benjamin, Walter. Author as Producer. New Left Review. 1970. Accessed Dec 10, < http://yaleunion.org/wp-content/

uploads/2013/12/Walter_Benjamin_-_The_Author_as_Producer.pdf >

2. Negri, Antonio. Art and Multitude. Polity, 2011. 108.

Reflect Seven

Page 15: Points of Inflection - Process Book

15

3. Sack, Warren. Aesthetics of Information Visualization. Accessed Jan 7, <http://danm.ucsc.edu/~wsack/Writings/wsack-infoaesthetics.pdf>

Page 16: Points of Inflection - Process Book

16

Page 17: Points of Inflection - Process Book

17

Page 18: Points of Inflection - Process Book

18

For my thesis project I am interested in investigating

a potential philosophy for graphic design. At this point, it

seems that a philosophy of graphic design rests on the

nature of representation and the accompanying relation

between image and reality.

Contextually, this subject relates to the “map / territory

relation”, where the map is not the territory itself,

but only a representation. A philosophy of graphic

design might situate itself somewhere between

the field of aesthetics (the philosophy of art) and ontol-

ogy (the philosophy of being). Additionally semiotics,

which includes the relation between sign and signifier

is also worth exploring, particularly for its connection

to language. Some relations of representation also

are invested in notions of objectivity, truth and

neutrality as found in the realm of scientific illustration

and cartography.

In terms of process I will attempt to create a unity

between theory and practice. Theory will allow me to

engage the subject matter informationally, politically and

philosophically. Writing outside of the Reflection

assignments will give me the opportunity to consider

theory more substantially. Practice will allow me

to create a visual methodology with books, prints,

information visualizations and the creation of new

tools I make myself (with Processing).

The goal of this thesis will be two-fold. First, my

intent is to use my thesis as a step towards a potential

philosophy of graphic design. Second, I am interested in

graphic design that challenges accepted paradigms

and that which we take for granted. For example, repre-

sentations that persist not because of their content, but

as historical residue that are asking to be dismantled.

My sources will include philosophers, artists,

designers, statisticians and political theorists including

but not limited to: Kant, Hegel, Marx, Russell, Magritte,

Borges, Wark, Tufte, Fry and Reas.

Thesis Statement

Page 19: Points of Inflection - Process Book

For my thesis project I am interested in investigating

relations of representation and ownership within

the realm of copyright. Contemporary graphic design

practice involves the manipulation of existing content

into new arrangements. I am interested in exploring

how copyright upholds a relation between designers

and their work in which representations must navigate.

Contextually, my thesis will examine how the letter

and spirit of the law manifest themselves through

representations. A thesis on intellectual property might

situate itself somewhere within Marxist or anarchist

notions of labour and property. The idea of design

as property is also worth contrasting with the copy-

left movement, remix culture, and open source

culture. My focus will be on the current realities of

design production, specifically situating graphic design

practice as a form of immaterial labour which

produces cultural products.

This leads me to process, where I will begin by focusing

on the relationships of representation as mediated

through designers actions and decisions. By recording

design labour, I intend to label, reveal and make explicit

varying sets of relations which are often overlooked.

Practice will allow me to create a visual methodology

with software, books, posters, and participatory exer-

cises involving the creation of new tools made

with Processing. Form will allow me to engage the sub-

ject matter aesthetically, informationally, politically

and philosophically.

I am interested in graphic design that challenges

accepted paradigms of representation that we take for

granted. For example, designers often support copy-

right out of convention, but what does design stand to

gain by challenging the ‘permission culture’ created by

copyright? By carrying out this thesis I hope to identify

the role copyright plays in limiting a more critical

design practice. My intended outcome is to make the

viewer reconsider their relationship to copyright,

and the limitations imposed on design through copyright.

My sources will include philosophers, artists, designers,

statisticians and political theorists including but

not limited to: Benjamin, Glaser, Borenstein, Negri,

Lessig, Wark, Marx, Borges, Giampietro, Fry and Reas.

More specifically, the political theorists will inform

my critique of copyright, while the designers and

programmers will inform how the work will be pro-

duced and distributed.

Thesis Statement

Page 20: Points of Inflection - Process Book

20

“Somehow I can't believe there are any heights that

can't be scaled by a man who knows the secret of

making dreams come true. This special secret, it

seems to me, can be summarized in four C's. They

are Curiosity, Confidence, Courage, and Constancy

and the greatest of these is Confidence. When you

believe a thing, believe it all the way, implicitly and

unquestionably.”

— Walt Disney

Curiosity

Page 21: Points of Inflection - Process Book

21

Page 22: Points of Inflection - Process Book

22

Page 23: Points of Inflection - Process Book

23

RecursionRe · cur · sion

noun Mathematics, Computers

1. Recursion is the process of repeating items in a self-similar

way. For instance, when the surfaces of two mirrors are

exactly parallel with each other the nested images that occur

are a form of infinite recursion.

Page 24: Points of Inflection - Process Book

24

Page 25: Points of Inflection - Process Book
Page 26: Points of Inflection - Process Book

26

Page 27: Points of Inflection - Process Book

27

Page 28: Points of Inflection - Process Book

28

“The particularity of the commodity produced

through immaterial labor...consists in the fact that

it is not destroyed in the act of consumption, but

rather it enlarges, transforms and creates the ‘ideo-

logical’ and cultural environment of the consumer.”

— Antonio Negri

Immaterial Labour

Page 29: Points of Inflection - Process Book

29

Walt Disney Pictures ® The Walt Disney Company

Page 30: Points of Inflection - Process Book

30

Page 31: Points of Inflection - Process Book

31

Page 32: Points of Inflection - Process Book

32

Page 33: Points of Inflection - Process Book

33

Page 34: Points of Inflection - Process Book

3434

Page 35: Points of Inflection - Process Book

3535

Page 36: Points of Inflection - Process Book

void quad(){

fill(138,148,252);

quad(0,y4,x1,0,width,y2,x3,height);

} void cross(){

pushMatrix();

float XPosX = random (0,480); //CrossPositionX

float XPosY = random (0,600); //CrossPositionY

rotate(rotation);

strokeWeight(weight);

stroke(ROUND);

stroke(138,148,252);

y = y+1;

if(y<25){

line(XPosX,XPosY-25,XPosX,XPosY+25);

line(XPosX-25,XPosY,XPosX+25,XPosY);

}

popMatrix();

} void line(){

pushMatrix();

/* float c1 = random (0,255);

float c2 = random (0,255);

float c3 = random (0,255); */

float XPosX = random (0,200);

float XCPosX = constrain (XPosX,0,200);

float XPosY = random (0,500);

float XCPosY = constrain (XPosY,0,400);

strokeWeight(lineWeight);

strokeCap(SQUARE);

float rotation = random (0,TWO_PI);

rotate(rotation);

stroke(138,148,252);

//stroke(c1,c2,c3);

y = y+1;

if(y<20){

line(XCPosX,XCPosY,XCPosX,XCPosY+130);

}

popMatrix();

} void rect(){

pushMatrix();

float XPosX = random (0,400);

float XPosY = random (0,570);

//rotate(rotation);

strokeWeight(lineWeight);

noFill();

stroke(138,148,252);

y = y+1;

if(y<6){

rect(XPosX,XPosY-25,XPosX+90,XPosY+25);

}

popMatrix();

} void mousePressed() {

saveFrame(“_##.png”);

}

//Quad Floats

float x1 = random (0,430);

float x3 = random (0,430);

float y2 = random (0,600);

float y4 = random (0,600);

//Cross Floats

float y = 0;

float weight = random (1,16);

float rotation = random (0,QUARTER_PI);

//Line Test

float lineWeight = random (10,12);

float posterTitle = random(0,10);

int title = int(posterTitle);

PFont font;

float titleFont = random(0,6);

int Fonts = int(titleFont);

float typeFloat = random(0,4);

int type = int(typeFloat);

Images images;

void setup(){

size(430,600);

background(255);

noStroke();

//’\n’

String fonts[] = loadStrings(“fonts.txt”);

font = loadFont(fonts[Fonts]);

images = new Images();

} void draw(){

smooth();

if(type == 0){

quad();

images.display();

}

if(type == 1){

images.display();

line();

}

if(type == 2){

images.display();

cross();

}

if(type == 3){

rect();

images.display();

}

// if(type == 4){

// images.display();

// }

fill(0);

textSize(44);

textFont(font, 48);

String lines[] = loadStrings(“posterTitles2.txt”);

for (int i = 0 ; i < lines.length; i++) {

//read through semi colons using split

//store into another string array (titleArray)

//output each line from that string array

text(lines[title],10,70);

//replace lines with titleArray

//text(lines[title],10,150);

}

}

Page 37: Points of Inflection - Process Book

void quad(){

fill(138,148,252);

quad(0,y4,x1,0,width,y2,x3,height);

} void cross(){

pushMatrix();

float XPosX = random (0,480); //CrossPositionX

float XPosY = random (0,600); //CrossPositionY

rotate(rotation);

strokeWeight(weight);

stroke(ROUND);

stroke(138,148,252);

y = y+1;

if(y<25){

line(XPosX,XPosY-25,XPosX,XPosY+25);

line(XPosX-25,XPosY,XPosX+25,XPosY);

}

popMatrix();

} void line(){

pushMatrix();

/* float c1 = random (0,255);

float c2 = random (0,255);

float c3 = random (0,255); */

float XPosX = random (0,200);

float XCPosX = constrain (XPosX,0,200);

float XPosY = random (0,500);

float XCPosY = constrain (XPosY,0,400);

strokeWeight(lineWeight);

strokeCap(SQUARE);

float rotation = random (0,TWO_PI);

rotate(rotation);

stroke(138,148,252);

//stroke(c1,c2,c3);

y = y+1;

if(y<20){

line(XCPosX,XCPosY,XCPosX,XCPosY+130);

}

popMatrix();

} void rect(){

pushMatrix();

float XPosX = random (0,400);

float XPosY = random (0,570);

//rotate(rotation);

strokeWeight(lineWeight);

noFill();

stroke(138,148,252);

y = y+1;

if(y<6){

rect(XPosX,XPosY-25,XPosX+90,XPosY+25);

}

popMatrix();

} void mousePressed() {

saveFrame(“_##.png”);

}

//Quad Floats

float x1 = random (0,430);

float x3 = random (0,430);

float y2 = random (0,600);

float y4 = random (0,600);

//Cross Floats

float y = 0;

float weight = random (1,16);

float rotation = random (0,QUARTER_PI);

//Line Test

float lineWeight = random (10,12);

float posterTitle = random(0,10);

int title = int(posterTitle);

PFont font;

float titleFont = random(0,6);

int Fonts = int(titleFont);

float typeFloat = random(0,4);

int type = int(typeFloat);

Images images;

void setup(){

size(430,600);

background(255);

noStroke();

//’\n’

String fonts[] = loadStrings(“fonts.txt”);

font = loadFont(fonts[Fonts]);

images = new Images();

} void draw(){

smooth();

if(type == 0){

quad();

images.display();

}

if(type == 1){

images.display();

line();

}

if(type == 2){

images.display();

cross();

}

if(type == 3){

rect();

images.display();

}

// if(type == 4){

// images.display();

// }

fill(0);

textSize(44);

textFont(font, 48);

String lines[] = loadStrings(“posterTitles2.txt”);

for (int i = 0 ; i < lines.length; i++) {

//read through semi colons using split

//store into another string array (titleArray)

//output each line from that string array

text(lines[title],10,70);

//replace lines with titleArray

//text(lines[title],10,150);

}

}

Page 38: Points of Inflection - Process Book

38

Page 39: Points of Inflection - Process Book
Page 40: Points of Inflection - Process Book

40

Page 41: Points of Inflection - Process Book

41

Page 42: Points of Inflection - Process Book

42

In his short story Tlön, Uqbar, Orbis Tertius Jorge Luis Borges remarks “Mirrors and copulation are abominable, since they both multiply the num-bers of men...”. 1 In the fall, I used mirrors to deal with the subject of ownership and representa-tion. Mirrors are an appropriate medium to deal with issues of representation since they produce copies, differences and an ever shifting likeness of what they reflect. A camera, pointed at a subject can act in a similar way as a mirror, producing a representation or multiple of the subject. Over the course of my thesis, I have been dealing with recording design activity as a means to reveal the property relations behind pixel pushing. Considered more broadly, design activity does not have to be limited to mouse and keyboard activity. Instead, design activity can be thought of as the physical activity of the designer using a tool. A ‘mirror’ which records design activity would therefore combine aforementioned ideas of representation with ideas of production. The motion tracking possibilities of an infrared camera combined with computer software could enable the tracking of design activity through a mirror-like surface. This tool would frame design practice in a way that makes design activity and design content inextricable.

1. Borges, Jorge Luis. “Tlön, Uqbar, Orbis Tertius” in Labyrinths. N.p.: New Directions, 2007.

2. Galindo, Brian. “A Rare 1968 Anti-War Short ‘Mickey Mouse in Vietnam’ Has Resurfaced Online.” BuzzFeed. Last modified June 20, 2013.

<http://www.buzzfeed.com/briangalindo/rare-1968-anti-war-short-mickey-mouse-in-vietnam-resurfaces.>

Reflect Eight

Page 43: Points of Inflection - Process Book

Reflect Eight

43

Although copyright and representation can be connected in a number of ways, I have been strug-gling to find a specific area where copyright results in tangible problems of representation. As a property relation copyright is treated as a default, and although it is conceivable that copyright creates problems of representation in relation to capital, labour, production and other issues, drawing connections between these subjects is difficult to make explicit or measure. However, one area where the influence of copyright is more obvious is its censorship of visual criticism. Even though fair use laws make a legal exception to use a copyrighted work for the purposes of commen-tary, criticism, parody, journalism and so on, the terms of fair use are murky. Fair use sees less precedents in relation to artistic criticism than to written criticism for instance.

One example is illustrative of this point, in 1968 Milton Glaser and Lee Savage created Mickey Mouse in Vietnam for an event protesting the war in Indochina.2 The one minute film depicts the Disney icon joining the US military, travelling by boat to Vietnam,and being shot and killed im-mediately upon arrival. The film can be taken as a

criticism of US imperialism or how the horrors of war affect youth. Talk of lawsuit by Disney emerged but was dropped due to the little Disney stood to gain from legal action. This example illustrates how visual criticism is censored by copyright policy. Either through the threat of punishment or artists self censoring their work 3, representations subject to copyright violations risk not achieving their full critical potential.

3. Steinhauer, Jillian. “Are Art Professionals Afraid of Fair Use?” Hyperallergic. Last modified

February 3, 2014. <http://hyperallergic.com/106741/are-art-professionals-afraid-of-fair-use/.>

Page 44: Points of Inflection - Process Book

44

Page 45: Points of Inflection - Process Book

45

Public DomainPub · lic Do · main

noun Law

1. the status of a literary work or an invention

whose copyright or patent has expired or that

never had such protection.

2. land owned by the government.

Page 46: Points of Inflection - Process Book

46

Page 47: Points of Inflection - Process Book

47

Page 48: Points of Inflection - Process Book

48

Page 49: Points of Inflection - Process Book

49

Page 50: Points of Inflection - Process Book

50

Page 51: Points of Inflection - Process Book

51

Page 52: Points of Inflection - Process Book

52

Page 53: Points of Inflection - Process Book

53

Page 54: Points of Inflection - Process Book

54

Page 55: Points of Inflection - Process Book

55

Page 56: Points of Inflection - Process Book

56

Page 57: Points of Inflection - Process Book

57

Page 58: Points of Inflection - Process Book

58

Page 59: Points of Inflection - Process Book

59

The Trans-Pacific Partnership (TPP) is a trade agreement between several Asia-Pacific countries including Brunei, Singapore and New Zealand in partnership with America, Mexico, Canada and other countries. Part of the predicted effects of the TPP could be an extension of Canada's copyright term from Life+50 to match America's Life+70 term. The current situation is such that the government's involvement in trade agree-ments might cause the copyright of creators both living and dead to be extended and as a result

create a 20 year gap in the public domain. One of the primary arguments used by propo-nents of copyright is that intellectual property gives creators incentive to produce because of the monetary value of their IP. The perplexing consequence created is that with the exten - sion of the copyright term the works of dead creators will require an additional 20 years before passing into the public domain. Thus according to the operating logic of copyright, dead creators are incentivised to create additional works.

twenty year gap in the public domain?

Geist, Michael. "The Trans Pacific Partnership IP Chapter Leaks: Canada Would Face Copyright Term Extension."

Michael Geist (blog). Entry posted November 18, 2013. http://www.michaelgeist.ca/content/view/6999/125/.

Page 60: Points of Inflection - Process Book

60

Page 61: Points of Inflection - Process Book
Page 62: Points of Inflection - Process Book

62

Page 63: Points of Inflection - Process Book

63

Page 64: Points of Inflection - Process Book

64

“Artistic experience — or so I was thinking in 1988

— has to be related to the modes of transfor-

mation of labour production ... The work of art is

always indissociably two things — incidentally,

like all objects produced in the era of capitalism,

it is both activity and commodity.”

— Antonio Negri

Activity

Page 65: Points of Inflection - Process Book

65

Page 66: Points of Inflection - Process Book

66

Page 67: Points of Inflection - Process Book

67

Page 68: Points of Inflection - Process Book

68

Page 69: Points of Inflection - Process Book

69

Page 70: Points of Inflection - Process Book

70

Page 71: Points of Inflection - Process Book

71

Page 72: Points of Inflection - Process Book

// add a horizontal sliders, the value of this

// slider will be linked

// to variable ‘crossWeight’

cp5.addSlider(“R”).setPosition(450,50).se-

tRange(0,255);

cp5.addSlider(“G”).setPosition(450,70).se-

tRange(0,255);

cp5.addSlider(“B”).setPosition(450,90).se-

tRange(0,255);

cp5.addSlider(“crossNumber”).setPosi-

tion(450,230).setRange(0,30);

cp5.addSlider(“crossWeight”).setPosi-

tion(450,250).setRange(0,30);

cp5.addSlider(“lineNumber”).setPosition(450,270).

setRange(0,30);

cp5.addSlider(“lineWeight”).setPosition(450,290).

setRange(0,20);

cp5.addSlider(“rectNumber”).setPosition(450,310).

setRange(0,10);

cp5.addSlider(“rectWeight”).setPosition(450,330).

setRange(0,20);

cp5.addToggle(“quadrangle”).setPosition(450,350).

setSize(50,10);

d2 = cp5.addDropdownList(“typeface”).setPosi-

tion(450, 180).setSize(100,300);

custo

mize(d2); //custo

mize the second list

d2.setIndex(10);

cp5.addSlider(“imageNumber”).setPosi-

tion(450,470).setRange(0,5);

} void draw(){

background(255);

cross();

line();

rect();

quad();

images.display();

fill(0);

text(“Form”,20,70);

text(“Follows”,20,120);

text(“f(x)”,20,170);

fill(155);

noStroke();

rect(430,0,width,height);

fill(255);

pushMatrix();

// text(“Colour”,450,40);

// text(“Background”,450,220);

// text(“Image”,450,460);

popMatrix();

} void cross(){

pushMatrix();

strokeWeight(crossWeight);

stroke(ROUND);

stroke(R,G,B); //138,148,252

import controlP5.*;

ControlP5 cp5;

//COLOURS

int R = 138;

int G = 148;

int B = 252;

//CROSS

float rotation = random (0,QUARTER_PI);

int crossWeight = 10;

int crossNumber = 0;

int myColor = color(0,0,0);

final int MAX_NUM_CROSS = 30 ;

float[] XPosX = new float[MAX_NUM_CROSS];

float[] XPosY = new float[MAX_NUM_CROSS];

//LINE

int lineWeight = 10;

int lineNumber = 0;

float lineRotate = 2.1;

final int MAX_LINE_ROTATION = 30;

float[] lineRotation = new float[MAX_LINE_ROTATION];

//RECT

int rectWeight = 10;

int rectNumber = 0;

final int MAX_NUM_RECT = 30 ;

float[] RectPosX = new float[MAX_NUM_RECT];

float[] RectPosY = new float[MAX_NUM_RECT];

//QUAD

boolean quadrangle;

float x1 = random (0,430);

float x3 = random (0,430);

float y2 = random (0,600);

float y4 = random (0,600);

//FONT

DropdownList d2;

PFont font[];

//IMAGES

Images images;

void setup(){

size(650,600); //poster size 430,600

background(255);

cp5 = new ControlP5(this);

images = new Images();

for(int b = 0; b < MAX_NUM_CROSS; b++){

XPosX[b] = random (0,450); //Cross Position X

XPosY[b] = random (0,600); //Cross Position Y

}

for(int c = 0; c < MAX_LINE_ROTATION; c++){

lineRotation[c] = random (0,TWO_PI);

//array of rotations

}

for(int d = 0; d < MAX_NUM_RECT; d++){

RectPosX[d] = random (0,430); //Rect Position X

RectPosY[d] = random (0,600); //Rect Position Y

}

for(int i = 0; i < MAX_IMG; i++){

ImgPosX[i] = random (0,430); //Img Position X

ImgPosY[i] = random (0,600); //Img Position Y

}

String fonts[] = loadStrings(“fonts.txt”);

font = new PFont[fonts.length];

for(int f = 0; f < fonts.length; f++){

font[f] = loadFont(fonts[f]);

}

Page 73: Points of Inflection - Process Book

// add a horizontal sliders, the value of this

// slider will be linked

// to variable ‘crossWeight’

cp5.addSlider(“R”).setPosition(450,50).se-

tRange(0,255);

cp5.addSlider(“G”).setPosition(450,70).se-

tRange(0,255);

cp5.addSlider(“B”).setPosition(450,90).se-

tRange(0,255);

cp5.addSlider(“crossNumber”).setPosi-

tion(450,230).setRange(0,30);

cp5.addSlider(“crossWeight”).setPosi-

tion(450,250).setRange(0,30);

cp5.addSlider(“lineNumber”).setPosition(450,270).

setRange(0,30);

cp5.addSlider(“lineWeight”).setPosition(450,290).

setRange(0,20);

cp5.addSlider(“rectNumber”).setPosition(450,310).

setRange(0,10);

cp5.addSlider(“rectWeight”).setPosition(450,330).

setRange(0,20);

cp5.addToggle(“quadrangle”).setPosition(450,350).

setSize(50,10);

d2 = cp5.addDropdownList(“typeface”).setPosi-

tion(450, 180).setSize(100,300);

custo

mize(d2); //custo

mize the second list

d2.setIndex(10);

cp5.addSlider(“imageNumber”).setPosi-

tion(450,470).setRange(0,5);

} void draw(){

background(255);

cross();

line();

rect();

quad();

images.display();

fill(0);

text(“Form”,20,70);

text(“Follows”,20,120);

text(“f(x)”,20,170);

fill(155);

noStroke();

rect(430,0,width,height);

fill(255);

pushMatrix();

// text(“Colour”,450,40);

// text(“Background”,450,220);

// text(“Image”,450,460);

popMatrix();

} void cross(){

pushMatrix();

strokeWeight(crossWeight);

stroke(ROUND);

stroke(R,G,B); //138,148,252

import controlP5.*;

ControlP5 cp5;

//COLOURS

int R = 138;

int G = 148;

int B = 252;

//CROSS

float rotation = random (0,QUARTER_PI);

int crossWeight = 10;

int crossNumber = 0;

int myColor = color(0,0,0);

final int MAX_NUM_CROSS = 30 ;

float[] XPosX = new float[MAX_NUM_CROSS];

float[] XPosY = new float[MAX_NUM_CROSS];

//LINE

int lineWeight = 10;

int lineNumber = 0;

float lineRotate = 2.1;

final int MAX_LINE_ROTATION = 30;

float[] lineRotation = new float[MAX_LINE_ROTATION];

//RECT

int rectWeight = 10;

int rectNumber = 0;

final int MAX_NUM_RECT = 30 ;

float[] RectPosX = new float[MAX_NUM_RECT];

float[] RectPosY = new float[MAX_NUM_RECT];

//QUAD

boolean quadrangle;

float x1 = random (0,430);

float x3 = random (0,430);

float y2 = random (0,600);

float y4 = random (0,600);

//FONT

DropdownList d2;

PFont font[];

//IMAGES

Images images;

void setup(){

size(650,600); //poster size 430,600

background(255);

cp5 = new ControlP5(this);

images = new Images();

for(int b = 0; b < MAX_NUM_CROSS; b++){

XPosX[b] = random (0,450); //Cross Position X

XPosY[b] = random (0,600); //Cross Position Y

}

for(int c = 0; c < MAX_LINE_ROTATION; c++){

lineRotation[c] = random (0,TWO_PI);

//array of rotations

}

for(int d = 0; d < MAX_NUM_RECT; d++){

RectPosX[d] = random (0,430); //Rect Position X

RectPosY[d] = random (0,600); //Rect Position Y

}

for(int i = 0; i < MAX_IMG; i++){

ImgPosX[i] = random (0,430); //Img Position X

ImgPosY[i] = random (0,600); //Img Position Y

}

String fonts[] = loadStrings(“fonts.txt”);

font = new PFont[fonts.length];

for(int f = 0; f < fonts.length; f++){

font[f] = loadFont(fonts[f]);

}

Page 74: Points of Inflection - Process Book

void controlEvent(ControlEvent theEvent) {

// DropdownList is of type ControlGroup

// A controlEvent will be triggered from inside

// the ControlGroup class.

// therefore you need to check the originator

// of the Event with

// if (theEvent.isGroup())

// to avoid an error message by controlP5.

if(theEvent.isGroup()) {

println(“event from group : “+theEvent.get-

Group().getValue()+” from “+theEvent.getGroup());

// then do stuff, in this case: set the

// variable selectedImage to the value

// with the item from the dropdownlist

// (which in this case is either 0 or 1)

String selectedIte

m = theEvent.getGroup().cap-

tionLabel().getText();

if(selectedIte

m.equals(“Apercu”)){

textFont(font[0]);

println(“Apercu”);

}

if(selectedIte

m.equals(“Publico Bold”)){

textFont(font[1]);

println(“Publico”);

}

if(selectedIte

m.equals(“Raisonne DemiBold”)){

textFont(font[2]);

println(“Raisonne”);

}

if(selectedIte

m.equals(“Anony

mous Mono”)){

textFont(font[3],44);

println(“Anony

mous Mono”);

}

if(selectedIte

m.equals(“Knewave”)){

textFont(font[4]);

println(“Knewave”);

}

if(selectedIte

m.equals(“Optima Bold”)){

textFont(font[5]);

println(“Optima Bold”);

}

else if (theEvent.isController()) {

println(“event from controller : “+theEvent.

getController().getValue()+” from “+theEvent.

getController());

}

}

} void slider(float theColor) {

//int intWeight = int (theWeight);

myColor = color(theColor);

//weight = strokeWeight(crossStroke);

} void keyReleased(){

if (key == ‘s’ || key == ‘S’)

saveFrame(“_##.png”);

}

// rotate(rotation);

int new_length = crossNumber;

for(int b = 0; b <new_length; b++) {

line(XPosX[b],XPosY[b]-35,XPosX[b],XPosY[b]+35);

line(XPosX[b]-35,XPosY[b],XPosX[b]+35,XPosY[b]);

}

popMatrix();

} void line(){

pushMatrix();

// float XPosX = random (0,200);

// float XCPosX = constrain (XPosX,0,200);

// float XPosY = random (0,500);

// float XCPosY = constrain (XPosY,0,400);

strokeWeight(lineWeight);

strokeCap(SQUARE);

stroke(R,G,B);

int new_length = lineNumber;

for(int b = 0; b <new_length; b++){

line(XPosX[b],XPosY[b],XPosX[b],XPosY[b]+130);

rotate(lineRotation[b]);

}

popMatrix();

}

void rect(){

pushMatrix();

float XPosX = random (0,400); //Cross Position X

float XPosY = random (0,570); //Cross Position Y

strokeWeight(rectWeight);

noFill();

stroke(R,G,B);

int new_rect = rectNumber;

for(int d = 0; d <new_rect; d++){

rect(RectPosX[d],RectPosY[d],RectPosX[d]+90,

RectPosY[d]+25);

}

popMatrix();

}

void quad(){

if(quadrangle==true) {

fill(R,G,B);

quad(0,y4,x1,0,430,y2,x3,height);

} else {

}

} void custo

mize(DropdownList ddl) {

// a function to custo

mize a DropdownList

ddl.setBackgroundColor(color(190));

ddl.setIte

mHeight(30);

ddl.setBarHeight(20);

ddl.captionLabel().set(“Typeface”);

ddl.captionLabel().style().marginTop = 6;

ddl.captionLabel().style().marginLeft = 3;

ddl.valueLabel().style().marginTop = 3;

ddl.addIte

m(“Apercu”, 1);

ddl.addIte

m(“Publico Bold”, 2);

ddl.addIte

m(“Raisonne DemiBold”, 3);

ddl.addIte

m(“Anony

mous Mono”, 4);

ddl.addIte

m(“Knewave”, 5);

ddl.addIte

m(“Optima Bold”, 6);

ddl.setColorBackground(color(60));

ddl.setColorActive(color(255, 128));

}

Page 75: Points of Inflection - Process Book

void controlEvent(ControlEvent theEvent) {

// DropdownList is of type ControlGroup

// A controlEvent will be triggered from inside

// the ControlGroup class.

// therefore you need to check the originator

// of the Event with

// if (theEvent.isGroup())

// to avoid an error message by controlP5.

if(theEvent.isGroup()) {

println(“event from group : “+theEvent.get-

Group().getValue()+” from “+theEvent.getGroup());

// then do stuff, in this case: set the

// variable selectedImage to the value

// with the item from the dropdownlist

// (which in this case is either 0 or 1)

String selectedIte

m = theEvent.getGroup().cap-

tionLabel().getText();

if(selectedIte

m.equals(“Apercu”)){

textFont(font[0]);

println(“Apercu”);

}

if(selectedIte

m.equals(“Publico Bold”)){

textFont(font[1]);

println(“Publico”);

}

if(selectedIte

m.equals(“Raisonne DemiBold”)){

textFont(font[2]);

println(“Raisonne”);

}

if(selectedIte

m.equals(“Anony

mous Mono”)){

textFont(font[3],44);

println(“Anony

mous Mono”);

}

if(selectedIte

m.equals(“Knewave”)){

textFont(font[4]);

println(“Knewave”);

}

if(selectedIte

m.equals(“Optima Bold”)){

textFont(font[5]);

println(“Optima Bold”);

}

else if (theEvent.isController()) {

println(“event from controller : “+theEvent.

getController().getValue()+” from “+theEvent.

getController());

}

}

} void slider(float theColor) {

//int intWeight = int (theWeight);

myColor = color(theColor);

//weight = strokeWeight(crossStroke);

} void keyReleased(){

if (key == ‘s’ || key == ‘S’)

saveFrame(“_##.png”);

}

// rotate(rotation);

int new_length = crossNumber;

for(int b = 0; b <new_length; b++) {

line(XPosX[b],XPosY[b]-35,XPosX[b],XPosY[b]+35);

line(XPosX[b]-35,XPosY[b],XPosX[b]+35,XPosY[b]);

}

popMatrix();

} void line(){

pushMatrix();

// float XPosX = random (0,200);

// float XCPosX = constrain (XPosX,0,200);

// float XPosY = random (0,500);

// float XCPosY = constrain (XPosY,0,400);

strokeWeight(lineWeight);

strokeCap(SQUARE);

stroke(R,G,B);

int new_length = lineNumber;

for(int b = 0; b <new_length; b++){

line(XPosX[b],XPosY[b],XPosX[b],XPosY[b]+130);

rotate(lineRotation[b]);

}

popMatrix();

}

void rect(){

pushMatrix();

float XPosX = random (0,400); //Cross Position X

float XPosY = random (0,570); //Cross Position Y

strokeWeight(rectWeight);

noFill();

stroke(R,G,B);

int new_rect = rectNumber;

for(int d = 0; d <new_rect; d++){

rect(RectPosX[d],RectPosY[d],RectPosX[d]+90,

RectPosY[d]+25);

}

popMatrix();

}

void quad(){

if(quadrangle==true) {

fill(R,G,B);

quad(0,y4,x1,0,430,y2,x3,height);

} else {

}

} void custo

mize(DropdownList ddl) {

// a function to custo

mize a DropdownList

ddl.setBackgroundColor(color(190));

ddl.setIte

mHeight(30);

ddl.setBarHeight(20);

ddl.captionLabel().set(“Typeface”);

ddl.captionLabel().style().marginTop = 6;

ddl.captionLabel().style().marginLeft = 3;

ddl.valueLabel().style().marginTop = 3;

ddl.addIte

m(“Apercu”, 1);

ddl.addIte

m(“Publico Bold”, 2);

ddl.addIte

m(“Raisonne DemiBold”, 3);

ddl.addIte

m(“Anony

mous Mono”, 4);

ddl.addIte

m(“Knewave”, 5);

ddl.addIte

m(“Optima Bold”, 6);

ddl.setColorBackground(color(60));

ddl.setColorActive(color(255, 128));

}

Page 76: Points of Inflection - Process Book

76

Mickey Mouse © Disney

Page 77: Points of Inflection - Process Book

77

Even though fair use laws make a legal exception to use a copyrighted work for the purposes of commentary, criticism, parody, journalism and so on, the terms of fair use are murky. Fair use sees less precedents in relation to artistic criti-cism than to written criticism for instance. One example is illustrative of this point, in 1968 Milton Glaser and Lee Savage created Mickey Mouse in Vietnam for an event protesting the war in Indochina.1 The one minute film depicts the Disney icon joining the US military, travelling

by boat to Vietnam, and being shot and killed immediately upon arrival. The film can be taken as a criticism of US imperialism or how the horrors of war affect youth. Talk of lawsuit by Disney emerged but was dropped due to the little Disney stood to gain from a lawsuit. This example illustrates how visual criticism is censored by copyright policy. Either through the threat of punishment or artists self censoring their work, representations subject to copyright violations risk not achieving their full critical potential.

graphic design beyond fair use.

1. Galindo, Brian. "A Rare 1968 Anti-War Short 'Mickey Mouse in Vietnam' Has Resurfaced Online."

BuzzFeed. Last modified June 20, 2013. http://www.buzzfeed.com/briangalindo/

rare-1968-anti-war-short-mickey-mouse-in-vietnam-resurfaces.

Page 78: Points of Inflection - Process Book

78

Page 79: Points of Inflection - Process Book

79

“Reach, of course, is something that, as a handle, I

know a thing or two about. Pick me up, pull me

over, place me where you wish. I hold the tools for

you to use. Grab and release. drag and drop. Open

and close. Repeat.”

— Rob Giampietro

I am a Handle

Page 80: Points of Inflection - Process Book

Let us be clear, appropriation as an artistic method has been cemented in the art world for over a century. Let us also be clear that many of appro-priation based artworks were created in violation of past and present copyright laws. For example, Betye Saar’s work The Liberation of Aunt Jemima, which challenged the racism of stereotyped African-American figures in advertising could well have incurred legal action from Quaker Oats. In another case, a group of underground cartoon-ists known as the Air Pirates incurred serious legal punishment from Disney after creating parody comics of Mickey Mouse. The Pirates argued their comics were fair use while Disney alleged copyright infringement. These two cases show the vague-ness of fair use in relation to artistic work, and one could argue that a lack of critical design is one byproduct of this vagueness. Instead of looking to fair use for protection (a term which does not even apply in Canada), let us instead turn to what cannot be protected by copyright law.

section 102 of the United States Copyright Act states “In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system...regardless of the form in which it is described, explained, illustrated,or embodied in such work.” 1 Similarly in section 30.71 of Canada’s Copyright Act. “It is not an infringement of copyright to make a reproduction of a work or other subject-matter if (a) the reproduction forms an essential part of a techno-

logical process; (b) the reproduction’s only purpose is to facilitate a use that is not an infringe-ment of copyright; (c) the reproduction exists only for the duration of the technological process.”2 In effect the principles together can be taken to mean that processes which do not result in a fixed tangible outcome cannot be copyrighted. By using this definition as a framework for a new method of design production, we can create a space away from the constraints of copyright law where we have complete representational freedom.

We can create this new framework of design pro-duction with a tool that suggests its own function. A kinect motion camera, programmed via Processing as the input device for a new piece of design software, creates this aforementioned space of representational freedom. By focusing on design activity over designed outcomes, the activity and labour of the designer is insepa-rable from the designed content. With this tool, design becomes a performance activity witnessed by an audience and practiced in dimensional space. By making the user of the tool unable to save their designs (ie. fix the designs in a tangible form) we suggest an alternative, and potentially more critical, design process.

1. U.S Copyright Office. “Subject Matter and Scope of Copyright.” Copyright Law of the United States of America. Accessed March 3, 2014.

http://www.copyright.gov/title17/92chap1.html#102.

2. Government of Canada. “Temporary Reproductions for Technological Processes.” Justice Laws Website.

http://laws-lois.justice.gc.ca/eng/acts/C-42/page-31.html#docCont.

Reflect Nine

Page 81: Points of Inflection - Process Book

81

Page 82: Points of Inflection - Process Book

82

Page 83: Points of Inflection - Process Book
Page 84: Points of Inflection - Process Book

84

Page 85: Points of Inflection - Process Book

85

Page 86: Points of Inflection - Process Book

86

Page 87: Points of Inflection - Process Book

87

ProcessPro · cess

noun

1. a systematic series of actions directed to some end.

2. a continuous action, operation, or series of changes

taking place in a definite manner.

3. Law. a. the summons, mandate, or writ by which a

defendant or thing is brought before court for litigation.

b. the course of the proceedings in an action at law.

4. Biology, Anatomy. a natural outgrowth,

projection, or appendage.

5. the action of going forward or on.

6. the condition of being carried on.

7. course or lapse, as of time.

Page 88: Points of Inflection - Process Book

88

Page 89: Points of Inflection - Process Book

89

section 102 of the American Copyright Act states “In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system...regardless of the form in which it is described, explained, illus-trated, or embodied in such work.”1 Meanwhile, in section 30.71 of Canada’s Copyright Act. “It is not an infringement of copyright to make a reproduc-tion of a work or other subject-matter if ... the

reproduction forms an essential part of a techno-logical process; ... the reproduction exists only for the duration of the technological process.”2 By treating design as a process that requires active participation in order to achieve a critical dimen-sion, we suggest a framework for a new method of design production. Away from the constraints of copyright law, we have representational freedom for design to achieve its critical potential.

temporary reproductions.

1. U.S Copyright Office. “Subject Matter and Scope of Copyright.” Copyright Law of the United States of America. Accessed March 3, 2014.

http://www.copyright.gov/title17/92chap1.html#102.

2. Government of Canada. “Temporary Reproductions for Technological Processes.” Justice Laws Website.

http://laws-lois.justice.gc.ca/eng/acts/C-42/page-31.html#docCont.

Page 90: Points of Inflection - Process Book

90

o¶Praxis

Michael Hardt & Antonio Negri. Empire.

Jonatan Habib Engqvist et al. Work Work Work A Reader on Art and Labour.

Wal

ter

Ben

jam

in.

Aut

hor

as P

rod

ucer

.

McKenzie Wark. A Hacker Manifesto.

@E

Mau

rizi

o L

azza

rato

. Im

mat

eria

l Lab

or.&

Page 91: Points of Inflection - Process Book

91

Greg Borenstein. Making Things See: 3D vision with Kinect, Processing, Arduino, and MakerBot.

KLiterature Review Three

Practice

Rob Giampietro. I Am A Handle.

Law

renc

e Le

ssig

. T

he F

utur

e of

Idea

s†Andrew Blauvelt and Ellen Lupton. Graphic Design: Now in Production.

$

Page 92: Points of Inflection - Process Book

My

thes

is h

as b

een

an e

xam

inat

ion

of g

rap

hic

des

ign

as a

mo

de

of p

rod

uct

ion

and

its

rela

tio

ns

to th

ree

sub

ject

s: c

op

yrig

ht,

rep

rese

nta

tio

n an

d

own

ersh

ip. I

hav

e in

vest

igat

ed t

hes

e th

ree

to

pic

s th

rou

gh t

he

acti

vity

of g

rap

hic

des

ign

pro

du

ctio

n. T

he fi

rst s

ubje

ct, c

opyr

ight

, was

the

cata

lyst

for

mos

t of m

y fo

rmal

wor

k th

is y

ear.

A

s a

pro

per

ty r

elat

ion

, co

pyr

igh

t is

un

iqu

e

bec

ause

it is

trea

ted

as

a d

efau

lt. T

he

fact

that

co

pyri

ght i

s ov

erlo

oked

or t

aken

for g

rant

ed

is e

xact

ly w

hy it

dem

ands

scr

utin

y o

r at

ten

tio

n.

Th

e re

lati

on

bet

wee

n d

esig

ner

an

d w

ork

is

typ

ical

ly o

ne

of (a

t lea

st te

mp

ora

ry)

own

ersh

ip

or

excl

usi

vity

. Th

e tr

eatm

ent o

f art

isti

c w

ork

as

pro

per

ty c

reat

es th

e co

nditi

ons

for i

ntel

lect

ual

prop

erty

con

flict

s, w

here

in a

utho

rs a

nd in

stitu

tions

ch

alle

nge

on

e an

oth

er o

ver

infr

inge

men

ts

or

imp

rop

er u

se o

f th

eir

pro

per

ty. T

he

con

se-

qu

ence

of t

hes

e le

gal c

on

flict

s o

r th

e th

reat

of

lega

l pu

nis

hm

ent i

s a

“per

mis

sio

n cu

ltu

re”

wh

ere

app

rova

l an

d e

xplic

it le

ases

are

req

uir

ed

to m

ake

any

sort

of d

eriv

ativ

e w

ork

.1 Imp

licit

in

the

dem

and

s of

a p

erm

issi

on

cult

ure

is th

e co

nd

i-ti

on

that

if c

reat

ors

can

not

get

the

righ

ts to

use

ex

isti

ng

wo

rk, t

hey

ris

k p

un

ish

men

t fo

r w

ork

s of

vis

ual

cri

tici

sm. M

y in

ten

t is

for

my

form

al

ou

tco

mes

to h

igh

ligh

t p

rob

lem

s w

ith

co

pyr

igh

t,

per

mis

sio

n cu

ltu

re a

nd

des

ign

pra

ctic

e w

hile

si

mu

ltan

eou

sly

pro

vid

ing

an a

ltern

ativ

e. C

opyr

ight

is th

e d

efau

lt or

gani

zatio

n of

inte

llect

ual

pro

per

ty. I

n 17

10, t

he S

tatu

te o

f An

ne

was

the

fir

st s

tatu

te o

f co

pyr

igh

t in

Gre

at B

rita

in to

ves

t co

pyri

ght i

n th

e au

thor

rath

er th

an th

e pu

blis

her.

2 T

his

mov

ed p

ublis

hing

pow

er fr

om a

n ex

clus

ive

guild

of p

rint

ers

to th

e au

thor

s an

d p

rint

ers

licen

sed

to p

ublis

h th

e w

ork.

To

day

the

situ

atio

n is

mo

re c

om

ple

x th

an a

n ar

gum

ent b

etw

een

auth

ors

an

d p

ub

lish

ers.

Ou

r co

nte

mp

ora

ry c

opy-

ri

ght l

aws

app

ly to

text

s, m

usic

, fine

art

, gra

ph-

ics,

scu

lptu

re, p

erfo

rman

ce, d

ance

, arc

hite

ctur

al

wo

rks

and

so

on

. Th

e in

crea

sed

sco

pe

of c

op

y-ri

ght c

omes

with

new

con

flict

s, w

hich

incl

ude

co

nflic

ts b

etw

een

the

auth

or a

nd th

e w

ork

itse

lf.

The

thre

at o

f co

pyr

igh

t in

frin

gem

ent e

rect

s b

arri

-er

s ar

ou

nd

th

e u

se o

f co

pyr

igh

ted

co

nte

nt.

Co

n-fli

cts

bet

wee

n th

e au

tho

r an

d th

eir

wo

rk e

mer

ge

wh

en a

uth

ors

sel

f cen

sor

them

selv

es fo

r fe

ar o

f in

telle

ctu

al p

rop

erty

infr

inge

men

t.

The

res

olut

ion

of in

telle

ctua

l pro

per

ty c

onfli

cts

wit

hin

the

lega

l sys

tem

is b

ased

on

the

liber

al

conc

epti

on

s of

pro

per

ty a

nd

free

do

m.3

In

chal

leng

ing

copy

righ

t we

also

cha

lleng

e th

e lib

eral

co

ncep

tion

of fr

eed

om.4

Sim

ply

put

, the

lib

eral

notio

n of

free

dom

is o

ne w

here

in e

ach

ind

ivid

ual

can

act a

s th

ey p

leas

e so

lon

g as

they

do

not

h

arm

oth

ers

dir

ectl

y. M

eanw

hile

the

liber

al n

otio

n of

pro

per

ty s

ugge

sts

that

if w

e in

vest

our

lab

our

into

so

met

hin

g, th

e o

utc

om

e b

eco

mes

ou

r p

rop

-er

ty. C

om

bin

ing

thes

e tw

o n

otio

ns

give

s u

s a

p

ictu

re o

f co

pyr

igh

t as

ou

tlin

ed b

y it

s p

rop

on

ents

. C

reat

ors

have

free

dom

to d

o w

ith th

eir

wor

k as

th

ey p

leas

e an

d c

op

yrig

ht i

s th

ere

to p

rovi

de

lega

l p

rote

ctio

n an

d m

onet

ary

ince

ntiv

e. W

ith

copy

-ri

ght,

ind

ivid

ual

rat

ion

alit

y (o

r se

lf in

tere

st)

lead

s to

co

llect

ive

irra

tio

nal

ity.

Ind

ivid

ual

s’ h

avin

g

lega

l and

mon

etar

y pr

otec

tion

of th

eir w

ork

is ju

sti-

fiabl

e, b

ut i

t can

lead

to d

ange

rou

s sc

enar

ios

fo

r o

ur

crea

tive

cu

ltu

re.

On

e d

ange

r cu

rren

tly

thre

aten

ing

Can

ada’

s

pu

blic

do

mai

n is

th

e p

ote

nti

al 2

0-y

ear

incr

ease

to

ou

r co

pyr

igh

t ter

m. C

anad

a’s

invo

lvem

ent

in t

rad

e n

ego

tiat

ion

s th

rou

gh

th

e Tr

ans

Pac

ific

Par

tner

ship

(T

PP

) co

mes

with

pre

ssur

e fr

om

oth

er n

atio

ns

to in

crea

se C

anad

a’s

cop

yrig

ht

term

to m

atch

thei

r ow

n.5 In

the

Uni

ted

Sta

tes,

th

e 19

97 C

opyr

ight

Ter

m E

xten

sion

Act

, der

isiv

ely

know

n as

the

“Mic

key

Mou

se P

rote

ctio

n A

ct”,

ex

ten

ded

the

Am

eric

an c

op

yrig

ht t

erm

to li

fe

plu

s 70

yea

rs w

ith

no

new

wo

rks

ente

rin

g th

e p

ublic

dom

ain

from

19

97 to

20

17.6

In m

y d

ata

visu

aliz

atio

n p

oste

r, F

orfe

iting

Can

ada’

s P

ublic

D

omai

n, I

used

line

s to

map

a ti

mel

ine

of C

anad

a’s

curr

ent c

opyr

ight

term

(lif

e p

lus

50

yea

rs)

and

th

e p

ote

nti

al in

crea

sed

ter

m (

life

plu

s 70

yea

rs).

T

he

visu

aliz

atio

n h

igh

ligh

ts t

he

po

ten

tial

Th

esis

Ess

ay

Page 93: Points of Inflection - Process Book

93

20-y

ear g

ap, a

nd

the

crea

tors

we

wo

uld

lose

ac

cess

toin

clu

din

g b

ut

no

t lim

ited

to:

Gab

riel

le

Roy

, Mar

shal

l McL

uhan

, Mar

cel D

ucha

mp,

Ro-

la

nd B

arth

es, V

ladi

mir

Nab

okov

, Han

nah

Are

ndt a

nd

othe

rs. O

ne

of t

he

pri

mar

y ar

gu

men

ts u

sed

b

y p

rop

on

ents

of c

op

yrig

ht

is t

hat

inte

llect

ual

p

rop

erty

giv

es c

reat

ors

ince

nti

ve to

pro

du

ce

bec

ause

of t

he

mo

net

ary

valu

e of

thei

r IP

. Wit

ho

ut

this

ince

nti

ve, c

reat

ors

wo

uld

hav

e le

ss r

easo

n to

cre

ate.

The

per

ple

xing

con

seq

uenc

e cr

eate

d is

th

at w

ith

the

exte

nsi

on

of th

e co

pyr

igh

t ter

m th

e w

orks

of d

ead

crea

tors

will

req

uire

an

add

itio

nal

2

0 y

ears

bef

ore

pas

sin

g in

to th

e p

ub

lic d

omai

n.

Thu

s ac

cord

ing

to th

e op

erat

ing

logi

c

of c

op

yrig

ht,

dea

d c

reat

ors

are

ince

nti

vise

d t

o

crea

te a

dd

itio

nal

wo

rks.

If th

e p

rod

ucts

of o

ur la

bou

r b

ecom

e ou

r p

rop

erty

, th

en th

e cu

rren

t und

erst

andi

ng o

f art

istic

lab

our

(wor

king

on

soft

war

e on

com

put

ers)

cre

ates

a n

ew

pro

per

ty re

latio

n. T

his

mea

ns

that

, a s

erie

s of

m

ou

se m

ovem

ents

an

d k

eyb

oar

d p

ress

es r

esu

lts

in p

rop

erty

. In

my

Pu

shin

g P

ixel

s ex

per

imen

t,

I cre

ated

a s

oftw

are

sket

ch w

her

e u

sers

co

uld

m

ove

aro

un

d t

hre

e ex

isti

ng

elem

ents

(ti

tle,

text

an

d im

age)

un

til t

hey

wer

e sa

tisfi

ed w

ith

th

e co

mp

osi

tio

n. I

to

ok

the

exer

cise

as

an o

pp

or-

tu

nit

y to

cre

ate

an in

dex

of m

ou

se a

ctiv

ity

and

a

map

of g

rap

hic

des

ign

lab

our.

If w

e w

ere

to

inte

rpre

t gra

ph

ic d

esig

n p

rod

uct

ion

fro

m a

Mar

x-is

t per

spec

tive

, we

wo

uld

defi

ne

it a

s a

form

of

imm

ater

ial l

abou

r.7 Imm

ater

ial l

abou

r co

nsti

tute

s a

mod

e of

pro

duc

tion

whe

rein

the

ou

tco

me

of

lab

ou

r ca

nn

ot b

e ex

hau

sted

, bu

t co

nver

sely

gai

ns

pre

vale

nce

wit

h in

crea

sed

co

nsu

mp

tio

n (i

.e.

reco

gnit

ion

or

view

ersh

ip).

We

can

defi

ne

man

y m

od

es o

f cu

ltu

ral p

rod

uct

ion

as

form

s o

f im

ma-

teri

al la

bo

ur

incl

ud

ing

vid

eo e

dit

ing,

fash

ion

d

esig

n, e

tc. T

he

uniq

ue

and

not

ewor

thy

pro

per

ty

of th

is fo

rm o

f lab

our

is th

at th

e w

orke

r in

clud

es

his

or

her

ow

n su

bje

ctiv

ity

and

cre

ativ

ity

into

the

end

pro

du

ct. T

he

wo

rker

’s a

esth

etic

jud

gem

ents

b

eco

me

par

t of t

he

com

mo

dit

ies

pro

du

ced

. C

op

yrig

ht c

aptu

res

this

su

bje

ctiv

ity

and

mak

es

the

outc

ome

pro

per

ty, a

utom

atic

ally

whe

n it

is

fixe

d in

to a

tan

gib

le m

edia

. Th

e co

nce

pt

of o

wn

-er

ship

in r

elat

ion

to g

rap

hic

des

ign

is p

erp

lexi

ng

wh

en w

e co

nsi

der

th

at g

rap

hic

des

ign

ers

wo

rk

pri

mar

ily w

ith

exis

tin

g co

nte

nt.

8 T

he

des

ign

er

is re

spon

sibl

e fo

r usi

ng th

e ph

otog

raph

y, ty

pef

aces

, an

d te

xt c

reat

ed b

y ot

hers

and

cla

imin

g th

at th

ey

own

th

e re

arra

nge

d o

utc

om

e. T

her

efo

re, w

e ca

n

bet

ter

situ

ate

gra

ph

ic d

esig

n a

s an

act

ivit

y of

tr

ansl

atio

n r

ath

er t

han

au

tho

rsh

ip s

ui g

ener

is.9

To

furt

her e

xam

ine

the

rela

tions

hip

of d

esig

ners

w

ork

ing

wit

h e

xist

ing

con

ten

t I c

reat

ed m

ult

iple

it

erat

ion

s of

an

alg

ori

thm

ic p

ost

er g

ener

ator

. U

sers

co

uld

inp

ut t

ext,

sel

ect t

ypef

aces

, ch

oos

e b

ackg

roun

d el

emen

ts a

nd

incl

ud

e im

ager

y. T

he

cave

at w

as t

hat

use

rs c

ou

ld n

ot i

nte

ract

wit

h

the

po

ster

dir

ectl

y, b

ut c

ou

ld o

nly

mov

e ar

ou

nd

a

seri

es o

f slid

ers

to c

ust

om

ize

the

ou

tco

mes

. T

he u

ser’

s d

epen

den

ce o

n th

e co

nten

t and

inte

r-fa

ce d

efin

ed b

y th

e so

ftw

are

calls

att

enti

on

to th

e d

esig

ner

’s r

elia

nce

on

exis

tin

g co

nte

nt t

o m

ake

u

p th

eir

own

inte

llect

ual

pro

per

ty. A

s p

revi

ou

sly

men

tion

ed, i

nd

ivid

uals

sup

por

tin

g co

pyri

ght c

re-

ates

a p

erm

issi

on

cu

ltu

re in

wh

ich

rep

rese

nta

-tio

ns m

ust n

avig

ate.

Alt

houg

h ap

pro

pri

atio

n h

as

bee

n ca

no

niz

ed w

ith

in th

e ar

t wo

rld

for

over

a

cent

ury,

we

shou

ld a

ckno

wle

dge

the

fact

that

thes

e ap

pro

pri

atio

n b

ased

art

wo

rks

wer

e lik

ely

crea

ted

in

vio

lati

on

of p

ast a

nd

pre

sent

cop

yrig

ht la

ws.

Ev

en th

ough

fair

use

law

s m

ake

a le

gal e

xcep

-ti

on to

use

a c

opyr

ight

ed w

ork

for t

he p

urp

oses

of

criti

cism

, com

men

tary

, sat

ire,

jour

nalis

m a

nd

so

on

, th

e te

rms

of fa

ir u

se a

re u

ncl

ear

in th

e U

nite

d

Sta

tes,

and

mor

e lim

iting

in C

anad

a. O

ne c

ould

ar

gue

that

per

mis

sio

n cu

ltu

re a

cts

as a

fett

er o

n ar

tistic

cri

ticis

m o

r d

esig

ns

of a

cri

tica

l nat

ure

. A

n e

xam

ple

of v

isu

al c

riti

cism

bei

ng

cen

sore

d

by

cop

yrig

ht l

aw c

an b

e fo

un

d in

Lee

Sav

age

and

M

ilto

n G

lase

r’s

Mic

key

Mou

se in

Vie

tnam

. A o

ne-

min

ute

sh

ort

cri

tici

zin

g U

S im

per

ialis

m

and

the

war

in In

doch

ina,

Mic

key

Mou

se in

Vie

tnam

d

epic

ts th

e D

isn

ey s

tar

trav

ellin

g b

y b

oat

to

Vie

tnam

, an

d b

ein

g sh

ot a

nd

kill

ed im

med

iate

ly

upon

arr

ival

. The

film

was

thre

aten

ed b

y la

wsu

it fr

om

Dis

ney

, bu

t th

e n

otio

n w

as q

uic

kly

dro

pp

ed

as n

o m

on

ey w

as m

ade

fro

m th

e fil

m a

nd

the

com

pan

y d

id n

ot

wan

t to

tak

e a

po

litic

al

po

siti

on

on

th

e co

nfl

ict.

Th

rou

gh th

e th

reat

of

pu

nis

hm

ent a

nd

art

ists

sel

f-ce

nso

rin

g th

eir

wo

rk,

rep

rese

nta

tio

ns

sub

ject

to c

op

yrig

ht i

nfr

inge

-m

ent r

isk

not

ach

ievi

ng

thei

r fu

ll cr

itic

al p

oten

tial

. H

ow c

an g

rap

hic

des

ign

nav

igat

e to

war

ds

a

mo

re c

riti

cal s

et o

f rel

atio

ns?

Page 94: Points of Inflection - Process Book

Th

is q

ues

tio

n w

as a

co

nce

rn o

f Fra

nkf

urt

sch

oo

l th

eori

st W

alte

r B

enja

min

. In

his

ess

ay A

utho

r

as P

rodu

cer B

enja

min

rem

arks

that

in o

rder

for

ar

t fo

rms

to a

chie

ve a

uto

no

my

agai

nst

“th

e b

ruta

l het

ero

no

mie

s of

eco

no

mic

ch

aos”

art

ists

m

ust

co

ntr

ol t

he

too

ls o

f cre

ativ

e p

rod

uct

ion

.10

Giv

en th

e cu

rren

t co

nd

itio

n of

des

ign

pra

ctic

e,

this

mea

ns

that

th

e d

esig

ner

mu

st g

ain

co

ntr

ol

over

th

e p

rim

ary

too

l of d

esig

n p

rod

uct

ion

, th

e co

mp

ute

r. If

the

pri

mar

y to

ol o

f des

ign

pro

du

c-ti

on

is th

e co

mp

ute

r, th

en d

esig

ner

s m

ust

ta

ke c

on

tro

l of d

esig

n s

oftw

are

thro

ugh

co

din

g p

ract

ices

to a

chie

ve a

mo

re c

riti

cal d

imen

sio

n w

ith

in th

eir

dis

cip

line.

Th

e fin

al c

om

po

nen

t of

my

thes

is p

roje

ct is

a p

iece

of d

esig

n so

ftw

are

crea

ted

in P

roce

ssin

g th

at u

ses

a K

inec

t mot

ion

cam

era.

Th

e to

ol a

llow

s p

arti

cip

ants

to

des

ign

us

ing

gest

ure.

Use

rs m

ove

arou

nd t

ype

and

imag

e u

sin

g th

eir

han

ds,

dra

w li

nes

by

ou

tstr

etch

ing

thei

r ar

ms,

an

d s

o o

n. A

pix

elat

ed r

epre

sen

tati

on

of th

e us

er is

incl

ud

ed in

the

scen

e, m

akin

g th

e la

bo

ur

of t

he

des

ign

er e

xplic

itly

par

t of t

he

too

l’s

fun

ctio

n. M

y in

ten

t was

to m

ake

des

ign

con

ten

t an

d d

esig

n a

ctiv

ity

visu

ally

inex

tric

able

. Th

e

des

ign

of th

e to

ol i

tsel

f is

bu

ilt to

su

gge

st a

sp

ecifi

c w

ay o

f in

tera

ctin

g w

ith

it. A

s an

thro

po

lo-

gist

Tim

othy

Tay

lor

rem

arks

, “T

he e

xist

ence

of o

b-

ject

s, s

uch

as

sau

cep

ans,

no

t ju

st a

llow

s ac

tio

ns

bu

t su

gge

sts

them

. Th

e ab

ility

of o

bje

cts

to s

ug-

gest

thin

gs th

is w

ay h

as a

llow

ed th

e de

velo

pm

ent

of s

pec

ial f

eatu

res

of o

bje

cts

and

sp

ecia

l typ

es o

f o

bje

cts,

wh

ere

the

fun

ctio

n is

mo

re

to s

ug

gest

th

an t

o d

eliv

er.”

11 W

ith

my

des

ign

soft

war

e, th

e su

gge

sted

fun

ctio

n is

on

e of

p

urp

ose

ful a

nd

inte

nti

on

al c

op

yrig

ht

vio

lati

on

s.

sect

ion

30.

71 o

f Can

ada’

s C

opyr

ight

Act

sta

tes

“It i

s n

ot a

n in

frin

gem

ent o

f co

pyr

igh

t to

mak

e a

re

pro

duc

tion

of a

wor

k or

oth

er s

ubje

ct-m

atte

r if…

the

rep

rod

uct

ion

form

s an

ess

enti

al p

art

of a

te

chn

olo

gica

l pro

cess

,” a

nd

“…

the

rep

rod

uct

ion

exis

ts o

nly

for

the

du

rati

on

of t

he

tech

no

logi

cal

pro

cess

.”12

In s

ho

rt p

roce

sses

th

at d

o n

ot r

esu

lt

in a

fixe

d ta

ngib

le o

utco

me

cann

ot b

e co

pyri

ghte

d.

Usi

ng

this

defi

nit

ion

as a

fram

ewo

rk fo

r a

new

m

etho

d of

des

ign

pro

duc

tion

wit

hin

my

soft

war

e,

we

sug

gest

th

e u

ser

vio

late

co

pyr

igh

t b

y w

ork

ing

with

in a

sp

ace

of re

pre

sent

atio

nal f

reed

om.

If w

e tr

eat d

esig

n as

an

acti

ve p

roce

ss in

stea

d o

f as

a s

erie

s of

des

igne

d ou

tcom

es, w

e ch

alle

nge

cop

yrig

ht

and

cre

ate

a sp

ace

of r

epre

sen

tati

on

al

free

dom

aw

ay fr

om th

e d

eman

ds

of p

erm

issi

on

cult

ure

. My

inte

nt i

s fo

r m

y th

esis

to m

ake

evid

ent

pro

ble

ms

of r

epre

sen

tati

on

, ow

ner

ship

an

d

cop

yrig

ht

as t

hey

inte

rsec

t w

ith

des

ign

pra

ctic

e.

Sug

gest

ing

an a

ltern

ativ

e d

esig

n to

ol c

omes

wit

h th

e su

gge

stio

n o

f an

alt

ern

ativ

e d

esig

n p

ract

ice,

a

mo

re s

elf-

refl

ecti

ve a

nd

cri

tica

l dis

cip

line

o

pen

to n

ew p

ossi

bili

ties

.

1. L

essi

g, L

awre

nce

. Th

e F

utu

re o

f Id

eas.

New

Yor

k, U

S: V

inta

ge. 2

00

2.

2. U

niv

ersi

ty o

f Cam

bri

dge

. “St

atu

te o

f An

ne,

Lon

don

(171

0).”

Pri

mar

y So

urc

es o

n C

opyr

igh

t. A

cces

sed

Ap

ril 3

, 20

14.

htt

p://

cop

y.la

w.c

am.a

c.u

k/ca

m/t

ool

s/re

qu

est/

show

Rec

ord

.

ph

p?i

d=r

ecor

d_u

k_1

710

.

3. L

ock

e, Jo

hn

. Sec

ond

Tre

atis

e o

f Gov

ern

men

t.

Cam

bri

dge

: Hac

kett

, 19

80. 2

5.

4. S

inge

r, P

eter

. Mar

x: A

Ver

y Sh

ort I

ntr

od

uct

ion

.

New

Yor

k, U

S: O

xfo

rd P

aper

bac

ks.

6. L

essi

g, L

awre

nce

. Th

e F

utu

re o

f Id

eas.

New

Yor

k, U

S: V

inta

ge. 2

00

2.

7. L

azza

rato

, Mau

rizi

o. “

Imm

ater

ial L

abor

” R

adic

al T

hou

ght

In It

alty

: A

Po

ten

tial

Pol

itic

s. M

inn

eso

ta: U

niv

Of M

inn

eso

ta

Pre

ss. 2

00

6. A

cces

sed

Oct

11

2013

.

htt

p://

ww

w.e

-flu

x.co

m/w

p-c

onte

nt/

up

load

s/20

13/0

5/2.

-Mau

rizi

o-L

azza

rato

-Im

mat

eria

l-Lab

or.p

df

8. B

lau

velt

, An

dre

w. “

2011

To

ol.”

In

Gra

ph

ic D

esig

n: N

ow in

Pro

du

ctio

n, e

dit

ed b

y A

nd

rew

Bla

uve

lt a

nd

Elle

n L

up

ton

, 23-

30.

Min

nea

pol

is, U

S: W

alke

r A

rt C

ente

r, 2

011

.

9. R

ock

, Mic

hae

l. M

ult

iple

Sig

nat

ure

s: O

n D

esig

ner

s, A

uth

ors,

Rea

der

s an

d U

sers

. Hon

g K

ong:

Riz

zoli

, 20

13.

10. B

enja

min

, Wal

ter.

Au

thor

as

Pro

du

cer.

New

Lef

t Rev

iew

. 19

70. A

cces

sed

Ap

ril 2

,

htt

p://

yale

un

ion

.org

/wp

-con

ten

t/u

plo

ads/

2013

/12/

Wal

ter_

Ben

jam

in_-

_Th

e_A

uth

or_

as_P

rod

uce

r.p

df

11. G

iam

pie

tro,

Ro

b. “

I Am

a H

and

le.”

Lin

ed &

Un

lin

ed.

Acc

esse

d A

pri

l 3, 2

014

.

htt

p://

blo

g.li

ned

and

un

lin

ed.c

om/p

ost

/373

415

029

76/

i-am

-a-h

and

le.

12. G

over

nm

ent o

f Can

ada.

“T

emp

orar

y R

epro

du

ctio

ns

for

Tec

hn

olo

gica

l Pro

cess

es.”

Just

ice

Law

s W

ebsi

te.

htt

p://

law

s-lo

is.ju

stic

e.gc

.ca/

eng/

acts

/C-4

2/p

age-

31.h

tml#

doc

Con

t

Page 95: Points of Inflection - Process Book

95

Page 96: Points of Inflection - Process Book

96

Page 97: Points of Inflection - Process Book

97

Page 98: Points of Inflection - Process Book

98

fillColor = strokeColor = color(255);

} void setThreshold(int newThreshold){

threshold = newThreshold; }

void setMaxPoints(int newMaxPoints){

maxPoints = newMaxPoints; }

void setColor(float red, float blue, float

green){

fillColor = strokeColor = color(red,blue,green);

} //Checks to see if the point falls within the

//bounds of our Hotpoint box

boolean check(PVector point) {

boolean result = false;

if(point.x > center.x - size/2 && point.x <

center.x + size/2) {

if(point.y > center.y - size/2 && point.y <

center.y + size/2) {

if(point.z > center.z - size/2 && point.z <

center.z + size/2) {

result = true;

pointsIncluded++;

}

}

}

//Result the result as a true false statment

return result;

}

void draw(){

pushMatrix();

translate(center.x, center.y, center.z);

fill(red(fillColor), blue(fillColor),

green(fillColor), 255 * percentIncluded());

fill(red(strokeColor), blue(strokeColor),

green(strokeColor),255);

stroke(0);

box(size);

popMatrix();

}

float percentIncluded() {

return map(pointsIncluded, 0, maxPoints, 0, 1);

}

boolean currentlyHit() {

return(pointsIncluded > threshold); }

boolean isHit() {

return currentlyHit() && !wasJustHit; }

void clear() {

wasJustHit = currentlyHit();

pointsIncluded = 0;

}

}

//Declare our hotpoint objects

Hotpoint lineTrigger;

Hotpoint imgTrigger;

Hotpoint rectTrigger;

...

void setup()

{ ...

imgTrigger = new Hotpoint(700, 600, 1700, 200);

lineTrigger = new Hotpoint(700, 300, 1700, 200);

rectTrigger = new Hotpoint(700, 0, 1700, 200);

...

} void draw()

{ ...

//Check the user interface trigger with the real

//world point

lineTrigger.check(realWorldPoint);

imgTrigger.check(realWorldPoint);

rectTrigger.check(realWorldPoint);

...

//If a UI trigger is hit, change the true/false

//state

ments accordingly

if (lineTrigger.isHit()) {

drawLine = true;

drawImg = false;

drawRect = false;

}

if (imgTrigger.isHit()) {

drawImg = true;

drawLine = false;

drawRect = false;

}

if (rectTrigger.isHit()) {

drawRect = true;

drawImg = false;

drawLine = false;

}

lineTrigger.draw();

lineTrigger.clear();

imgTrigger.draw();

imgTrigger.clear();

rectTrigger.draw();

rectTrigger.clear();

...

class Hotpoint {

//The user interface ‘hotpoints’ class

PVector center;

color fillColor;

color strokeColor;

int size;

int pointsIncluded;

int maxPoints;

boolean wasJustHit;

int threshold;

Hotpoint(float centerX, float centerY, float centerZ,

int boxSize) {

center = new PVector(centerX, centerY, centerZ);

size = boxSize;

pointsIncluded = 0;

maxPoints = 1000;

threshold = 0;

//fillColor = strokeColor =

//color(random(255), random(255), random(255));

Page 99: Points of Inflection - Process Book

99

fillColor = strokeColor = color(255);

} void setThreshold(int newThreshold){

threshold = newThreshold; }

void setMaxPoints(int newMaxPoints){

maxPoints = newMaxPoints; }

void setColor(float red, float blue, float

green){

fillColor = strokeColor = color(red,blue,green);

} //Checks to see if the point falls within the

//bounds of our Hotpoint box

boolean check(PVector point) {

boolean result = false;

if(point.x > center.x - size/2 && point.x <

center.x + size/2) {

if(point.y > center.y - size/2 && point.y <

center.y + size/2) {

if(point.z > center.z - size/2 && point.z <

center.z + size/2) {

result = true;

pointsIncluded++;

}

}

}

//Result the result as a true false statment

return result;

}

void draw(){

pushMatrix();

translate(center.x, center.y, center.z);

fill(red(fillColor), blue(fillColor),

green(fillColor), 255 * percentIncluded());

fill(red(strokeColor), blue(strokeColor),

green(strokeColor),255);

stroke(0);

box(size);

popMatrix();

}

float percentIncluded() {

return map(pointsIncluded, 0, maxPoints, 0, 1);

}

boolean currentlyHit() {

return(pointsIncluded > threshold); }

boolean isHit() {

return currentlyHit() && !wasJustHit; }

void clear() {

wasJustHit = currentlyHit();

pointsIncluded = 0;

}

}

//Declare our hotpoint objects

Hotpoint lineTrigger;

Hotpoint imgTrigger;

Hotpoint rectTrigger;

...

void setup()

{ ...

imgTrigger = new Hotpoint(700, 600, 1700, 200);

lineTrigger = new Hotpoint(700, 300, 1700, 200);

rectTrigger = new Hotpoint(700, 0, 1700, 200);

...

} void draw()

{ ...

//Check the user interface trigger with the real

//world point

lineTrigger.check(realWorldPoint);

imgTrigger.check(realWorldPoint);

rectTrigger.check(realWorldPoint);

...

//If a UI trigger is hit, change the true/false

//state

ments accordingly

if (lineTrigger.isHit()) {

drawLine = true;

drawImg = false;

drawRect = false;

}

if (imgTrigger.isHit()) {

drawImg = true;

drawLine = false;

drawRect = false;

}

if (rectTrigger.isHit()) {

drawRect = true;

drawImg = false;

drawLine = false;

}

lineTrigger.draw();

lineTrigger.clear();

imgTrigger.draw();

imgTrigger.clear();

rectTrigger.draw();

rectTrigger.clear();

...

class Hotpoint {

//The user interface ‘hotpoints’ class

PVector center;

color fillColor;

color strokeColor;

int size;

int pointsIncluded;

int maxPoints;

boolean wasJustHit;

int threshold;

Hotpoint(float centerX, float centerY, float centerZ,

int boxSize) {

center = new PVector(centerX, centerY, centerZ);

size = boxSize;

pointsIncluded = 0;

maxPoints = 1000;

threshold = 0;

//fillColor = strokeColor =

//color(random(255), random(255), random(255));

User interface detection works by delineating boxes

in three dimensional space. Each time the draw()

function is run, the program checks the location of

the points within the point cloud and whether or not

any of them fall within the bounds of the box.

Once the user's hand enters within the x, y and z

space of the box, an event is triggered.

Inside the Box

Page 100: Points of Inflection - Process Book

100

The point cloud uses the Kinect's ability to see

depth values to draw a scene of three dimensional

points. Each point is a vector with its own x, y

and z position in Cartesian space. To ease loading

time, the program does not draw every point

picked up by the camera, instead it draws points

at specific intervals each time draw() is run. The

interesting function of the point cloud is that the

scene can be rotated within the program to

get a better impression of what the camera sees.

...void draw(){...//Create arrays of depth and user informationint[] depthMap = context.depthMap();int[] userMap = context.userMap();PVector[] depthPoints = context.depthMapReal-World(); //To speed up the drawing, draw every X pointint steps = 4; int index;

//Initialize variable for storing the total points we find inside boxint depthPointsInBox = 0;

Turning Points

Page 101: Points of Inflection - Process Book

101

//Draw the pointcloudbeginShape(POINTS);for (int y=0;y < context.depthHeight();y+=steps){ for (int x=0;x < context.depthWidth();x+=steps) { index = x + y * context.depthWidth();

PVector realWorldPoint = depthPoints[x];

if (depthMap[index] > 0) { //Draw the projected point realWorldPoint = context.depthMapRealWorld()[index]; if (userMap[index] == 0) stroke(100); else //User colour stroke(userClr[ (userMap[index] - 1) % userClr.length ]);

//Check the user interface trigger with the real //world point lineTrigger.check(realWorldPoint); imgTrigger.check(realWorldPoint); rectTrigger.check(realWorldPoint);

strokeWeight(2); point(realWorldPoint.x, realWorldPoint.y, realWorldPoint.z); } } } endShape();...

Page 102: Points of Inflection - Process Book

102

//Draw the limbs

void drawLimb(int userId, int jointType1, int

jointType2)

{ PVector jointPos1 = new PVector();

PVector jointPos2 = new PVector();

float confidence;

// draw the joint position

confidence = context.getJointPositionSkeleton

(userId, jointType1, jointPos1);

confidence = context.getJointPositionSkeleton

(userId, jointType2, jointPos2);

stroke(0, 17, 238, confidence * 200 + 55);

line(jointPos1.x, jointPos1.y, jointPos1.z,

jointPos2.x, jointPos2.y, jointPos2.z);

drawJointOrientation(userId, jointType1,

jointPos1, 50);

}

//Draw the joint orientation

void drawJointOrientation(int userId, int

jointType, PVector pos, float length)

{

PMatrix3D orientation = new PMatrix3D();

float confidence = context.getJointOrientationS

keleton(userId, jointType, orientation);

if (confidence < 0.001f)

//Nothing to draw, orientation data is useless

return;

pushMatrix();

translate(pos.x, pos.y, pos.z);

//Set the local coordsys

applyMatrix(orientation);

//Coordsys lines are 100mm long

// x - r

stroke(255, 0, 0, confidence * 200 + 55);

line(0, 0, 0,

length, 0, 0);

// y - g

stroke(0, 255, 0, confidence * 200 + 55);

line(0, 0, 0,

0, length, 0);

// z - b

stroke(0, 0, 255, confidence * 200 + 55);

line(0, 0, 0,

0, 0, length);

popMatrix();

}

One of the Kinect's main features is its ability to

approximate the user's joint and limb data. The hard-

ware affords us an approximation of the position,

orientation, direction, and movement of the

user's 'skeleton'. We can then use this information

to make interactive applications.

Skin and Bone

Page 103: Points of Inflection - Process Book

103

//Draw the limbs

void drawLimb(int userId, int jointType1, int

jointType2)

{ PVector jointPos1 = new PVector();

PVector jointPos2 = new PVector();

float confidence;

// draw the joint position

confidence = context.getJointPositionSkeleton

(userId, jointType1, jointPos1);

confidence = context.getJointPositionSkeleton

(userId, jointType2, jointPos2);

stroke(0, 17, 238, confidence * 200 + 55);

line(jointPos1.x, jointPos1.y, jointPos1.z,

jointPos2.x, jointPos2.y, jointPos2.z);

drawJointOrientation(userId, jointType1,

jointPos1, 50);

}

//Draw the joint orientation

void drawJointOrientation(int userId, int

jointType, PVector pos, float length)

{

PMatrix3D orientation = new PMatrix3D();

float confidence = context.getJointOrientationS

keleton(userId, jointType, orientation);

if (confidence < 0.001f)

//Nothing to draw, orientation data is useless

return;

pushMatrix();

translate(pos.x, pos.y, pos.z);

//Set the local coordsys

applyMatrix(orientation);

//Coordsys lines are 100mm long

// x - r

stroke(255, 0, 0, confidence * 200 + 55);

line(0, 0, 0,

length, 0, 0);

// y - g

stroke(0, 255, 0, confidence * 200 + 55);

line(0, 0, 0,

0, length, 0);

// z - b

stroke(0, 0, 255, confidence * 200 + 55);

line(0, 0, 0,

0, 0, length);

popMatrix();

}

//Draw the skeleton with the selected joints

void drawSkeleton(int userId)

{ strokeWeight(3);

//Gets the 3d joint data

drawLimb(userId, SimpleOpenNI.SKEL_HEAD,

SimpleOpenNI.SKEL_NECK);

drawLimb(userId, SimpleOpenNI.SKEL_NECK,

SimpleOpenNI.SKEL_LEFT_SHOULDER);

drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER,

SimpleOpenNI.SKEL_LEFT_ELBOW);

drawLimb(userId, SimpleOpenNI.SKEL_LEFT_ELBOW,

SimpleOpenNI.SKEL_LEFT_HAND);

drawLimb(userId, SimpleOpenNI.SKEL_NECK,

SimpleOpenNI.SKEL_RIGHT_SHOULDER);

drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER,

SimpleOpenNI.SKEL_RIGHT_ELBOW);

drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_ELBOW,

SimpleOpenNI.SKEL_RIGHT_HAND);

drawLimb(userId, SimpleOpenNI.SKEL_LEFT_SHOULDER,

SimpleOpenNI.SKEL_TORSO);

drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_SHOULDER,

SimpleOpenNI.SKEL_TORSO);

drawLimb(userId, SimpleOpenNI.SKEL_TORSO,

SimpleOpenNI.SKEL_LEFT_HIP);

drawLimb(userId, SimpleOpenNI.SKEL_LEFT_HIP,

SimpleOpenNI.SKEL_LEFT_KNEE);

drawLimb(userId, SimpleOpenNI.SKEL_LEFT_KNEE,

SimpleOpenNI.SKEL_LEFT_FOOT);

drawLimb(userId, SimpleOpenNI.SKEL_TORSO,

SimpleOpenNI.SKEL_RIGHT_HIP);

drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_HIP,

SimpleOpenNI.SKEL_RIGHT_KNEE);

drawLimb(userId, SimpleOpenNI.SKEL_RIGHT_KNEE,

SimpleOpenNI.SKEL_RIGHT_FOOT);

//Draws body direction

getBodyDirection(userId, bodyCenter, bodyDir);

bodyDir.mult(200);

bodyDir.add(bodyCenter);

stroke(0, 17, 238);

line(bodyCenter.x, bodyCenter.y, bodyCenter.z,

bodyDir.x, bodyDir.y, bodyDir.z);

}

Page 104: Points of Inflection - Process Book
Page 105: Points of Inflection - Process Book
Page 106: Points of Inflection - Process Book

...

if (context.isTrackingSkeleton(userList[i])) {drawSkeleton(userList[i]);

//Create vectors to give the user’s hands an x, //y and z positionPVector leftHand = new PVector();PVector rightHand = new PVector();

context.getJointPositionSkeleton(userList[i], SimpleOpenNI.SKEL_LEFT_HAND, leftHand);context.getJointPositionSkeleton(userList[i], SimpleOpenNI.SKEL_RIGHT_HAND, rightHand);

//Next calculate the difference by subtracting one //vector from anotherPVector differenceVector = PVector.sub(leftHand, rightHand);PVector zVector = rightHand;

float magnitude = differenceVector.mag();float zFloat = zVector.mag();differenceVector.normalize(); //Convert the real world scale to the projective //scale of the kinectPVector convertedLeftHand = new PVector();context.convertRealWorldToProjective(leftHand, convertedLeftHand);PVector convertedRightHand = new PVector();context.convertRealWorldToProjective(rightHand, convertedRightHand);

//Reverse the translates drawn above that position //the point cloud//Undoing these are necessary to draw elements //on screentranslate(0, 0, 1000);scale(2);rotateX(-rotX);translate(-328, -237, 0);

//Define the colour stroke(138, 140, 240);

//Define stroke weight strokeWeight(8);

//If we are drawing the image, draw it on the //user’s left handif (drawImg == true) {imageSize = map(convertedLeftHand.z, 700, 2500, 200, 50);image(mickey, convertedLeftHand.x, convertedLeftHand.y, imageSize, imageSize); }

Hand tracking builds off the Kinect's ability to map

the user's joints and skeleton data to take advantage

of the hand's mobility. By setting the position of lines,

images and other graphic elements to map onto

the user's hands, we can move around these

on-screen elements in an intuitive way in order to

make compositional choices.

On the Other Hand

Page 107: Points of Inflection - Process Book

107

Page 108: Points of Inflection - Process Book

108

Page 109: Points of Inflection - Process Book

109

Page 110: Points of Inflection - Process Book

if (context.isTrackingSkeleton(userList[i])) {

drawSkeleton(userList[i]);

//Create vectors to give the user’s hands an x, y

//and z position

PVector leftHand = new PVector();

PVector rightHand = new PVector();

context.getJointPositionSkeleton(userList[i],

SimpleOpenNI.SKEL_LEFT_HAND, leftHand);

context.getJointPositionSkeleton(userList[i],

SimpleOpenNI.SKEL_RIGHT_HAND, rightHand);

//Next calculate the difference by subtracting one

//vector from another

PVector differenceVector = PVector.sub(leftHand,

rightHand);

PVector zVector = rightHand;

float magnitude = differenceVector.mag();

float zFloat = zVector.mag();

differenceVector.normalize();

//Convert the real world scale to the projective

//scale of the kinect

PVector convertedLeftHand = new PVector();

context.convertRealWorldToProjective(leftHand,

convertedLeftHand);

PVector convertedRightHand = new PVector();

context.convertRealWorldToProjective(rightHand,

convertedRightHand);

//Reverse the translates drawn above that position

//the point cloud

//Undoing these are necessary to draw elements

//on screen

...

110

Page 111: Points of Inflection - Process Book

111

if (context.isTrackingSkeleton(userList[i])) {

drawSkeleton(userList[i]);

//Create vectors to give the user’s hands an x, y

//and z position

PVector leftHand = new PVector();

PVector rightHand = new PVector();

context.getJointPositionSkeleton(userList[i],

SimpleOpenNI.SKEL_LEFT_HAND, leftHand);

context.getJointPositionSkeleton(userList[i],

SimpleOpenNI.SKEL_RIGHT_HAND, rightHand);

//Next calculate the difference by subtracting one

//vector from another

PVector differenceVector = PVector.sub(leftHand,

rightHand);

PVector zVector = rightHand;

float magnitude = differenceVector.mag();

float zFloat = zVector.mag();

differenceVector.normalize();

//Convert the real world scale to the projective

//scale of the kinect

PVector convertedLeftHand = new PVector();

context.convertRealWorldToProjective(leftHand,

convertedLeftHand);

PVector convertedRightHand = new PVector();

context.convertRealWorldToProjective(rightHand,

convertedRightHand);

//Reverse the translates drawn above that position

//the point cloud

//Undoing these are necessary to draw elements

//on screen

...

//Define the colour of our graphic elements

stroke(138, 140, 240);

//Define the stroke weight of our graphic elements

strokeWeight(8);

//If we are drawing the image, draw it on the

//user’s left hand

if (drawImg == true) {

imageSize = map(convertedLeftHand.z, 700, 2500,

200, 50);

image(mickey, convertedLeftHand.x,

convertedLeftHand.y, imageSize, imageSize);

}

//If we are drawing the line, draw it between

//the user’s hands

if (drawLine == true) {

context.drawLimb(userList[i], SimpleOpenNI.SKEL_LEFT_

HAND, SimpleOpenNI.SKEL_RIGHT_HAND);

}

//If we are drawing a rectangle, draw it between the

//user’s hands

if (drawRect == true) {

noFill();

rectMode(CORNERS);

rect(convertedLeftHand.x, convertedLeftHand.y,

convertedRightHand.x, convertedRightHand.y);

}

//add’s the left hand position to an array list

leftHandPos.add(leftHand);

Handtracking allows the software to record the

location of the user's hands each frame and

use that information for moving around objects,

perform gestures and making compositional choices.

The software records the location of each hand

as a PVector, a class with an x, y and z position in

Cartesian space. By subtracting the position of one

hand minus the other, and then calculating

the magnitude of the difference, we can draw

shapes between the user's hands.

Lined & Unlined

Page 112: Points of Inflection - Process Book

112

“The existence of objects, such as saucepans, not

just allows actions but suggests them. The ability

of objects to suggest things this way has allowed

the development of special features of objects

and special types of objects, where the function

is more to suggest than to deliver.”

— Timothy Taylor

Suggesting Function

Page 113: Points of Inflection - Process Book

113

Page 114: Points of Inflection - Process Book
Page 115: Points of Inflection - Process Book
Page 116: Points of Inflection - Process Book
Page 117: Points of Inflection - Process Book
Page 118: Points of Inflection - Process Book
Page 119: Points of Inflection - Process Book
Page 120: Points of Inflection - Process Book
Page 121: Points of Inflection - Process Book
Page 122: Points of Inflection - Process Book

The second half of my thesis project owes its success to a number of people I would like to thank here. Once again I'd like to thank my friends Dave Caterini, Ansel Schmidt, Chris Lange, Emma Novotny and Joana Patrasc for their continued input and encouragement. Thanks to Jess Peters, Patricio Davila, and Robert Tu for helping me turn my broken code into something functional. Again, I'd like to thank ALSO Collective for their support and guidance throughout this whole process. A personal shout out goes to Olivia Luyt for her patience and understanding. Thanks to Steve Szigeti for keeping me involved in stimulating research work and for making possible a potential future in visual analytics. Lastly, a very special thanks to Roderick Grant for advising me this year. Thank you for your input, conversations, guidance and (occasional) encouragement. Thank you for helping me shape this project into what it is.

Acknowledgements

Page 123: Points of Inflection - Process Book

123

Page 124: Points of Inflection - Process Book

¶…