After all the mental breakdowns and the literal physical pain, this semester has come to a close. My final project wanted to raise some sort of awareness on the environment and on the dangers of consumption and greed. Although it did come out a bit more comical than I intended it to, I think my final project was a success as it made people laugh, have fun and more importantly, think.
I survived intro to interactive media (surprisingly) and came out with a really good project, I’m so happy with it!!! pic.twitter.com/eXahdjfgTp
— ظبية (@nolongergrey) May 16, 2019
These are all the paintings for the interface, done with watercolors:
The box went from this:
To this:
I still think it would’ve looked nicer with wood, but for something DIY-ed I think it looks really good.
This is the code for my final project, never thought I’d say this in my life but I’m glad the code got deleted because I actually learned a lot while working and figuring things out. The funniest thing was attempting to add the sounds to the program last minute, and it actually worked!!!!
import processing.sound.*; SoundFile beep; SoundFile happy; SoundFile scary; import processing.video.*; import jp.nyatla.nyar4psg.*; PImage background; PImage background2; PImage tree; PImage tree2; PImage bush; PImage mushroom; PImage factory; PImage waterBottle; PImage TrashCan; PImage bags; PImage bear; PImage dBear; PImage lily; PImage lily2; PImage fish1; PImage fish2; PImage fish3; PImage deadFish1; PImage deadFish2; PImage deadFish3; PImage bird; PImage bird2; PImage bird3; PImage bird4; PImage deadBirdPic; PImage deadBirdPic2; Movie Apocalypse; int value = 0; Capture cam; MultiMarker nya; int[] objects = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; int i = objects.length; boolean b = true; boolean backgroundB = false; boolean factoryPic = false; boolean trashCan = false; boolean bag = false; boolean bottle =false; boolean apocalypse = false; boolean deadBird = true; boolean treesGone = true; boolean deadBear = true; boolean fish = true; boolean Badmusic = false; void setup() { //size(1920, 1080, P3D); fullScreen(P3D, 2); colorMode(RGB, 100); String[] cameras = Capture.list(); //printArray(cameras); cam = new Capture(this, cameras[0]); //cam=new Capture(this, 1280,700); nya=new MultiMarker(this, 1920, 1080, "camera_para.dat", NyAR4PsgConfig.CONFIG_PSG); Apocalypse = new Movie(this, "fire.mov"); beep = new SoundFile(this, "beep.wav"); scary = new SoundFile(this, "thunder.wav"); happy = new SoundFile(this, "nature.wav"); background = loadImage("background.png"); background2 = loadImage("background2.png"); factory = loadImage("factory4.png"); TrashCan = loadImage("trashcan.png"); bags = loadImage("bags.png"); waterBottle = loadImage("waterBottle.png"); tree = loadImage("tree.png"); bush = loadImage("bush.png"); tree2 = loadImage("tree2.png"); bear = loadImage("bear.png"); dBear = loadImage("deadBear.png"); bird = loadImage("bird.png"); bird2 = loadImage("bird2.png"); bird3 = loadImage("bird3.png"); bird4 =loadImage ("bird4.png"); deadBirdPic = loadImage("deadBird.png"); deadBirdPic2 = loadImage("deadBird2.png"); fish1 = loadImage("fish1.png"); fish2 = loadImage("fish2.png"); fish3 = loadImage("fish3.png"); deadFish1 = loadImage("deadfish1.png"); deadFish2 = loadImage("deadfish2.png"); deadFish3 = loadImage("deadfish3.png"); lily = loadImage("lily1.png"); lily2 = loadImage("lily2.png"); fish1.resize(80,100); fish2.resize(80,100); fish3.resize(100,80); deadFish1.resize(120,80); deadFish2.resize(120,80); deadFish3.resize(120,80); tree.resize(600, 750); tree2.resize(500,600); bush.resize(200,400); bear.resize(280, 400); dBear.resize(450,180); bird.resize(200, 200); bird2.resize(200, 200); bird3.resize(200,100); bird4.resize(200,200); deadBirdPic.resize(200,100); deadBirdPic2.resize(300,100); factory.resize(350, 550); TrashCan.resize(400,600); bags.resize(500,400); //dBear.resize(,) factory.resize(400, 600); for (int c = 0; c < i; c++) { nya.addNyIdMarker(c, 80); } cam.start(); background(background); noCursor(); } void draw() { if (cam.available()!=true) { return; } cam.read(); nya.detect(cam); background(background); image(Apocalypse, 0, 0); //if (b) { // pushStyle(); // imageMode(CORNER); // pushMatrix(); // //translate(1280/2,700/2); // nya.drawBackground(cam); // popMatrix(); // popStyle(); //} //Apocalypse.resize(displayWidth,displayHeight); how do i make the video fullscreen? //use some app and rezise and change the Apocalypse video before class on Monday please please please Dhabiaaaa for (int c = 0; c < i; c++) { if ((!nya.isExist(c))) { //println(nya.getNyId(c)); //println("returning"); continue; } if (c==1) { if (!beep.isPlaying() && deadBear==true){ beep.play(); } else{ beep.stop(); } //Bear turns to carpet code deadBear = false; break; } if (c==2 && treesGone == true) { treesGone = false; if (!beep.isPlaying()){ beep.play(); } else{ beep.stop(); } //tree falls code because of table or chair or maybe both???? } if (c==3 && trashCan == false) { if (!beep.isPlaying()){ beep.play(); } else{ beep.stop(); } trashCan = true; } if (c==4&& factoryPic==false) { factoryPic = true; if (!beep.isPlaying()){ beep.play(); } else{ beep.stop(); } } if (c==5 && fish == true) { if (!beep.isPlaying()){ beep.play(); } else{ beep.stop(); } //fish fish = false; } if (c==6 && deadBird == true) { if (!beep.isPlaying()){ beep.play(); } else{ beep.stop(); } //bird dies deadBird = false; } if (c==7 && bag == false) { if (!beep.isPlaying()){ beep.play(); } else{ beep.stop(); } bag = true; } if (c==8 && backgroundB ==false) { if (!beep.isPlaying()){ beep.play(); } else{ beep.stop(); } backgroundB = true; } if (c==9) { } if (c==0 && apocalypse == false) { if (!beep.isPlaying()){ beep.play(); } else{ beep.stop(); } //don't forget to rezie the video + add a text that says, real life has no reset button Apocalypse.loop(); apocalypse=true; } } if (backgroundB){ background(background2); } if (bag && apocalypse == false){ image(bags, 1100, 250); //fix } if (!deadBird && apocalypse==false){ image(deadBirdPic, 80,780); image(deadBirdPic2, 600, 450); } if (deadBird && apocalypse==false){ image(bird, 800, 100); image(bird2, 100, 50); image(bird3, 1000, 50); image(bird4, 500, 50); } if (fish && apocalypse == false){ image(fish1,700,750); image(fish2,500,740); image(fish3,900,730); image(lily,1000,740); image(lily2,800,720); } if (!fish && apocalypse == false){ image(deadFish1,700,750); image(deadFish2,1100,730); image(deadFish3,900,730); } if (treesGone && apocalypse == false){ image(tree2,1000,100); image(tree, 1300, 0); image(bush,1300,500); //Add more trees } if (deadBear && apocalypse == false){ image(bear, 250, 600); } if (trashCan && apocalypse == false){ image(TrashCan, 1400, 550); //fix } if (factoryPic) { image(factory, 0, 0); } if (!deadBear && apocalypse == false){ image(dBear,100,500); } if (!apocalypse){ if (!happy.isPlaying()){ happy.loop(); } } if (apocalypse) { if (happy.isPlaying()){ scary.loop(); if (scary.isPlaying()){ happy.stop(); } } image(Apocalypse, 0, 0); textSize(80); text("Real life has no reset button", 50, 80); factoryPic = false; treesGone = false; deadBird=true; } } void keyPressed() { if (keyPressed) { if (key == 'b' || key == 'B') { b = !b; } } } void movieEvent(Movie m) { m.read(); }