nshimada@andrew.cmu.edu – [OLD – FALL 2016] 15-104 • COMPUTING for CREATIVE PRACTICE https://courses.ideate.cmu.edu/15-104/f2016 Professor Roger B. Dannenberg • Fall 2016 • Introduction to Computing for Creative Practice Sat, 12 Sep 2020 00:19:45 +0000 en-US hourly 1 https://wordpress.org/?v=4.5.31 Final Project – Naomi Shimada https://courses.ideate.cmu.edu/15-104/f2016/2016/12/09/final-project-naomi-shimada/ https://courses.ideate.cmu.edu/15-104/f2016/2016/12/09/final-project-naomi-shimada/#respond Fri, 09 Dec 2016 22:08:49 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=7652 Continue reading "Final Project – Naomi Shimada"]]>

For my final project I wanted to incorporate my writing. I took a short story that I wrote and then broke it down into 15 different scenes. I looked at each scene and then decided on a strong image on each one like a picture book. From there I coded each scene as a separate function with helper functions to create each individual aspect. In some of the scenes I decided that I wanted there to be an interactive aspect so I coded other functions that were dependent on the mouse position. I thought that by making the writing more visual and because often times you have to read the story to know what’s animated in the scene the writing itself would become more enjoyable to non-readers.

Credit for the images and the song, none of which are my own:

I wanted to code the photo of the man in the door, but creating an accurate image that captured the emotion in the actor’s face was too difficult. Here is the link.

The next image is the high chair in the kitchen. Here is the link to the original image.

The third image is another that I wanted to code but found that using an image conveyed the emotion better. Here is the link.

The final image link.

The song is Styx’s Sail Away.

Screenshots from the project:

screen-shot-2016-12-09-at-10-05-44-amscreen-shot-2016-12-09-at-10-05-56-amscreen-shot-2016-12-09-at-10-06-06-am

var tp; var f; var s; var t; var fo; var ff; var sx; var sv; var e; var n; var tn; var ev;
var tw; var tt; var ft; var ftn; var nb; var lb; var r = 232; var g = 14; var b = 199; var tp2;
var c = 0;
var sailaway; var henhand; var tris; var hc; var hen;

function preload() { //loads song for tenthScene
  sailaway = loadSound('assets/CSA.wav');
  henhand = loadImage('assets/Hen piano.jpg');
  tris = loadImage('assets/Tris.png');
  hc = loadImage('assets/hc.png');
  hen = loadImage('assets/Hen.png');
 }

 function setup() { //creates canvas
    createCanvas(800, 640);
    background(178, 243, 250);  

 }

 function draw() { //counts page flipping
    if(c==0){
        titlePage();
    }
   if(c == 1){
    firstScene();
   }
   if(c ==2){
    secondScene();
   }
   if(c == 3){
    thirdScene();
   }
   if(c == 4){
    fourthScene();
   }
    if(c == 5){
    fifthScene();
   }
    if(c == 6){
    sixthScene();
   }
   if(c == 7){
    seventhScene();
   }
   if(c == 8){
    eighthScene();
   }
   if(c == 9){
    ninethScene();
   }
   if(c == 10){
    tenthScene();
   }
   if(c == 11){
    eleventhScene();
   }
   if(c == 12){
    twelfthScene();
   }
   if(c == 13){
    thirteenthScene();
   }
   if(c == 14){
    fourteenthScene();
   }
   if(c == 15){
    fifteenthScene();
   }
   if(c == 16){
    titlePage();
    c = 0;
   }
 }

 function nextButton(){  //flips page to next page
    nb = "next"
    noStroke();
    fill(255);
    ellipse(775,610,50,60);
    fill(0);
    textFont("Georgia");
    text(nb,760,610);
 }

 function lastButton(){  //flips page to last page
    lb = "last"
    noStroke();
    fill(255);
    ellipse(25,610,50,60);
    fill(0);
    textFont("Georgia");
    text(lb,10,610);
 }

 function mousePressed(){  //counts clicks to align with page flipping
    if(mouseX>=750 && mouseX <=800 && mouseY>=580 && mouseY<=640){
         c = c +1;
    }
    if(mouseX>=0 && mouseX <=50 && mouseY>=580 && mouseY<=640){
         c = c - 1;
    }
    if(c==10){
        sailaway.play();
   }
 }

 function houseT(){  //tristan's house
    fill(130,26,5);
    rect(150,300,500,300);  //base of house
    fill(48,15,4);
    triangle(150,300,400,50,650,300); //roof
    fill(92,15,46);
    rect(360,450,80,150);  //front door
    fill(220,177,2);
    ellipse(420,520,10,10); //doorknob
    fill(60,100,60);
    rect(170,320,50,70); //Ltopwindow
    rect(580,320,50,70); //Rtopwindow
    fill(199,234,232);
    ellipse(400,380,100,100);  //center window
    fill(60,100,60);
    rect(200,460,70,110); //Lbottomwindow
    rect(530,460,70,110); //Rbottomwindow
 }

 function houseTanim(){  //Tristan's house animation
     if(mouseX>=170 && mouseX <=220 && mouseY >=320 && mouseY<=390){
        animOneLT();
        fill(130,26,5);
        rect(170,390,50,10);  //keeps everything within the window
     }
    if(mouseX>=580 && mouseX <=630 && mouseY >=320 && mouseY<=390){
        animOneRT();
    }
    if(mouseX>=200 && mouseX <=270 && mouseY >=460 && mouseY<=570){
        animOneLB();
    }
    if(mouseX>=530 && mouseX <=600 && mouseY >=460 && mouseY<=570){
        animOneRB();
    }
 }

 function houseTanim2(){  //Tristan's house animation
     if(mouseX>=170 && mouseX <=220 && mouseY >=320 && mouseY<=390){
        animOneLT();
        fill(130,26,5);
        rect(170,390,50,10);  //keeps everything within the window
     }
    if(mouseX>=580 && mouseX <=630 && mouseY >=320 && mouseY<=390){
        animOneRT();
    }
    if(mouseX>=200 && mouseX <=270 && mouseY >=460 && mouseY<=570){
        animOneLB();
    }
    if(mouseX>=530 && mouseX <=600 && mouseY >=460 && mouseY<=570){
        animOneRB();
    }
    if(mouseX>=360 && mouseX <=440 && mouseY >=450 && mouseY<=600){
        animDoor();
    }
 }

 function animDoor(){
    fill(128,211,182);
    rect(360,450,80,150);  //front door
    fill(247,203,171);  
    rect(395,510,10,10);         //Tris Neck
    fill(214,192,12);
    ellipse(400,500,30,30);  //Tristan
    fill(43,101,153);
    rect(383,520,36,40);  //Tris shirt
    fill(153,197,228);
    rect(383,560,13,40); //left leg of T jeans
    rect(399,560,13,40); //right leg of T jeans
    fill(162,88,4);
    triangle(410,495,405,510,415,510);  //hair
    fill(225,175,119);
    ellipse(410,510,20,20);  //Orlando head
    fill(255);
    ellipse(405,510,5,5);  //left eye
    ellipse(415,510,5,5);  //right eye
    fill(98,187,205);
    ellipse(405,510,3,3);  //left eye
    ellipse(415,510,3,3);  //right eye
 }

 function animOneLT(){  //left top window inside window
    fill(242,143,131);
    rect(170,320,50,70); //Ltopwindow
    //Jennifer
    fill(72,15,8);  
    ellipse(195,365,40,60); //base of hair
    fill(247,203,171);  
    ellipse(195,355,30,30); //base of face
    fill(50,129,2); //eye color
    ellipse(190,350,5,5);  //left eye
    ellipse(200,350,5,5);  //right eye
    push();
    strokeWeight(2);
    stroke(214,119,149);
    line(190,360,200,360);  //mouth
    pop();
    fill(247,203,171);  
    ellipse(195,380,10,20); //base of neck
    fill(181,214,119);
    rect(185,375,20,15); //shirt
 }

 function animOneRT(){  //right top window inside window
    fill(236,231,231);
    rect(580,320,50,70); //Rtopwindow
    //shower
    fill(161,151,151);
    rect(603,320,5,21);
    ellipse(605,340,25,10);  //shower head
    push();
    stroke(89,144,194);
    strokeWeight(3);
    line(600,348,600,383); //water
    line(605,348,605,383);  //water
    line(610,348,610,383);  //water
    pop();
 }

 function animOneLB(){  //left bottom window inside window
    fill(128,171,211);
    rect(200,460,70,110); //Lbottomwindow
    //chair
    fill(255);
    ellipse(235,530,40,20);  //seat of chair
    push();
    stroke(255);
    strokeWeight(2);
    fill(128,171,211);
    rect(220,500,30,10);  //back of chair
    line(230,500,230,520);
    line(240,500,240,520);
    line(220,530,220,550);  //chair back leg L
    line(250,530,250,550);  //chair back leg R
    line(233,530,233,553);  //chair front leg L
    line(240,530,240,553);  //chair front leg L
    pop();
 }

 function animOneRB(){  //right bottom window inside window
    fill(128,211,182);
    rect(530,460,70,110); //Rbottomwindow
    //chair
    fill(255);
    ellipse(555,530,40,20);  //seat of chair
    push();
    stroke(255);
    strokeWeight(2);
    fill(128,211,182);
    rect(540,500,30,10);  //back of chair
    line(550,500,550,520);
    line(560,500,560,520);
    line(540,530,540,550);  //chair back leg L
    line(570,530,570,550);  //chair back leg R
    line(553,530,553,553);  //chair front leg L
    line(560,530,560,553);  //chair front leg L
    pop();
 }

 function otherHouse(){
    fill(0,0,100);
    rect(600,300,100,75); //base
    fill(255);
    rect(640,350,20,25);  //door
    fill(48,15,4);
    triangle(600,300,700,300,650,250); //roof
 }

 function otherHouseAnim(){
    fill(255,195,0);
    ellipse(580,420,70,90); //base of hair
    fill(247,203,171);  
    ellipse(580,410,60,60); //base of face
    fill(104,67,64);
    ellipse(570,405,10,10);  //left eye
    ellipse(590,405,10,10);  //right eye
    fill(234,155,155);
    ellipse(580,430,15,10); //mouth
    fill(247,203,171); 
    rect(573.5,435,15,30); //neck
    push();
    strokeWeight(10);
    stroke(247,203,171);
    line(562.5,560,562.5,620);  //left leg
    line(602.5,560,602.5,620);  //right leg
    pop();
    fill(243,160,210);
    triangle(583,505,640,570,520,570);  //bottom layer of skirt
    fill(250,211,235);
    triangle(583,505,640,560,520,560);  //tulle layer
    push();
    strokeWeight(10);
    stroke(247,203,171);
    line(552.5,460,525,510);  //left arm
    line(612.5,460,640,510);  //right arm
    pop();
    fill(243,160,210);
    rect(552.5,455,60,80); //torso
 }

 function houseAnim(){  //Tristan's house animation
     if(mouseX>=640 && mouseX <=660 && mouseY >=350 && mouseY<=375){
        otherHouseAnim();
     }
 }

  function otherCar(){  //superhero dad's car
    fill(223,138,7);
    rect(100,450,400,75);  //bottom base of car
    triangle(500,525,500,450,510,525); //bottom triangle of car
    triangle(100,450,200,450,200,400); //left triangle
    rect(200,400,275,50); //second tier rect
    rect(475,400,25,50);    //small rect, trunk
    rect(200,350,225,50);  //top rect
    triangle(425,350,425,400,475,400); //top triangle
    fill(0);
    ellipse(200,525,80,80); //left tire
    fill(0);
    ellipse(425,525,80,80); //right tire
    //windows
    fill(214,253,254);
    triangle(225,410,300,410,300,360); // left window
    triangle(325,410,400,410,325,360);
    //handles
    push();
    stroke(0);
    strokeWeight(10);
    line(300,425,300,435);
    line(300,435,275,435);
    line(275,435,275,425);
    pop(); //left handle
    push();      
    stroke(0);
    strokeWeight(10);
    line(400,425,400,435);
    line(400,435,375,435);
    line(375,435,375,425);
    pop();      //right handle
 }

 function impala(){  //Hendrix's '67 chevy Impala
     fill(0);
     rect(100,400,600,100);  //base of car
     triangle(700,400,700,500,750,475); //trunkish part of car
     rect(130,380,170,20); //left rect
     triangle(300,380,300,400,325,400); //filler triangle
     triangle(300,380,325,400,325,305); //windshield
     rect(325,305,200,95); //top of car
     triangle(525,305,525,400,550,355); //second tier standing triangle
     triangle(525,400,550,355,700,400); //trunk
     push();
     stroke(103,110,121);
     strokeWeight(3);
     fill(0);
     ellipse(250,500,100,100);
     pop();   //left tire
     push();
     stroke(103,110,121)
     strokeWeight(3);
     fill(0);
     ellipse(570,500,100,100);
     pop();   //right tire
     fill(225,235,233);
     triangle(300,380,325,400,325,305); //part of windshield window
     triangle(325,400,325,305,340,335); //part 2 of windshield window
     triangle(355,325,355,390,340,390); //window part 1
     rect(355,325,150,65); //window part 2
     push();
     strokeWeight(3);
     stroke(103,110,111)
     line(525,405,700,405); //back definition 1
     line(525,404,500,420); //back definition 2
     line(130,400,300,400); //front definition
     line(325,403,325,480); //front vertical line
     line(475,403,475,480); //back vertical line **
     line(455,420,455,430);
     line(455,430,430,430);
     line(430,430,430,420); //handle
     stroke(0);
     strokeWeight(4);
     line(465,325,465,390);
     pop();
    }

 function AJ(){
    fill(237,223,102);
    ellipse(475,360,260,380); //base of hair
    fill(247,203,171);
    ellipse(475,340,200,250); //base of face
    push();
    stroke(237,223,102);
    strokeWeight(50);
    line(475,215,570,300);   //bangs
    //line(535,230,550,210);
    pop();
    fill(255); //whites of eyes
    ellipse(440,320,40,40); //left eye
    ellipse(510,320,40,40); //right eye
    fill(157,217,250);
    ellipse(430,320,20,20); //left eye color
    ellipse(500,320,20,20); //left eye color
    fill(r,g,b);
    ellipse(475,170,40,40); //center of bow
    triangle(495,170,530,130,530,210);
    triangle(455,170,420,130,420,210);  //bow
    fill(250,219,157); 
    triangle(475,330,465,360,485,360); //nose
    fill(250,164,157);
    ellipse(475,400,40,20); //mouth
    fill(247,203,171);
    rect(440,450,60,70);  //neck
    fill(246,180,223);
    ellipse(475,600,200,270); //shirt
 }

 function AJbow(){
    if(mouseX>=455 && mouseX <=495 && mouseY >=150 && mouseY<=190){
       r = r + random(0,15);
       g = g + random(0,5);
       b = b + random(0,10);
    fill(r,g,b);
    ellipse(475,170,40,40); //center of bow
    triangle(495,170,530,130,530,210);
    triangle(455,170,420,130,420,210);
    }
 }

 function AJwindow(){
    push();
    stroke(255);
    strokeWeight(10);
    fill(199,234,232);
    rect(20,20,760,600);
    pop();
 }

 function trisHouse(){
    fill(130,26,5);
    rect(0,0,800,650);  //base of house
    fill(92,15,46);
    rect(300,340,200,300); //door
    fill(220,177,2);
    ellipse(460,480,20,20); //doorknob
    fill(199,234,232);
    ellipse(400,80,200,200);  //center window
    fill(60,100,60);
    rect(0,380,70,200); //Lwindow
    rect(730,380,70,200); //Rwindow
 }

 function henHouse(){
    fill(255);
    rect(0,0,800,640);
    image(tris,0,0,tris.width/2,tris.height/2);
 }

 function henHouseAnim(){
    if(mouseX>=300 && mouseX <=500 && mouseY >=340 && mouseY<=640){
       henHouse();
    }
 }

 function doorway(){
    push();
    strokeWeight(5);
    stroke(255);
    fill(128,211,182);
    rect(200,100,360,540); //door
    pop();
    fill(247,203,171);  
    rect(360,260,40,50);         //Tris Neck
    fill(214,192,12);
    ellipse(380,200,130,130);  //Tristan
    fill(247,203,171);
    ellipse(380,210,120,120); //Tris face
    fill(43,101,153);
    rect(310,290,150,200);  //Tris shirt
    fill(153,197,228);
    rect(310,490,70,150); //left leg of T jeans
    rect(390,490,70,150); //right leg of T jeans
    push();
    stroke(247,203,171);
    strokeWeight(25);
    line(310,290,210,100);  //left arm
    stroke(43,101,153);
    line(310,290,235,150);  //left arm sleeve
    stroke(247,203,171);
    line(472,293,472,450);  //right arm
    stroke(43,101,153);
    line(472,293,472,420);  //right arm sleeve
    pop();
    fill(255);
    ellipse(360,200,20,20);  //left eye
    ellipse(400,200,20,20);  //right eye
    fill(147,70,45);
    ellipse(360,200,10,10);  //left eye
    ellipse(400,200,10,10);  //right eye
    fill(247,143,128);
    ellipse(380,240,30,20);   //mouth
    fill(222,101,165);
    rect(330,575,30,30);
 }

 function doorwayAnim(){
    if(mouseX>=300 && mouseX <=500 && mouseY >=340 && mouseY<=640){
    fill(100,0,0);
    rect(0,0,800,640);
    doorway();
    }
 }

 function table(){
    fill(115,53,17);
    quad(400,580,580,580,500,400,380,400); //top of table
    push();
    stroke(145,196,209);
    strokeWeight(10);
    line(403,580,577,580);
    pop(); //legs of table
    fill(145,196,209);
    rect(400,580,35,80); //left leg
    rect(545,580,35,80); //right leg
    fill(132,179,192);
    rect(545,587,10,80); //right leg shadow
 }

 function wall(){
    fill(229,229,149);
    quad(0,0,300,100,800,100,800,0); //ceiling
    push();
    stroke(229,229,149);
    strokeWeight(10);
    line(300,100,300,550); //left wall thing
    line(0,640,300,550);
    pop();
    fill(120,138,146);
    quad(0,640,300,550,800,550,800,640);  //floor
 }

 function appliances(){
    fill(145,196,209);
    rect(300,400,500,150); //front of appliances
    fill(178,107,4);
    quad(300,400,800,400,800,370,350,370); //counter top
 }

 function stoveOven(){
    fill(0);
    rect(520,400,180,150);  //front of stove
    push();
    stroke(185,182,177);
    strokeWeight(3);
    line(540,440,680,440);
    line(540,440,540,425);
    line(680,440,680,425); //handle
    pop();
    fill(185,182,177);
    ellipse(555,415,10,10);
    ellipse(595,415,10,10);
    ellipse(635,415,10,10);  
    ellipse(675,415,10,10);  //knobs
    fill(210,207,202);
    quad(520,400,700,400,720,370,540,370);  //top of stove
    push();
    stroke(0);
    strokeWeight(2);
    fill(210,207,202);
    ellipse(560,385,40,20);  //outer ring of left stove top
    ellipse(560,385,20,10); //inner ring of left stove top
    ellipse(610,385,40,20);  //outer ring of middle stove top
    ellipse(610,385,20,10); //inner ring of middle stove top
    ellipse(665,385,40,20);  //outer ring of right stove top
    ellipse(665,385,20,10); //inner ring of right stove top
    pop();
 }
 
 function kitchenD(){   //kitchen door
    push();
    strokeWeight(3);
    stroke(115,53,17); //doorframe
    fill(145,196,209);
    quad(10,637,10,300,90,320,90,610);
    pop();    
    fill(220,177,2);
    ellipse(20,480,20,20); //doorknob
 }

 function barbieHouse(){
    fill(223,100,195);
    rect(200,600,50,40);  //base of barbie house
    triangle(200,600,250,600,225,580); //roof of barbie house
 }

 function barbieHouseAnim(){
    if(mouseX>=200 && mouseX<=250 && mouseY>=600 && mouseY<=640){
    //covers old house
      fill(120,138,146);
      rect(200,600,50,40);  //base of barbie house
      triangle(200,600,250,600,225,580); //roof of barbie house
    // new barbie house
      fill(223,100,195);
      rect(450,500,50,40);  //base of barbie house
      triangle(450,500,500,500,475,480); //roof of barbie house
    }
 }

 function windowK(){
    push();
    strokeWeight(3);
    stroke(115,53,17);
    fill(125,223,110);
    rect(397,250,306,103);
    pop();
    fill(178, 243, 250);
    rect(400,252,302,52); //sky
 }

 function windowAnim(){
    if(mouseX>=400 && mouseX<=702 && mouseY>=252 && mouseY<=355){
      fill(68,174,252);
      rect(400,252,302,103);  //window shade
    }
 }

 function platePancake(){
    fill(255);
    ellipse(480,530,50,50);
    push();
    stroke(145,196,209);
    strokeWeight(3);
    ellipse(480,530,35,35);
    pop();  //decorative edging
 }

 function kitchenT(){
    wall();
    appliances();
    stoveOven();
    image(hc,220,370,hc.width/5,hc.height/5);
    table();
    platePancake();
    kitchenD();
    barbieHouse();
    windowK();
 } 

 function platePancakes(){
    fill(255);
    ellipse(150,600,100,80);
    push();
    stroke(145,196,209);
    strokeWeight(3);
    ellipse(150,600,80,60);
    pop();  //decorative edging
 }

 function trisHen(){
    fill(100,0,0);
    rect(0,0,800,640);
    push();
    stroke(255);
    strokeWeight(10);
    fill(128,211,182);
    rect(300,40,300,620);
    pop();   //door frame
    fill(92,15,46);
    rect(0,40,300,600);  //door
    fill(247,203,171);  
    ellipse(480,220,150,150);  //Hendrix
    push();
    translate(520,180);
    rotate(PI/3.8);
    fill(26,24,22);   //hair color
    ellipse(0,0,130,50); //pompadour hair
    pop();
    rect(380,225,50,75);//Tris Neck
    fill(214,192,12);
    ellipse(400,200,150,150);  //Tristan
    fill(43,101,153);
    rect(350,300,150,200);  //shirt
    push();
    stroke(247,203,171);
    strokeWeight(25);
    line(350,300,410,400); //left arm
    line(500,300,450,400); //right arm
    stroke(0);
    strokeWeight(25);
    line(350,300,400,383); //L leather jacket
    line(500,300,457,386); //R leather jacket
    pop();
    fill(98,187,205);
    ellipse(500,235,10,10); //left eye Hendrix
    ellipse(530,240,10,10); //right eye Hendrix
    push();
    stroke(242,143,131); //lip color
    strokeWeight(5);
    line(490,270,510,275); //mouth
    pop();
    fill(153,197,228);
    rect(350,500,65,140); //left leg of T jeans
    rect(435,500,65,140);  //right leg of T jeans
 }

 function TrisHenDAnim(){
    if(mouseX>=300 && mouseX <=500 && mouseY >=340 && mouseY<=640){
       trisHen();
    }
 }

 function trisOrlando(){
    fill(247,203,171);  
    rect(380,225,50,75);//Tris Neck
    fill(214,192,12);
    ellipse(400,200,130,130);  //Tristan
    fill(43,101,153);
    rect(350,300,150,200);  //shirt
    fill(153,197,228);
    rect(350,500,65,140); //left leg of T jeans
    rect(435,500,65,140);
    fill(162,88,4);
    triangle(500,205.5,465,240,535,240);  //hair
    fill(225,175,119);
    ellipse(500,260,85,85);  //Orlando head
    fill(229,217,106);
    ellipse(500,350,70,100); //body
    push();
    stroke(225,175,119);
    strokeWeight(30);
    line(400,300,500,300); //arm
    stroke(229,217,106);
    line(420,300,500,300); //arm
    line(500,400,410,400);  //leg in Onesie
    pop();
    fill(255);
    ellipse(480,260,20,20);  //left eye
    ellipse(520,260,20,20);  //right eye
    fill(98,187,205);
    ellipse(480,260,10,10);  //left eye
    ellipse(520,260,10,10);  //right eye
 }  

 function legos(){
    fill(234,20,16);
    rect(500,500,150,80);  //front of red lego
    fill(213,18,15);
    quad(500,500,650,500,730,480,580,480);  //top of red lego
    fill(206,25,23);
    quad(730,480,650,500,650,580,730,540);  //side of red lego
    fill(249,242,29);
    rect(200,300,200,80);//front of yellow block
    fill(227,221,28);
    quad(200,300,400,300,480,250,280,250);  //top of yellow block
    fill(216,210,16);
    quad(400,300,480,250,480,310,400,380); //side of yellow block
    fill(43,104,243);
    rect(50,450,100,50);  //front of blue block
    fill(42,98,227);
    quad(50,450,150,450,200,425,100,425);  //top of blue block
    fill(28,85,216);
    quad(200,425,150,450,150,500,200,470);  //side of blue block
 }

 function guitar(){
    fill(231,194,102);
    ellipse(150,400,200,300); //first half of guitar body
    ellipse(250,400,200,280); //first half of guitar body
    fill(50,30,1);
    ellipse(250,400,80,80);  //thing
    fill(206,125,1);
    rect(290,380,350,40);    //neck of guitar
    push();
    stroke(231,194,102);
    strokeWeight(2);
    line(200,390,645,390);  //strings
    line(200,395,645,395);  //strings
    line(200,400,645,400);  //strings
    line(200,405,645,405);  //strings
    line(200,410,645,410);  //strings
    pop();
    fill(206,125,1);
    rect(640,370,80,60);    //tuning block
 }

 function Orlando(){
    fill(240,241,241);
    quad(0,0,400,0,400,400,0,800);  //wall
    fill(240,241,241);
    quad(800,640,800,0,400,0,400,500);  //second wall
    fill(255);
    rect(300,0,200,500); //back wall
    fill(120,138,146);
    quad(0,640,800,640,500,500,300,500);  //floor
    fill(162,88,4);
    triangle(400,220,450,290,350,290);  //hair
    fill(229,217,106);
    ellipse(400,400,120,170); //body
    fill(225,175,119);
    ellipse(400,300,100,100);  //head
    fill(255);
    ellipse(385,290,20,20);  //left eye
    ellipse(415,290,20,20);  //right eye
    fill(98,187,205);
    ellipse(385,290,10,10);  //left eye
    ellipse(415,290,10,10);  //right eye
    push();
    stroke(229,217,106);
    strokeWeight(15);
    line(360,340,300,300);  //left arm
    line(445,340,505,300);  //right arm
    strokeWeight(25);
    line(360,455,360,520);  //left leg
    line(440,455,440,520);  //right leg
    pop();
 }

 function titlePage(){ //cover page
    fill(87,137,213);
    rect(0,0,800,640);
     tp = "A Chance"
     tp2 = "An interactive story: scroll over the pages and see what happens! (Hint: look for all caps)"

    fill(255);
    push();
    textSize(70);
    textFont("Georgia");
    text(tp, 400, 300, 800, 100); // Text wraps within text box
    textSize(30);
    text(tp2, 100, 450, 620, 140); // Text wraps within text box
    pop();
    nextButton();
 }

 function firstScene(){
    fill(178, 243, 250);
    rect(0,0,800,640);
     f = "Hendrix stood in front of the house he’d never been in before with dread " +  //main text 1
    "churning in his stomach. The house looked like a cookie cutter kind of place " + 
    "with mint green SHUTTERS and petunias in the garden bed out front. A fall wreath " + 
    "hung on the dark maroon door, and a pink bicycle with training wheels stood " + 
    "proudly on the black top driveway.";
    fill(125,223,110);
    noStroke();
    rect(0,440,800,200); //grass
    houseT();
    houseTanim();
    fill(0);
    textSize(14);
    textFont("Georgia");
    text(f, 10, 10, 100, 640); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function secondScene(){
    fill(178, 243, 250);
    rect(0,0,800,640);
     s = "He felt out of place in his beaten leather jacket, tight black jeans, and " + //main text 2
     "grey t-shirt. The businessman superhero father buckling a six year old girl into " +
     "the car at the house next DOOR stared at him through the window with a furrowed brow. " +
     "Hendrix could feel his disapproval rest on his shoulders. He fiddled with the stacks " +
     "of cold, worn, metal rings on his fingers then twisted the braided leather bracelets, " +
     "rope wristband, Puka bead bracelet, and heavy black watch on his wrists. He made sure that " +
     "the clasps of his necklaces rested on the back of his neck."
     noStroke();
     fill(3,102,4);
     rect(0,360,800,200); //grass
     fill(103,110,111);
     rect(0,500,800,140);  //road
     push();
     stroke(214,218,218);
     strokeWeight(50);
     line(670,375,250,500); //pathway
     pop();
     otherCar();
     otherHouse();
     houseAnim();

    fill(0);
    textSize(14);
    textFont("Georgia");
    text(s, 10, 10, 790, 200); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function thirdScene(){
    fill(178, 243, 250);
    rect(0,0,800,640);
     t = "The air was dry and crisp around him. Dead leaves danced over the still green grass " +
     "and the neighborhood’s cul-de-sac. He ran a hand through his ebony black hair that he’d " +
     "easily coiffed into a pompadour earlier in the morning. He’d stood in front of the hotel’s " +
     "mirror and appraised himself carefully. His eyeliner from the day before lingered under his " +
     "eyes. As he stood in front of his car, he tried to gather his courage. He wiped his sweaty " +
     "palms on the thighs on his jeans and wiped the mud off the bottom of his black combat boots." + 
     "He dropped his head to watch his feet. His hand’s shaking made his rings clink together."
       noStroke();
     fill(125,223,110);
     rect(0,210,800,280); //grass
     fill(184,188,187);
     rect(0,490,800,150);  //road
     fill(130,26,5);
     rect(160,0,420,270); //back of house 
     fill(60,100,60);
     rect(180,135,50,80);  //L window
     rect(510,135,50,80);  //R window
     fill(92,15,46);
     rect(330,130,100,140);  //front door
     impala();
    fill(0);
    textFont("Georgia");
    text(t, 10, 10, 740, 105); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function fourthScene(){
    fill(100,0,0);
    rect(0,0,800,640);
     fo = "Finally, he forced himself to walk up to the door of the perfect house. As he neared " +
     "he could hear the high-pitched shrieks of laughter through the walls, and the sounds of " +
     "little feet on tile. As he lifted a hesitant and heavy hand, he heard a little girl’s voice " +
     "say, “Daddy, there’s someone at the door!” She sounded like a girl who'd wear a BOW." +
    "“Is there? Well while Daddy answers the door, you should go help Mama dress Orlando, ok, AJ?” " +
    "Hendrix balked at the sound of the deep voice behind the door. Was it when he was thirteen " +
    "when he heard that voice last? Seventeen? He scratched the back of his neck and then readjusted " +
    "the fall of his shirt. His left leg shook a little restlessly as he waited. The lock clicked and " +
    "then the door swung open."
    AJwindow(); 
    AJ();
    AJbow();
    fill(100,0,0);
    rect(260,625,350,20);
    push();
    stroke(255);
    strokeWeight(10);
    line(360,620,600,620); //window pane over AJ
    line(400,20,400,620); //vertical window pane
    line(20,350,780,350); //horizontal window pane
    pop();

    fill(0);
    textSize(15);
    textFont("Georgia");
    text(fo, 28, 25, 753, 150); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function fifthScene(){
    trisHouse();
    henHouseAnim();
     ff = "“Hendrix.”"

    fill(0);
    push();
    textSize(45);
    textFont("Georgia");
    text(ff, 30, 30, 790, 100); // Text wraps within text box
    pop();
    nextButton();
    lastButton();
 }

 function sixthScene(){
    fill(100,0,0);
    rect(0,0,800,640);
     sx = "His brother stood in the doorway like a statue. One hand gripped the edge of the door " +
     "and the second hung limply by his side. His broad shoulders pulled at the dark blue shirt " +
     "he was wearing, but he looked less muscular than Hendrix remembered. He had on blue jeans " +
     "with a spot of pink paint and grey socks, but his wedding ring was smartly polished. " +
     "“Uh, hi, Tristan.”"
     trisHouse();
     doorwayAnim();

    fill(255);
    textSize(16);
    textFont("Georgia");
    text(sx, 10, 10, 790, 100); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function seventhScene(){
     trisHouse();
     sv = "Tristan stared at him for another minute with an unreadable expression still standing in the DOOR. Hendrix started " +
     "to shift his weight from foot to foot. Maybe, he thought sourly, he could run away and pretend " +
     "this had never happened. Just as he was about to turn to leave, he was surprised as the full " +
     "weight and force of his brother hit him. He stared at his brother’s back as he slowly hugged " +
     "him back. Against his back, he felt more than heard Tristan say, “It’s really good to see you.”" +
     " “Yeah, yeah. You too,” he said. His twenty-something brother smelled like baby powder."
     TrisHenDAnim();

    fill(252,241,68);
    textSize(14);
    textFont("Georgia");
    text(sv, 10, 10, 290, 630); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function eighthScene(){
     fill(253,252,179);
     rect(0,0,800,640);
     e = "Tristan pulled away and then shyly stepped away from the door. “Come on in, yeah. I’ll go get " +
     "some food. How’s that sound? I think there’re some pancakes left.” Hendrix stepped in the door and " +
     "followed Tristan through the house to the kitchen.  His brother’s dirty blond hair was cut short, " +
     "and his shoulders sagged a little with fatigue. “So you’re what? A business guy or something like " +
     "that? Accountant?” “Naw, I’m,” Tristan picked up a pink BARBIE HOUSE from the middle of the floor " +
     "and put it on the kitchen table next to the highchair. “I’m a music teacher.” “You’re kidding me,” " +
     "Hendrix laughed. He shoved his hands into his pockets and looked for a chair at the table that wasn’t " +
     "covered in Cheerios. The kitchen was full of dirty dishes, children’s toys, paper, markers, baby bibs, " +
     "and pacifiers. There were piles of little shoes by the backdoor that led to the backyard, and a " +
     "toddler’s puffed coat was tossed on the floor. The kitchen itself was painted a bright and creamy " +
     "yellow and had big WINDOWS letting in the sun.  Tristan glanced over at him from the stove where " +
     "pancakes were cooling on a cooling rack. His eyes had rings under them and the start of crow’s feet. " +
     "His face looked old. “What’s wrong with that?” “It’s a cop out.” “No, that’s not being reasonable. " +
     "I can’t be part of a rock band and be a good dad and husband. Take off that jacket, will you? " +
     "Get comfortable.”"
     kitchenT();
     barbieHouseAnim();
     windowAnim();

    fill(0);
    textSize(12);
    textFont("Georgia");
    text(e, 10, 10, 790, 220); // Text wraps within text box
    nextButton();
    lastButton();
 }

function ninethScene(){
    fill(253,252,179);
    rect(0,0,800,640);
     n = "It was habit that made Hendrix take his jacket off immediately and try to appear more comfortable " +
     "in the chair. There were drawings taped on the stainless steel refrigerator and Crayola markers scattered " +
     "on the floor around it. “Looks…nice,” Hendrix said, pointing to the drawings. Tristan smiled, showing off " +
     "the canine teeth that he’d gotten “vampire caps” surgically applied to when he was nineteen. “Yeah, AJ – Alison " +
     "Jennifer. Jennifer for her mama. She’s a great little artist, isn’t she?” Hendrix pulled a tight smile across his face, “Yep.” " +
     "“So.” Tristan dropped into the chair across from Hendrix, not seeming to mind the Cheerio dust that crunched under " +
     "him. “How’ve you been, Hen? It’s been, what, five years?” “Don’t call me Hen. It’s Hendrix now.” Hendrix " +
     "leveled his blue eyes at Tristan who put a plate of Mickey Mouse shaped pancakes in front of him. He dropped " +
     "his eyes down to the dirty tabletop and blew a heavy breath out of his nose. “I’m twenty-one now so yeah, five years.” " +
     "Suddenly Hendrix smiled widely, “Remember when you made these pancakes for me?”"
     fill(229,228,227); 
     rect(425,0,375,640); //refridgerator
     push();
     stroke(113,112,111);
     strokeWeight(5);
     line(425,200,800,200);  //line making freezer and fridge
     strokeWeight(15);
     line(455,250,455,640);   //fridge handle
     pop();  
     image(hen,0,0,hen.width,hen.height);
     fill(115,53,17);
     fill(13,125,125);
     textSize(16);
     textFont("Georgia");
     text(n, 450, 20, 350, 640); // Text wraps within text box
     nextButton();
     lastButton();
 }

 function tenthScene(){
    fill(100,0,0);
    rect(0,0,800,640);
     tn = "Tristan laughed nervously. He absently pushed a clunky toy car across the table.  When laughter came from " +
     "upstairs, his hazel eyes looked up at the ceiling and he smiled absently. “You’re twenty-one now and about to go " +
     "pursuing the old dream?” “Yeah.  The old dream you bailed on,” Hendrix said sharply. “I’ve got a band. We’re making " +
     "a demo with a record label. We’re going to be big like Nirvana.” “I’m sure, Hen.” “You’re not too old yet to come too,”" + 
     "Hendrix said. He took a bite of the pancake, ripping Mickey Mouse’s ear off. He talked while he chewed, “I mean, get " +
     "your wife to take care of the – the kiddos and hop on the road. You can hit the gym and get back into shape. You " + 
     "don’t have to look like a…dad anymore.” “Hend-” “Yeah, you love your kids and your wife, whatever.” " +
     "Hendrix sighed and bounced nervously his leg under the table. On top of it his right hand started playing " +
     "Styx’s Come Sail Away.  Tristan watched his long lithe fingers. In his head he could hear the piano with Hendrix’s " +
     "own little twist on the song."
    image(henhand,0,0,800,640);
    fill(255);
    textSize(14);
    textFont("Georgia");
    text(tn, 10, 10, 790, 200); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function eleventhScene(){
    fill(100,0,0);
    rect(0,0,800,640);
     ev = "“I do,” Tristan smiled. “But, Tris,” Hendrix said earnestly, leaning forward on his knobby elbows. He didn’t " +
     "register how quickly and easily his old nickname for Tristan rolled off his tongue. “You could still do it. This is " +
     "what you’ve wanted. We need a guitarist.” “This is why you’re here?” Tristan leaned back in his chair, his arms " +
     "crossing over his chest. “You need a guitarist?” “No, I mean-” “Hen, you were supposed to be the best man at my wedding " +
     "but you didn’t show, and I haven’t seen you since. Now you show up here to get me to go on some kind of crazy trip without " +
     "even saying anything?” Tristan stood up and ran his hand through his hair. He laughed but without humor, like he was trying " +
     "to keep his calm. “You haven’t even met my kids, Hen, and Orlando is named for you.” “My name’s not Orlando.”" +
     "The muscles in Tristan’s jaw tightened, “His name is Hendrix Orlando. We call him Orlando because you haven’t " +
     "been around. …And Jen doesn’t really like you either. She didn’t want to name him after you.” “Oh.” " +
     "“Yeah, but I insisted.  You’re my brother, of course I had to name him for you.” Tristan took a second of " +
     "silence before saying carefully, “Hen, I can’t go with you.”"
     guitar();
    fill(255);
    textFont("Georgia");
    text(ev, 10, 10, 790, 200); // Text wraps within text box
    nextButton();
    lastButton();
 }


 function twelfthScene(){
    fill(100,0,0);
    rect(0,0,800,640);
     tw = "“You promised me that we were going to be a band. We were going to make music and change the goddamn world!” " +
     "“I have a family, Hen. I’m not leaving them.” “What am I then, Tris?” Hendrix slammed his fist down on the table " +
     "and stood up.  The chair’s legs rattled against the tile of the kitchen floor. “I’m supposed to be family too!” " +
     "“Daddy! Daddy!” Tristan scooped up the toddler running towards him in a diaper and yellow onesie. He had light " +
     "brown hair and clear blue eyes. He had a pacifier in one chubby hand and his father’s t-shirt in the other. “Hey, " +
     "Orlando, what’s your name?” Tristan looked down at Orlando proudly and then tickled his son’s stomach.  “Come on, " +
     "Orlo, what’s your full name?” “Hendrix Orlando,” the two year old said proudly. He buried his head against his " +
     "father’s neck and starting playing with his ear. “Yeah, that’s right buddy. Now why don’t you go play with your " +
     "Legos, okay?”  Tristan put his son down and then faced Hendrix. “I have a chance here.” Hendrix scoffed, “To drown " +
     "in dirty diapers and kids’ drool, sure. You wanted to be a star, Tris, and you can be. Come on.”"
    Orlando();
    fill(0);
    textFont("Georgia");
    text(tw, 10, 10, 790, 200); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function thirteenthScene(){
    fill(0);
    rect(0,0,800,640);
     tt = "“Hen, Dad ran out on us. I’m not running out on them,” Tristan gestured to Orlando who was happily banging " +
     "Legos together and giggling. “You ran out on me! It was your job to look out for me.” “I got married.” But " +
     "Tristan’s voice was quiet, and he wouldn’t look Hendrix in the eyes. “Whatever.” From upstairs, the sound " +
     "of water running for a shower filled the silence. Hendrix glanced watched Orlando as he played with his " +
     "Legos, trying to figure out the best way to fit them together. Every once in a while he reached for his Sippy cup. " +
     "“…My stuff looks good on you.” “You recognized it? I mean you left it all in your room when you…got married.” " +
     "Hendrix twisted a ring on his finger. “Yeah, it works for you. Looks good.” “Thanks. Any chance I can say goodbye " +
     "to Orlando before I go?” Tristan motioned for him to go ahead. He kept a watchful eye as Hendrix squatted " +
     "down next to the two year old. They had the same eyes. “Hey, Orlando, I’m your Uncle Hendrix.” Orlando continued playing with his colored blocks obliviously."
    legos();
    fill(255);
    textFont("Georgia");
    text(tt, 10, 10, 790, 200); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function fourteenthScene(){
    fill(253,252,179);
    rect(0,0,800,640);
     ft = "After a moment’s pause, Hendrix carefully lifted a necklace off from around his neck.  The pendent " +
     "was large and some kind of old symbol. He looked up at Tristan before he carefully put the necklace " +
     "around Orlando’s neck. The toddler took notice and started chewing on it, giving his father a wide " +
     "toothy smile. Tristan crossed to them and then scooped Orlando up. “Hey, buddy, look at that.  Look " +
     "at what Uncle Hendrix gave you!”  To Hendrix he said, “You sure you want to part with that?”" +
     "He shrugged, “Yeah. Whatever. It was yours to begin with anyway. I’ve got to go.”" +
     "Tristan grinned and bounced Orlando on his hip. He had stubble coming in on his jaw. " +
     "Orlando ran a hand over it and then screamed with delight. “You could stay, you know.”"
     trisOrlando();
    fill(0);
    textSize(14);
    textFont("Georgia");
    text(ft, 10, 10, 790, 200); // Text wraps within text box
    nextButton();
    lastButton();
 }

 function fifteenthScene(){
   fill(178, 243, 250);
    rect(0,0,800,640);
     ftn = "Hendrix shook his head. “No. You’re right; you have a chance here, and mine’s somewhere else. " +
     "Say hi to Jen for me. ...And tell her I’m sorry too.” “Sure.” “I am, you know.  I mean, I guess " +
     "leaving wasn’t easy for you either,” Hendrix mumbled, turning to walk out the door. Louder, he asked, " +
     "“Can I, uh, come visit again?” “I’d like that,” Tristan said, cuddling his son tighter.  " +
     "Orlando sighed against Tristan’s shoulder.  He waved bye-bye to Hendrix, reaching out with a " +
     "small fat hand like he wanted to go with him. “Okay.”"
    fill(125,223,110);
    noStroke();
    rect(0,440,800,200); //grass
    houseT();
    houseTanim2();
    fill(0);
    textFont("Georgia");
    text(ftn, 10, 10, 130, 640); // Text wraps within text box
    nextButton();
    lastButton();
 }

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/12/09/final-project-naomi-shimada/feed/ 0
Looking Outwards 12 https://courses.ideate.cmu.edu/15-104/f2016/2016/11/19/looking-outwards-12-3/ https://courses.ideate.cmu.edu/15-104/f2016/2016/11/19/looking-outwards-12-3/#respond Sat, 19 Nov 2016 04:44:28 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=7459 Continue reading "Looking Outwards 12"]]>

One of my inspirations for my final project comes in the form of online kids’ books. I have young cousins who are learning how to read. Instead of practicing how to read with paper books they I did, they instead are learning how to read online. Education.com has many books online that help kids learn how to read. While I want to add an interactive aspect and my story will not be for small children, I realized that this approach to reading might make adults who may not like to read enjoy it more.

Link to education.com

For the interactive part, I remembered a game from back when I was in fourth grade Spanish class. It was Jumpstart Spanish and I remembered how the game made me want to learn Spanish. Conceptually it was similar to clicking and dragging which are things that I want to incorporate to make reading fun.

messages-image426620873

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/11/19/looking-outwards-12-3/feed/ 0
Final Project Proposal https://courses.ideate.cmu.edu/15-104/f2016/2016/11/19/final-project-proposal-6/ https://courses.ideate.cmu.edu/15-104/f2016/2016/11/19/final-project-proposal-6/#respond Sat, 19 Nov 2016 04:42:44 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=7452 Continue reading "Final Project Proposal"]]>

I’d like to do a final project that is an interactive story. I’m a creative writing major with a background in fine arts so I’d like to take a story of mine and then make it into an interactive experience using some sketches of mine and incorporating the whole thing into an interactive program. For example, when the right side of the screen is clicked the scene would change like the flipping of a book page. Similarly when the left side of the screen is clicked the scene would change back to the previous page. Within each screen the text of the story of the scene would be displayed and then the various elements within each screen would be interactive. For example, if a character moves in the text then the character could be dragged by the mouse from one location to another. I haven’t worked out which story I am going to use or if I’m going to use one already existing and the amount of text per page yet, but I’m hoping that it will have maybe a fairytale book feel to it.

sketch

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/11/19/final-project-proposal-6/feed/ 0
Project 11 https://courses.ideate.cmu.edu/15-104/f2016/2016/11/12/project-11/ https://courses.ideate.cmu.edu/15-104/f2016/2016/11/12/project-11/#respond Sat, 12 Nov 2016 04:43:06 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=7117 Continue reading "Project 11"]]>

screen-shot-2016-11-11-at-11-41-42-pmscreen-shot-2016-11-11-at-11-41-50-pm

I really enjoyed this project.  I liked being able to add in the color changing functions because it added variety and made the turtle design a bit more engaging. sketch

var turtle;
var startFrame;

var r = 235;
var g = 200;
var b = 200;
var x = 300;
var y = 300;

function setup() {
    createCanvas(600, 600);
    background(0);
    x = mouseX;
    y = mouseY;
    turtle = makeTurtle(430,100);
    turtle.setColor(color(r,g,b));
    stroke(r,g,b);
    fill(r,g,b);
    turtle.setWeight(1); 
    turtle.penDown();
    frameRate(10);
}

function draw(){

    for (var i = 0; i < 100; i++) {
        if(i %2){
        r = r - random(0,.08);
        g = g - random(.03,.06);
        b = b - random(.01,.2);
    }
        turtle.setColor(color(r,g,b));
        turtle.forward(90);
        turtle.right(80.5);
        turtle.forward(60);
        if (i % 50 === 0) {
            turtle.forward(200);
        }
    }         
}

function mousePressed(){
    background(0);
    r = random(0,255);
    b = random(0,255);
    g = random(0,255);
}

function turtleLeft(d){this.angle-=d;}function turtleRight(d){this.angle+=d;}
function turtleForward(p){var rad=radians(this.angle);var newx=this.x+cos(rad)*p;
var newy=this.y+sin(rad)*p;this.goto(newx,newy);}function turtleBack(p){
this.forward(-p);}function turtlePenDown(){this.penIsDown=true;}
function turtlePenUp(){this.penIsDown = false;}function turtleGoTo(x,y){
if(this.penIsDown){stroke(this.color);strokeWeight(this.weight);
line(this.x,this.y,x,y);}this.x = x;this.y = y;}function turtleDistTo(x,y){
return sqrt(sq(this.x-x)+sq(this.y-y));}function turtleAngleTo(x,y){
var absAngle=degrees(atan2(y-this.y,x-this.x));
var angle=((absAngle-this.angle)+360)%360.0;return angle;}
function turtleTurnToward(x,y,d){var angle = this.angleTo(x,y);if(angle< 180){
this.angle+=d;}else{this.angle-=d;}}function turtleSetColor(c){this.color=c;}
function turtleSetWeight(w){this.weight=w;}function turtleFace(angle){
this.angle = angle;}function makeTurtle(tx,ty){var turtle={x:tx,y:ty,
angle:0.0,penIsDown:true,color:color(128),weight:1,left:turtleLeft,
right:turtleRight,forward:turtleForward, back:turtleBack,penDown:turtlePenDown,
penUp:turtlePenUp,goto:turtleGoTo, angleto:turtleAngleTo,
turnToward:turtleTurnToward,distanceTo:turtleDistTo, angleTo:turtleAngleTo,
setColor:turtleSetColor, setWeight:turtleSetWeight,face:turtleFace};
return turtle;}

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/11/12/project-11/feed/ 0
Looking Outwards 11 https://courses.ideate.cmu.edu/15-104/f2016/2016/11/12/looking-outwards-11/ https://courses.ideate.cmu.edu/15-104/f2016/2016/11/12/looking-outwards-11/#respond Sat, 12 Nov 2016 04:37:40 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=7113 Continue reading "Looking Outwards 11"]]>

I really liked Sony’s Evans-bot. An animated robot that creates songs, it is given a series of constraints for melody and harmony, a primary chord to work off of, and then a few backup chords. These constraints are called on a “leadsheet,” described by the creator as “monophonic melodies with underlying chord sequence, “in the style ” of arbitrary composers, or corpora.”

I really like this project especially because the music is programmed to sound like a particular style of a composer like George Gershwin or Irving Berlin. I’m a big Gershwin and Berlin fan so I enjoyed hearing trademarks of their music within the program. I’m not sure how a computer would’ve been programmed to create such a thing, but I highly enjoyed it and trying to reason through a potential code.

Link to Work

 

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/11/12/looking-outwards-11/feed/ 0
Looking Outwards 10 https://courses.ideate.cmu.edu/15-104/f2016/2016/11/05/looking-outwards-10-4/ https://courses.ideate.cmu.edu/15-104/f2016/2016/11/05/looking-outwards-10-4/#respond Sat, 05 Nov 2016 02:02:43 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=6684 Continue reading "Looking Outwards 10"]]>

Anne Spalter is a digital mixed media artist. She was a math major undergrad at Brown University and then earned an MFA in painting from the Rhode Island School of Design (RISD). In the 1990s she founded the digital fine arts program at both Brown University and RISD. Her piece, Waves: Sunrise, looks like paint being marbled together but is actually generated from a computer program. Unfortunately, I couldn’t find specifics on how exactly Spalter generated the piece. To me, though, it looks like Spalter created pools of color and then constantly changed the pools’ size and shapes in order to create the mixing, marbling effect.  She might have also put in a threshold to be sure that one pool of color never filled up more than a certain amount of the canvas to ensure that she had a dynamic image at every moment.

Waves: Sunrise

About Anne Spalter

Two captures from Waves: Sunrise

screen-shot-2016-11-04-at-9-56-49-pmscreen-shot-2016-11-04-at-9-57-32-pm

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/11/05/looking-outwards-10-4/feed/ 0
Project 10 https://courses.ideate.cmu.edu/15-104/f2016/2016/11/05/project-10/ https://courses.ideate.cmu.edu/15-104/f2016/2016/11/05/project-10/#respond Sat, 05 Nov 2016 01:29:21 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=6667 Continue reading "Project 10"]]>

My project was inspired by Les Miserable’s famous barricade scene: Enjolras is on the wagon riding through France and passing by the buildings in the city.  I used a photo to render Enjolras and the French flag (copyright disclaimer, I don’t own either image used in the program).  This is Chris Durling as Enjolras of Melborne’s production of Les Mis.  Link to production.

Here is a shot from the 2012 Les Mis movie’s barricade scene and a screenshot of Ramin Karimloo as Enjolras in the West End’s 2004 Les Mis revival.  It’s hard to see but Karimloo is on top of a wagon similar to the one I created.

screen-shot-2016-11-04-at-9-12-43-pmles-mis

sketch


//Naomi Shimada
//Section D
//nshimada@andrew.cmu.edu
//Project-10

var buildings = [];
var img;
var inloc = "http://i.imgur.com/yxe5I2n.png";
var ig;
var loc = "http://i.imgur.com/uOmk2ms.png";
var x = 200;
var y = 200;
var rotS=0;
var terrainSpeed = 0.00008;
var terrainDetail = 0.005;


function preload() {
   img = loadImage(inloc);
   ig = loadImage(loc);
  }

function setup() {
  
    createCanvas(600, 400);
    frameRate(10);

    for (var i = 0; i < 10; i++){
        var rx = random(width);
        buildings[i] = makeBuilding(rx);
    }
}


function draw() { 
  background(35,58,70);
    rotS=rotS-8;
    fill(1,82,28); 
    stroke(1,82,28)
    beginShape(); 
    for (var w = 0; w < width; w++) {
        var t = (w * terrainDetail) + (millis() * terrainSpeed);
        var a = map(noise(t), 0,1, 0.5, height);
        vertex(w, a);
        vertex(width,height); 
        vertex(0,height);    
    }
    endShape();

    updateAndDisplayBuildings();
    removeBuildingsThatHaveSlippedOutOfView();
    addNewBuildingsWithSomeRandomProbability();

        fill(100);
        noStroke();
    rect(0,height-80,width,100);
    push();
    translate(250,50);
    scale(-1,1);
 image(ig, 0,0,img.width/8,img.height/8);
 pop();
 image(img,250,80, img.width/10, img.height/10);  //Enjolras
 wagon();

}

function wagon(){
   fill(59,35,31);   //makes main of wagon
 strokeWeight(0);
 rect(x,y,250,100);
 ellipseMode(CENTER);
 stroke(42,25,22);    //outter rim of L wheel
 strokeWeight(4);
 noFill();
 ellipse(x,y + 100,100,100);
 fill(59,35,31);
 ellipse(x,y + 100,25,25);   //center of L wheel

 push();
    translate(x,y+100);
    rotate(rotS);
    stroke(42,25,22);
    strokeWeight(4);
 line(0,0,0,-50);  //spokes of the L wheel
 line(0,0,0,50);   
 line(0,0,50,0);
 line(0,0,-50,0);
 pop();

 stroke(42,25,22);    //outter rim of R wheel
 strokeWeight(4);
 noFill();
 ellipse(x+250,y + 100,100,100);
 fill(59,35,31);
 ellipse(x+250,y + 100,25,25);   //center of R wheel

 push();
    translate(x+250,y+100);
    rotate(rotS);
    stroke(42,25,22);
    strokeWeight(4);
 line(0,0,0,-50);  //spokes of the R wheel
 line(0,0,0,50);   
 line(0,0,50,0);
 line(0,0,-50,0);
  pop();
 strokeWeight(15);
 stroke(59,35,31);
 line(x,y + 25, x-100, y +25);
 }

 function updateAndDisplayBuildings(){
    // Update the building's positions, and display them.
    for (var i = 0; i < buildings.length; i++){
        buildings[i].move();
        buildings[i].display();
    }
}

function removeBuildingsThatHaveSlippedOutOfView(){
    // If a building has dropped off the left edge,
    // remove it from the array.  This is quite tricky, but
    // we've seen something like this before with particles.
    // The easy part is scanning the array to find buildings
    // to remove. The tricky part is if we remove them
    // immediately, we'll alter the array, and our plan to
    // step through each item in the array might not work.
    //     Our solution is to just copy all the buildings
    // we want to keep into a new array.
    var buildingsToKeep = [];
    for (var i = 0; i < buildings.length; i++){
        if (buildings[i].x + buildings[i].breadth > 0) {
            buildingsToKeep.push(buildings[i]);
        }
    }
    buildings = buildingsToKeep; // remember the surviving buildings
}

function addNewBuildingsWithSomeRandomProbability() {
    // With a very tiny probability, add a new building to the end.
    var newBuildingLikelihood = 0.007; 
    if (random(0,1) < newBuildingLikelihood) {
        buildings.push(makeBuilding(width));
    }
}

// method to update position of building every frame
function buildingMove() {
    this.x += this.speed;
}
    
// draw the building and some windows
function buildingDisplay() {
    var floorHeight = 20;
    var bHeight = 300; 
    fill(188,185,184); 
    strokeWeight(0);
    stroke(0); 
    push();
    translate(this.x, height - 40);
    rect(0, -bHeight, this.breadth, (bHeight+ this.put));
    fill(139,165,163);
    rect(this.pos, -bHeight+this.place, 30, 50);
    fill(140,149,115);
    rect(this.pos,-bHeight+this.put,this.wide,this.tall);
    stroke(2); 
    fill(137,115,132);
    rect(this.pos, -bHeight+this.set, this.wide,this.tall);
    pop();
}


function makeBuilding(LocationX) {
    var bldg = {x: LocationX,
                breadth: 50,
                speed: -1.0,
                nFloors: round(random(2,8)),
                move: buildingMove,
                wide: random(10,30),
                tall: random(10,50),
                pos: random(0,13),
                place: random(10,50),
                put: random(75, 150),
                set: random(170, 200),
                display: buildingDisplay}

    return bldg;
}

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/11/05/project-10/feed/ 0
Project 09 – Portrait https://courses.ideate.cmu.edu/15-104/f2016/2016/10/29/project-09-portrait-2/ https://courses.ideate.cmu.edu/15-104/f2016/2016/10/29/project-09-portrait-2/#respond Sat, 29 Oct 2016 03:54:16 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=6342 Continue reading "Project 09 – Portrait"]]>

I had a lot of fun with this project once I got the preliminaries set up.  I started out thinking that I wanted to have an image recreated by pixilation when the mouse scrolled over the image.  But then I realized that that wouldn’t work because of the constant mouse movement.  So I decided to create a more fun portrait.  The subject’s last name is displayed mainly opaque and then the picture is displayed with a spotlight on top of it.  I spent a lot of time on this image but I still want to continue working on it.

screen-shot-2016-10-28-at-11-36-32-pm beginningscreen-shot-2016-10-28-at-11-36-47-pm after one movement with the mousescreen-shot-2016-10-28-at-11-36-13-pmafter scrolling over the image multiple times

sketch


//Naomi Shimada
//Section D
//nshimada@andrew.cmu.edu
//Assignment-09-B

var img;
var inloc = "http://i.imgur.com/XTKXPpa.png";
var distThreshold = 20;
var underlyingImage;


function preload() {
   img = loadImage(inloc);
   underlyingImage = loadImage(inloc);

   underlyingImage.loadPixels();
}

function setup() {
    createCanvas(400,300);     //sets up on the background image
    image(img,0,0); 
   filter(POSTERIZE,2);
}

function draw(){
    for (var y = 0; y < height; y +=40){
        for (var x = 0; x < width; x +=40) {
            if (nearMouse(x, y, distThreshold)) {
           var c = underlyingImage.get(mouseX,mouseY);
              stroke(c);           //the stroke color is determined on the pixel underneath
              strokeWeight(1);          //creates the last name of the subject, Khalouf
              textSize(45);   
              fill(255,255,255,20);
              text("Khalouf", x,y);
              push();
                 image(underlyingImage, 0, 0, underlyingImage.width / 8, underlyingImage.height / 8);

    var x = constrain(mouseX, 0, img.width - 1);     //redraws the image based on mouse X and Y
    var y = constrain(mouseY, 0, img.height - 1);
    // get a subrectangle from image. x and y (upper left corner)
    // should be within the image.
    var smaller = img.get(x, y, 100, 100);
    image(smaller,x, y, 120, 120);
    fill(255,255,255,40);
    ellipseMode(CORNERS);        //puts a "spotlight" on the center of the image
    noStroke();
    strokeWeight(0);
    ellipse(x,y,x+120,y+120);
    pop();
            }
        }
    }
}

function nearMouse(x, y, d) {
    return dist(x, y, mouseX, mouseY) < d;
}
 

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/10/29/project-09-portrait-2/feed/ 0
Looking Outwards 9 https://courses.ideate.cmu.edu/15-104/f2016/2016/10/29/looking-outwards-9/ https://courses.ideate.cmu.edu/15-104/f2016/2016/10/29/looking-outwards-9/#respond Sat, 29 Oct 2016 03:45:46 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=6327 Continue reading "Looking Outwards 9"]]>

I really like Alison’s choice of Moritz Stefaner’s Project Ukko. I agree with her assessment that it is very user friendly. The visualization of the wind patterns through tilt, thickness of line, and color is very easy for anyone to read and also does not demand extensive time because it is so accessibly done. Originally when I just saw the still of the project and hadn’t yet read Alison’s review or checked out the webpage, I had thought that it was a piece of artwork because it looked so artful. I really appreciated that Stefaner found a way to make a mathy area accessible to humanities students and to give beauty to what might not seem beautiful on the surface.

Project

Alison’s Post

screen-shot-2016-10-28-at-11-42-24-pm

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/10/29/looking-outwards-9/feed/ 0
Looking Outwards 8 https://courses.ideate.cmu.edu/15-104/f2016/2016/10/22/looking-outwards-8/ https://courses.ideate.cmu.edu/15-104/f2016/2016/10/22/looking-outwards-8/#respond Sat, 22 Oct 2016 03:14:56 +0000 https://courses.ideate.cmu.edu/15-104/f2016/?p=5815 Continue reading "Looking Outwards 8"]]>

Jake Barton, the founder of Local Projects, “an experience design and strategy firm for museums, brands and public spaces in New York” (Wikipedia), gave a thought-provoking presentation called “Like Falling in Love” at Eyeo 2012. After graduating from Northwestern University with a degree in performance studies, Barton started designing sets on Broadway then worked for Ralph Applebaum Associates then finally founded Local Projects.

Barton works on making installations and public spaces relatable to visitors/viewers through technology. Though not highly discussed in his Eyeo speech, Barton was co-leader of the team that figured out how to list the names of the 9/11 victims on the new memorial. Instead of going alphabetically, he and his team found a way to list the victims through personal connections. As mainly a humanities, writing, student, I’m very interested in the ways that technology can bring people together and make things like art and perceptions more accessible to everyone.

When he presents, Barton is confident. He goes chronologically through the production of a project, sometimes even discussing the failed ideas. He gives multiple real life examples and uses visual aids. I’d like to learn to be as relaxed while presenting as Barton appears to be.

Wikipedia Page

Webpage

Eyeo Speech

]]>
https://courses.ideate.cmu.edu/15-104/f2016/2016/10/22/looking-outwards-8/feed/ 0