The Wrath of Khanh
Background Illustrations provided by: http://edison.rutgers.edu/

AME 394 Final Project (in progress)

AME 394 Final project writeup

My original plan for this project was to create a video feed back that capture the surroundings with people or things in the video and displaying it on top of an image. I wanted the video to project on only some part the image. For example, I have an image of a sports car displaying in the background and the video would capture whatever the surrounding like a webcam and displaying it on only the car and nothing else. I wanted to use the mosaic tile codes from the example that Brian showed us in class and display it rather than a regular no-filter video. I started on the idea but ran into issues soon after. I was not able to get the video to play with the image at the same time. I was looking for examples through open processing were not able to find anything. I was running out of time so I ended just using the codes for the mosaic tile example given by Brian in class and added a tint variable with a mouseX and MouseY to create a split video that could change size in the original video. I also added with the filter to make the video black and gray. All the example codes I got were from the original mosaic code I got from the video libraries and other examples are from learningprocessing.com. This project has a long way to go because I was not able to figure out how to layer the video on top an image and get it to do what I want. I would like to see this project get finished later down the road. The three weeks I had was a good amount of time if I did not have difficulty figuring out what to do with the mosaic tile codes and what to incorporate those codes with. I am not very skilled with processing or java scripting by that matter but I will continue to work on this project to see that it gets done the way I imagined it to be when I first start the project. In the future my goal for this project is do display the feedback on a bigger scale projection onto any type of surface and that it will blend in with that object to make some kind of a 3D image.

Project Codes:


import processing.video.*;

// Size of each cell in the grid, ratio of window size to video size
int videoScale = 8;
// Number of columns and rows in our system
int cols, rows;
// Variable to hold onto Capture object
Capture video;


void setup() {
size(640,500);

// Initialize columns and rows
cols = width/videoScale;
rows = height/videoScale;

video = new Capture(this,640,500);
video.start();

}

void draw() {
// Read image from the camera
if (video.available()) {
video.read();
}

video.loadPixels();

// Begin loop for columns
for (int i = 0; i < cols; i++) {
// Begin loop for rows
for (int j = 0; j < rows; j++) {


int x = i*videoScale;
int y = j*videoScale;

color c = video.pixels[i*videoScale + videoScale*j*video.width];
fill(c);
stroke(0);
rect(x,y,videoScale,videoScale);
}
tint(mouseX,mouseY,255);
image(video,0,0,mouseX,mouseY);
filter(GRAY);

}
}

Assignment 3 proposal

For the final project I want to work on some sort of interaction-movement video sketch using Processing. I have seen examples of the libraries that are shown in class and I want to try to play with some of those of sketches. My concentration is film so I would like to learn more about videos and video type sketches. Since coding is not my strongest suit I would like to use the existing sketch and add in personal ideas on what I want to do. I have some ideas on making the project as an interaction sketch, perhaps with body movements. For the long run I would like to build the project up as I go along by adding more features and effects. I have never experiments with video in processing but I believe it would be a good experience for me to try. Maybe down the road I can development this project into a better idea or concept to use for my portfolio to help me get jobs after I graduate. Plus it also gives me experience in dappling with java scripting and videos. I already have the feeling that it is going to be trial and error on my part to get it to work by creating the working script. So far I am not sure how far this project would take me but I know that I would gain experience from it and give me inspiration on tackling more complex projects. The tools that I would need for this project would be processing and some example codes or libraries to get me started and let me play around with it and see where it goes. 

AME 394 assignment #2: color bouncing balls

AME 394: Assignment 2

For assignment 2 I started working on a single bouncing ball sketch that only bounced once every time I ran the sketch. I wanted to have multiple balls bouncing so I searched online through openprocessing.com and found an example codes of multiple balls. I then added the Pvector class to have the balls bounce everywhere in the sketch. I also added a mouse tracker so when I move the mouse in the sketch the bouncing balls follows it. All the balls are random colors and they have a color streak when they moving. The problem that I found while working on this sketch is to have the balls follow the mouse but once I got that working it was pretty cool to see it work. I want to use this code as an example for my future sketches for bouncing objects.

Code example:

Node[] nodes = new Node[12];

void setup() {
size(600, 500);
colorMode(HSB, 50);
smooth();
for (int i = 0; i < nodes.length; i++) {
nodes[i] = new Node();
}
}

void draw() {
fadeBackground(10);
for (int i = 0; i < nodes.length; i++) {
nodes[i].run();
}
}

void fadeBackground(int a) {

stroke(255);
smooth();
fill(100, 0, 0, a);
rect(0, 0, width, height);
}

class Node {

PVector loc, vel, acc;
float velLimit = 10;
int hue;

Node() {
loc = new PVector(random(width), random(height));
vel = new PVector(0, 0);
acc = new PVector(0, 0);
hue = int(random(50));
}

void run() {
move();
display();
}

void move() {
seekMouse();
vel.add(acc);
gravity();
vel.limit(velLimit);
bounce();
loc.add(vel);
}

void seekMouse() {
PVector mouse = new PVector(mouseX, mouseY);
acc = PVector.sub(mouse, loc);
acc.normalize();
acc.mult(0.1);
}

void gravity() {
vel.y += 0.1;
}

void bounce() {
if (loc.x < 0 && vel.x < 0) vel.x *= -1;
else if (loc.x > width && vel.x > 0) vel.x *= -1;
if (loc.y < 0 && vel.y < 0) vel.y *= -1;
else if (loc.y > height && vel.y > 0) vel.y *= -1;
}

void display() {

noStroke();
fill(hue, 100, 78);
ellipse(loc.x, loc.y, 30, 30);
}

}

3D moving sphere

My sketch started with bouncing balls from an assignment of a previous semester and I wanted to change that to a 3d plain but could not figured it out. I ended up finding an example of a 3D plain and then worked around with my bouncing ball into a moving 3D plain. Also when I use a mouse press and hold the sphere pauses and when I let it go it starts moving again.

here is the sketch code:

int xPos=320;
int yPos=240;
int zPos=1;

int xSpeed=2;
int ySpeed=2;
int zSpeed=2;

int xDirection=1;
int yDirection=1;
int zDirection=1;

// end of variables

void setup() {

size (640, 480, P3D);
smooth();

}

void draw() {

background(1);
lights();


// box setup

stroke(255);



// inital ball set up

translate (xPos, yPos, -zPos);
sphere(100);
float r =random(255);
float b= random(255);
float g = random(255);
fill(r,b,g);


// motion setup

xPos = xPos + (xSpeed * xDirection);
yPos = yPos + (ySpeed * yDirection);
zPos = zPos + (zSpeed * zDirection);

if (xPos>width-50) {
xDirection*=-1;
}

if (yPos>height-50) {
yDirection*=-1;
}

if (zPos>500) {
zDirection*=-1;
}

if (xPos<50) {
xDirection*=-1;
}

if (yPos<50) {
yDirection*=-1;
}

if (zPos<0) {
zDirection*=-1;
}

//reversal

if (mousePressed) {

xDirection *=-1;
yDirection *=-1;
zDirection *=-1;
}
}

Social Media: The new communication

As one of the final assignment for MCO435 I had to read and analyzed two books on social media. The book I chose werePersonal Connection in The Digital AgeandThe Young & The Digital.The first book was about the progression of technology in social media and the second was about social media and how it is involved with the young generations and how it is affecting them as well. Both of these books are interesting because they book gave me a better understanding of how social media evolved and how it is taking over our lives.

As I read these books it showed me the effects that social media has on everyone but mostly the younger generations. My parents grew up from not know what a computer is to myself growing up not only knowing what a computer is but to know how to operate one pretty well. Now with the new generations we know all about social media likeFacebookandTwitterand it is very uncommon to see some one not have a social media account. Social media is so involved in our lives that we cannot live a day without it. We cannot go on a day without checking ourFacebookand tweeting our activities out there for others to see. This is normal in our lives and it is in our daily activities like eating, sleeping, working, playing video games, etc…This is how we communicate to our friends and families but the same time we do not see how much time we are wasting using social media. Before the social media movement we make friends through meeting people in the outside world and hanging out with them. Now everything is social media so we talk to our friends online most of the time and that is only way of communication. We go on each others pages and comment on pictures and reply back to what they wrote on their wall. We don’t make an effort into hanging out but to play online games with each others.

Face-to-face interaction is how we create interpersonal relationships with the people around us but with social media it create barriers so we cannot develop them. You cannot tell how a person is feeling over a monitor screen and text. These are the things that Baym and Watkins mentioned in their books. After reading these two books I realized that you should not put so much time into social media because it will only become a bigger phenomenon. Facebook will eventually die out but something new will take over and everyone will be on it. Sometimes it is easier to follow the crowd and join in then rebel but following trends and keeping up with the crowds will only lead to wasting your time. You can use those time to get things done and setting times to actually hanging out with the people you talk to online.