Note: The audio was removed to a copyright claim on YouTube. The song is "Technologic" by Daft Punk.
Saturday, May 14, 2016
Gumpter: Dance!
The final thing we wanted to do was to make Gumpter dance when told to do so! We used minim in processing and mapped his X and Y axis to certain volume levels to the song. When they reached these levels he would move to the right position (you can see him bobbing to the beat). He is working on being a better dancer but at least he has fun.
Gumpter: Voice Recognition
After a ton of trying to get voice recognition working, we did it! At first we had trouble getting the windows speech recognition working with our mic and processing (it would only spell words out for us "type H, type I, type SPACE, type G, type U... etc"). We ended up using micros which would enter a whole line of text when a specific sentence was said. Gumpter did great! Even if he messed up our handshake...
Note: The videos won't let me upload them for some reason?? So here's a link to the blog posts that have working videos... :/
http://processingtyme.blogspot.com/2016/05/after-ton-of-trying-to-get-voice.html
Note: The videos won't let me upload them for some reason?? So here's a link to the blog posts that have working videos... :/
http://processingtyme.blogspot.com/2016/05/after-ton-of-trying-to-get-voice.html
Gumpter: Motions
This is a work in progress! We added macros (speech to text) that you can type into a text box to get Gumpter to go through motions we programmed him to do. At this point he isn't voice activated yet so we are just running through a concept demo here. It's the main idea!
Note: The videos won't let me upload them for some reason?? So here's a link to the blog posts that have working videos... :/
http://processingtyme.blogspot.com/2016/05/gumpter-motions.html
Wednesday, April 20, 2016
Final Project Proposal
A rough mock-up of what our control panel could potentially look like for our final project. Our goal is to have Gumpter (our robot) to respond to voice commands that people can give through a microphone.
Our goal is to have a sound wave move when voice commands are given. There will be an external mic used. To get speech commands to work, we will use speech-to-text function to write out the commands that will be programmed into Gumpter's code.
Along with voice commands, there will be certain keyboard functions that will also make Gumpter respond.
| Gumpter |
II.) Requirements:
1.) Include ControlP5 objects such as buttons, sliders, knobs and/or text input fields
- Button used to show command list.
2.) Include mouse and keyboard interactivity (where appropriate)
- Using keyboard commands to give specific functions.
3.) Optimize your robot to perform a specific function/task (through hardware, software or a combination thereof)
- Program different actions for Gumpter to perform when given verbal cues.
Tuesday, March 22, 2016
GUI Interface Final
Here is the finished GUI Interface. The background color can be changed, the zombie can go up and down, and the ghost can appear and disappear. However, the gifs would not work properly, and we weren't quite sure why.
GUI Interface #1
We have the bare bones of the project set up right now with the buttons that we plan on utilizing made.
Tuesday, February 16, 2016
Clock Process #2
Added pulsing effects. One clock pulse every second, 2 on the minute, and three on the hour. Also added pulsing effects to each group to their corresponding times.
I want to get an easing effect on the pulses, but I'm having some trouble. I currently tried it on the second pulse and got this (bold code), but it isn't working how I want it to.
// ---------- VARIABLES ----------
// ----- CLOCK VARIABLES -----
int cx, cy;
float secondsRadius;
float minutesRadius;
float hoursRadius;
float clockDiameter;
float fxs,fys;
float fxm,fym;
float fxh,fyh;
// ----- TIMER & EASING -----
float counter = 0;
float tdx = 15;
float tdy = 15;
float fdx = tdx;
float fdy = tdy;
int timer = 0;
// ----- PULSE VARIABLES -----
int secCheck;
int minCheck;
int hourCheck;
// ----------- SETUP ----------
void setup() {
size(600, 600);
background(0);
int radius = min(width, height) / 2;
secondsRadius = radius * 0.72;
minutesRadius = radius * 0.60;
hoursRadius = radius * 0.50;
clockDiameter = radius * 1.8;
cx = width / 2;
cy = height / 2;
fxs = width/2;
fys = height/2;
}
// ---------- DRAW START ----------
// ---------- DRAW START ----------
// ---------- DRAW START ----------
void draw() {
counter++;
// ---------- CLOCK BACKGROUND ----------
noFill();
noStroke();
ellipse(cx, cy, clockDiameter, clockDiameter);
// Angles for sin() and cos() start at 3 o'clock;
// subtract HALF_PI to make them start at the top
float s = map(second(), 0, 60, 0, TWO_PI) - HALF_PI;
float m = map(minute() + norm(second(), 0, 60), 0, 60, 0, TWO_PI) - HALF_PI;
float h = map(hour() + norm(minute(), 0, 60), 0, 24, 0, TWO_PI * 2) - HALF_PI;
// ---------- CLOCK HANDS ----------
// ----- SECOND HAND -----
strokeWeight(3);
stroke(255,0,0);
fxs += ((cx + cos(s) * secondsRadius) - fxs) * .03;
fys += ((cy + sin(s) * secondsRadius) - fys) * .03;
point(fxs+random(-10,10), fys+random(-10,10));
// ----- MINUTE HAND -----
stroke(255);
strokeWeight(3);
fxm += ((cx + cos(m) * minutesRadius) - fxm) * .01;
fym += ((cy + sin(m) * minutesRadius) - fym) * .01;
point(fxm+random(-15,15), fym+random(-15,15));
// ----- HOUR HAND -----
strokeWeight(3);
stroke(95,192,242);
fxh += ((cx + cos(h) * hoursRadius) - fxh) * .1;
fyh += ((cy + sin(h) * hoursRadius) - fyh) * .1;
point(fxh+random(-20,20), fyh+random(-20,20));
// ----- REFRESH -----
fill(0,25);
rect(0,0,width,height);
// ---------- PULSES ----------
timer++;
fdx += (tdx - fdx) * .1;
fdy += (tdy - fdy) * .1;
// ----- SECOND PULSE -----
if(secCheck != second()){
//ll(255,0,0,100);
stroke(255,0,0,100);
ellipse(fxs,fys,fdx,fdy);
if(secCheck != second()){
tdx = 50;
tdy = 50;
timer = 0;
}
if (timer > 60){
tdx = 15;
tdy = 15;
}
}
println(timer);
// ----- CLOCK PULSE SEC -----
int radius = min(width, height) / 2;
if(secCheck != second()){
noFill();
stroke(random(255),random(255),random(255));
ellipse(width/2,height/2,clockDiameter,clockDiameter);
}
secCheck = second();
// ----- MINUTE PULSE -----
if(minCheck != minute()){
fill(255,255,255,100);
noStroke();
ellipse(fxm,fym,100,100);
}
// ----- CLOCK PULSE MIN -----
if(minCheck != minute()){
noFill();
stroke(random(255),random(255),random(255));
ellipse(width/2,height/2,clockDiameter+15,clockDiameter+15);
}
minCheck = minute();
// ----- HOUR PULSE -----
if(hourCheck != hour()){
fill(0,0,255,100);
noStroke();
ellipse(fxh,fyh,150,150);
}
// ----- CLOCK PULSE HOUR -----
if(hourCheck != hour()){
noFill();
stroke(random(255),random(255),random(255));
ellipse(width/2,height/2,clockDiameter+25,clockDiameter+25);
}
hourCheck = hour();
}
Clock Process #1
Created the base of the clock. The particles randomly form in small circles while going around the clock. The red group is seconds, white is minutes, and blue is hours.
Tuesday, February 9, 2016
Forest
void setup(){
size(480,400);
smooth();
}
// VARIABLES
int xloc = 100;
int dia = 10;
int space = 50;
int x = 50;
int y = 50;
int s = 50;
float r = random(10);
float rx = random(480);
float ry = random(100);
// DRAW START -- DRAW START -- DRAW START
// DRAW START -- DRAW START -- DRAW START
// DRAW START -- DRAW START -- DRAW START
// IMAGE
// Background Color
void draw(){
fill(171,220,252);
rect(0,0,width,height);
fill(0,0,0,200-mouseX/2);
rect(0,0,width,height);
// Sky Lines
strokeWeight(2);
stroke(128,217,234,50);
for(int i=0; i<= height; i += 10){
line (0,0,width,i);
}
stroke(128,152,234,50);
for(int i=0; i<= height; i += 10){
line (0,height,i,0);
}
stroke(152,128,234,50);
for(int i=0; i<= height; i += 10){
line (width,0,i,height);
}
stroke(190,128,234,50);
for(int i=0; i<= height; i += 10){
line (width,height,0,i);
}
// Sun
noStroke();
fill(255,252,198);
ellipse(width/2,height/2-mouseX/2,50,50);
// Trees
tree(20,0,50);
tree(170,0,10);
tree(390,0,65);
tree(400,0,20);
tree(100,0,5);
// Grass Colors
stroke(0);
fill(51,142,47);
rect(0,100,490,400);
fill(0,0,0,200-mouseX/3);
rect(0,100,490,400);
// Grass Perspective Lines
strokeWeight(2);
stroke(12,57,0);
for (int i = 10; i < 480; i += 5) {
line(i, 100, i + i/.5, 400);
}
translate(20,20);
tree(100,200,15);
tree(200,360,10);
tree(350,400,10);
tree(420,90,5);
tree(50,0,5);
tree(240,90,5);
translate(0,50);
tree(100,200,15);
tree(200,360,10);
tree(350,400,10);
tree(420,90,5);
tree(50,0,5);
tree(240,90,5);
translate(-20,70);
tree(100,200,15);
tree(200,360,10);
tree(350,400,10);
tree(420,90,5);
tree(50,0,5);
tree(240,90,5);
translate(70,60);
tree(100,200,15);
tree(200,360,10);
tree(350,400,10);
tree(420,90,5);
tree(50,0,5);
tree(240,90,5);
}
// DRAW END -- DRAW END -- DRAW END
// DRAW END -- DRAW END -- DRAW END
// DRAW END -- DRAW END -- DRAW END
// OBJECTS
// Tree Drawing
void tree(int tx, int ty, int ts){
pushMatrix();
stroke(0,0,0,200);
fill(35,108,15);
for(int i = 5; i <= 200; i += 3){
ellipse(tx, i,ts+i,ts);
}
popMatrix();
}
size(480,400);
smooth();
}
// VARIABLES
int xloc = 100;
int dia = 10;
int space = 50;
int x = 50;
int y = 50;
int s = 50;
float r = random(10);
float rx = random(480);
float ry = random(100);
// DRAW START -- DRAW START -- DRAW START
// DRAW START -- DRAW START -- DRAW START
// DRAW START -- DRAW START -- DRAW START
// IMAGE
// Background Color
void draw(){
fill(171,220,252);
rect(0,0,width,height);
fill(0,0,0,200-mouseX/2);
rect(0,0,width,height);
// Sky Lines
strokeWeight(2);
stroke(128,217,234,50);
for(int i=0; i<= height; i += 10){
line (0,0,width,i);
}
stroke(128,152,234,50);
for(int i=0; i<= height; i += 10){
line (0,height,i,0);
}
stroke(152,128,234,50);
for(int i=0; i<= height; i += 10){
line (width,0,i,height);
}
stroke(190,128,234,50);
for(int i=0; i<= height; i += 10){
line (width,height,0,i);
}
// Sun
noStroke();
fill(255,252,198);
ellipse(width/2,height/2-mouseX/2,50,50);
// Trees
tree(20,0,50);
tree(170,0,10);
tree(390,0,65);
tree(400,0,20);
tree(100,0,5);
// Grass Colors
stroke(0);
fill(51,142,47);
rect(0,100,490,400);
fill(0,0,0,200-mouseX/3);
rect(0,100,490,400);
// Grass Perspective Lines
strokeWeight(2);
stroke(12,57,0);
for (int i = 10; i < 480; i += 5) {
line(i, 100, i + i/.5, 400);
}
translate(20,20);
tree(100,200,15);
tree(200,360,10);
tree(350,400,10);
tree(420,90,5);
tree(50,0,5);
tree(240,90,5);
translate(0,50);
tree(100,200,15);
tree(200,360,10);
tree(350,400,10);
tree(420,90,5);
tree(50,0,5);
tree(240,90,5);
translate(-20,70);
tree(100,200,15);
tree(200,360,10);
tree(350,400,10);
tree(420,90,5);
tree(50,0,5);
tree(240,90,5);
translate(70,60);
tree(100,200,15);
tree(200,360,10);
tree(350,400,10);
tree(420,90,5);
tree(50,0,5);
tree(240,90,5);
}
// DRAW END -- DRAW END -- DRAW END
// DRAW END -- DRAW END -- DRAW END
// DRAW END -- DRAW END -- DRAW END
// OBJECTS
// Tree Drawing
void tree(int tx, int ty, int ts){
pushMatrix();
stroke(0,0,0,200);
fill(35,108,15);
for(int i = 5; i <= 200; i += 3){
ellipse(tx, i,ts+i,ts);
}
popMatrix();
}
Thursday, January 28, 2016
Find Bob
You can move around a spotlight, searching for Bob. If you can't find him, you can click anywhere to reveal the entire area.
void setup(){
size(600,600);
}
int value = 0;
int value2 = 255;
void draw(){
fill(value);
rect(0, 0, 600, 600);
fill(value2);
println(mouseX + " " + mouseY);
ellipse(mouseX,mouseY,100,100);
fill(255);
textSize(25);
text("Try to find Bob!",180,250);
textSize(10);
text("Click to reveal.",180,270);
textSize(25);
fill(0);
text("Bob",30,20);
ellipse(40,40,20,20);
strokeWeight(3);
line(40,40,40,80);
text("Larry",185,100);
ellipse(200,120,20,20);
strokeWeight(3);
line(200,130,200,160);
text("Jessica",110,280);
ellipse(130,300,20,20);
strokeWeight(3);
line(130,300,130,340);
text("Jack",435,380);
ellipse(450,400,20,20);
strokeWeight(3);
line(450,400,450,440);
text("Kim",420,260);
ellipse(430,280,20,20);
strokeWeight(3);
line(430,280,430,320);
text("Phil",370,110);
ellipse(380,130,20,20);
strokeWeight(3);
line(380,130,380,170);
text("Tina",230,400);
ellipse(240,420,20,20);
strokeWeight(3);
line(240,420,240,460);
}
void mouseClicked(){
if (value == 0) {
value = 255;
} else {
value = 0;
}
if (value2 == 255) {
value2 = 0;
} else {
value2 = 255;
}
}
void circle(int x, int y){
translate(x,y);
fill(255);
rect(0,0,mouseX,mouseY);
}
size(600,600);
}
int value = 0;
int value2 = 255;
void draw(){
fill(value);
rect(0, 0, 600, 600);
fill(value2);
println(mouseX + " " + mouseY);
ellipse(mouseX,mouseY,100,100);
fill(255);
textSize(25);
text("Try to find Bob!",180,250);
textSize(10);
text("Click to reveal.",180,270);
textSize(25);
fill(0);
text("Bob",30,20);
ellipse(40,40,20,20);
strokeWeight(3);
line(40,40,40,80);
text("Larry",185,100);
ellipse(200,120,20,20);
strokeWeight(3);
line(200,130,200,160);
text("Jessica",110,280);
ellipse(130,300,20,20);
strokeWeight(3);
line(130,300,130,340);
text("Jack",435,380);
ellipse(450,400,20,20);
strokeWeight(3);
line(450,400,450,440);
text("Kim",420,260);
ellipse(430,280,20,20);
strokeWeight(3);
line(430,280,430,320);
text("Phil",370,110);
ellipse(380,130,20,20);
strokeWeight(3);
line(380,130,380,170);
text("Tina",230,400);
ellipse(240,420,20,20);
strokeWeight(3);
line(240,420,240,460);
}
void mouseClicked(){
if (value == 0) {
value = 255;
} else {
value = 0;
}
if (value2 == 255) {
value2 = 0;
} else {
value2 = 255;
}
}
void circle(int x, int y){
translate(x,y);
fill(255);
rect(0,0,mouseX,mouseY);
}
Tuesday, January 26, 2016
Sunset - Static Scene
Code
size(600,600);
// Sky Base
background(245,196,35);
// Sky Gradiant
noStroke();
fill(93,0,0);
ellipse(300,280,825,825);
fill(129,0,0);
ellipse(300,280,675,675);
fill(167,0,0);
ellipse(300,280,550,550);
fill(198,33,0);
ellipse(300,280,450,450);
fill(222,83,2);
ellipse(300,280,375,375);
fill(237,134,55);
ellipse(300,280,300,300);
fill(237,153,89);
ellipse(300,280,250,250);
fill(240,200,140);
ellipse(300,280,200,200);
fill(240,227,152);
ellipse(300,280,175,175);
fill(255,252,234);
ellipse(300,280,150,150);
// Sun
noStroke();
fill(255);
ellipse(300,280,125,125);
// Water Base
fill(82,126,198);
rect(0,300,600,300);
// Water Gradiant
noStroke();
fill(0,17,62);
rect(0,300,600,300);
fill(0,25,93);
rect(10,300,585,300);
fill(7,34,108);
rect(15,300,570,300);
fill(16,47,131);
rect(30,300,540,300);
fill(32,67,160);
rect(80,300,440,300);
fill(50,86,183);
rect(120,300,360,300);
fill(60,110,193);
rect(170,300,260,300);
fill(77,134,206);
rect(200,300,200,300);
fill(162,187,247);
rect(230,300,140,300);
fill(194,210,250);
rect(250,300,100,300);
fill(219,229,252);
rect(263,300,75,300);
fill(250,251,255);
rect(270,300,60,300);
fill(255,255,255);
rect(280,300,50,300);
// Horizon
stroke(0,39,144);
line(0,300,600,300);
// Water Lines Light
stroke(106,143,240);
line(200,310,220,310);
line(380,310,400,310);
line(190,325,215,325);
line(370,325,390,325);
line(210,330,240,330);
line(350,330,380,330);
line(170,345,210,345);
line(410,345,450,345);
line(180,355,210,355);
line(395,355,420,355);
line(200,370,250,370);
line(370,370,400,370);
line(120,370,160,370);
line(450,370,500,370);
line(150,395,200,395);
line(420,395,450,395);
line(180,420,230,420);
line(380,420,430,420);
line(130,450,190,450);
line(410,450,480,450);
line(150,485,220,485);
line(360,485,440,485);
line(110,520,210,520);
line(390,520,490,520);
line(80,560,200,560);
line(430,560,550,560);
line(140,585,200,585);
line(400,585,450,585);
//Water Lines Dark
stroke(0,12,44);
line(125,310,150,310);
line(80,310,100,310);
line(10,310,40,310);
line(410,310,440,310);
line(480,310,505,310);
line(560,310,590,310);
line(20,350,110,350);
line(100,325,150,325);
line(500,315,570,315);
line(540,320,565,320);
line(510,325,540,325);
line(15,335,45,335);
line(460,335,500,335);
line(40,360,90,360);
line(100,360,115,360);
line(440,360,500,360);
line(530,360,560,360);
line(0,385,60,385);
line(500,385,560,385);
line(50,410,100,410);
line(470,410,520,410);
line(25,450,90,450);
line(520,450,600,450);
line(60,500,140,500);
line(490,500,580,500);
line(40,560,110,560);
line(480,560,580,560);
line(0,590,120,590);
line(500,590,580,590);
Wednesday, January 20, 2016
Hello World!
Hey everyone! My name's Brooke. I'm a sophomore here at Cardinal Stritch University in Milwaukee Wisconsin. I am currently working towards a major in Graphic Design, a minor in Computer Science, and a certificate in Digital Citizenship.
I'm grew up in Rio, WI, which is a small village about a half hour north of Madison. Before Rio, I also lived in Coopeville, WA on Whidbey Island until I was seven.
I really enjoy indoor rock climbing, music, games, drawing, and traveling. I've been to London, Barcelona, and France, and I hope to go to other places in the upcoming years.
Subscribe to:
Posts (Atom)


