Gallery details
BioDynamic Structures – Physical Computing
V.1 [21.Jul.2010] – arduino . processing . firefly . grasshopper
Architectural Association [London]_CCA [San Fran]
Research Team – Michael Mccune, Hart Marlow, David Merlin, Luis Quinones
Special Thanks to Christina Doumpioti, Evan Greenberg, Jason Johnson, Daniel Segraves
SERVO HACK CODE
//biodyn_mechanics_sketch - Smoothing Created 22 April 2007
//Servo 360 Hack Code developed by Luis Quinones + Michael Mccune on July 16, 2010
//Servo 360 Hack Code written by Luis Quinones on July 18, 2010
//SERVO SETUPS/////////////////////////////////////////////
//#include
//Servo myservo1;
//VARIABLES//////////////////////////////////////////////////////
const int numReadings = 1; // number of readings to smooth out (average)
int readings[numReadings]; //reading from the analog input
int index = 0; //index of the current reading
int total = 0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Sensor[s]//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const int buttonPin = 53; //pin which contains button
int sensorA = 0; // analog pin used to connect the potentiometer
int sensorB = 1; // analog pin used to connect the potentiometer
int sensorC = 2; // analog pin used to connect the potentiometer
int sensorD = 3; // analog pin used to connect the potentiometer
int sensorE = 4; // analog pin used to connect the potentiometer
int sensorF = 5; // analog pin used to connect the potentiometer
int sensorG = 6; // analog pin used to connect the potentiometer
int sensorH = 7; // analog pin used to connect the potentiometer
int sensorI = 8; // analog pin used to connect the potentiometer
int sensorJ = 9; // analog pin used to connect the potentiometer
int sensorK = 10; // analog pin used to connect the potentiometer
int sensorL = 11; // analog pin used to connect the potentiometer
int sensorM = 12; // analog pin used to connect the potentiometer
int sensorN = 13; // analog pin used to connect the potentiometer
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STARTING POSITIONS//
int currentPos = 0; //average of sample variables set to 0
int avrgPos = 0;
int constrPos = 0;
int pastPos = 0; //set pastPos to 0
int buttonState = 0; //set button state to off
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO PINS//
int servoPin1 = 23;
int servoPin2 = 24;
int servoPin3 = 25;
int servoPin4 = 26;
int servoPin5 = 27;
int servoPin6 = 28;
int servoPin7 = 29;
int servoPin8 = 30;
int servoPin9 = 31;
int servoPin10 = 32;
int servoPin11 = 33;
int servoPin12 = 34;
int servoPin13 = 35;
//int servoPin14 = 15;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SETUP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
Serial.begin(9600); //initialize serial communication with computer:
pinMode(servoPin1,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin2,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin3,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin4,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin5,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin6,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin7,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin8,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin9,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin10,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin11,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin12,OUTPUT); //set the pin as OUTPUT
pinMode(servoPin13,OUTPUT); //set the pin as OUTPUT
//pinMode(servoPin14,OUTPUT); //set the pin as OUTPUT
pinMode(buttonPin,INPUT); //set button as input
for(int thisReading = 0; thisReading < numReadings; thisReading++)
readings[thisReading] = 0; //initialize all the readings to 0:
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Loops//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop()
{
buttonState = digitalRead(buttonPin);
if (buttonState == LOW){
Serial.print("TURN SWITCH TO START SYSTEM_: "); //setting label to inform what information is being printed
Serial.print("n");
}
else{
// int direction1 = 0;
// digitalWrite(servoPin1,LOW); //setting initial state of servo as OFF
total = total - readings[index]; //substract the last reading
readings[index] = analogRead(sensorI + sensorA + sensorC + sensorB + sensorD - sensorE + sensorF); //read from the sensor
total = total + readings[index]; //add the reading to the total
index = index + 1; //advance to the next position in the array
if(index >= numReadings)
index = 0;
avrgPos = total/numReadings; //averaging out sampling values
constrPos = constrain(avrgPos,285,620); //constrain incoming values
currentPos = map(avrgPos, 285, 620, 0, 1000); // scale analog sensor values to use it with the servo.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int direction1 = currentPos - pastPos; //subtracting the current position from the past position, this will set the direction.
// @ this point pastPos = 0 in order to have a positive starting point in direction1
float distScalar = 1; //scales the amount of travel by the servo - mostly optimized @ 1:41 am with value of 0.5
//higher value makes the servo travel more revolutions
float y = ((abs(direction1 * distScalar))); //scaling down the incoming direction1 values(add absolute value to ensure
//we always have a positive starting value
int rndY = round(y)+1; //rounding off float value to use as UpperBound of the loop (add one to create a higher value)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
for(int i = 0; i <= rndY; i++){
if(direction1 < 4 && direction1 > -4){ //setting condition to keep range of 4 to -4 at a moving value of 0 to make servo stop moving
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 1 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin1,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin1,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 2 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin2,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin2,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 3 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin3,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin3,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 4 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin4,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin4,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 5 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin5,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin5,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 6 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin6,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin6,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 7 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin7,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin7,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 8 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin8,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin8,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 9 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin9,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin9,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 10 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin10,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin10,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 11 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin11,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin11,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 12 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin12,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin12,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 13 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin13,LOW); //setting initial state of servo as OFF
delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin13,LOW); //keeping the end state of the servo as OFF
//delay(50);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 14 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//digitalWrite(servoPin14,LOW); //setting initial state of servo as OFF
//delayMicroseconds(direction1); //pausing the program for amount of time ( delay = current Position - past Position
//digitalWrite(servoPin14,LOW); //keeping the end state of the servo as OFF
//delay(50);
}
else{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 1 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin1,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin1,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 2 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin2,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin2,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 3 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin3,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin3,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 4 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin4,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin4,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 5 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin5,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin5,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 6 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin6,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin6,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 7 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin7,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin7,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 8 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin8,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin8,LOW); //keeping the end state of the servo as OFF
//delay(15)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 9 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin9,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin9,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 10 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin10,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin10,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 11 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin11,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin11,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 12 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin12,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin12,LOW); //keeping the end state of the servo as OFF
//delay(15)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 13 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(servoPin13,HIGH); //setting initial state of servo as ON
delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
digitalWrite(servoPin13,LOW); //keeping the end state of the servo as OFF
//delay(15);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SERVO - 14 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//digitalWrite(servoPin14,HIGH); //setting initial state of servo as ON
//delayMicroseconds(direction1*-1); //pausing the program for amount of time ( delay = current Position - past Position
//digitalWrite(servoPin14,LOW); //keeping the end state of the servo as OFF
//delay(15);
}
Serial.print("ServoPositionValue: "); //setting label to inform what information is being printed
Serial.print(direction1); //direction1 = current Position - past Position
Serial.print("n");
//delay(25);
}
pastPos = currentPos; //feeding the pastPosition w/ the currentPos
}
}
// delay(15); // waits for the servo to get there
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
analogValue = analogRead(analogPin); // read the analog input
pulse = map(analogValue,0,1023,minPulse,maxPulse); // convert the analog value
// to a range between minPulse
// and maxPulse.
// pulse the servo again if rhe refresh time (20 ms) have passed:
if (millis() - lastPulse >= refreshTime) {
digitalWrite(servoPin, HIGH); // Turn the motor on
delayMicroseconds(pulse); // Length of the pulse sets the motor position
digitalWrite(servoPin, LOW); // Turn the motor off
lastPulse = millis(); // save the time of the last pulse
*/
Update
Recently in Portfolio
- [K]ernels

- Nike A.I.R Prototypes

- [A]nisochromatic Meshing

- Nike After Dark Tour

- PARAPRAXIS

- [001.HRR] CONCEPT BIKE

- 2040:LUNAR.OUTPOST[a]

- HE.6 2020 Prototype

- CULEBRA.NET

- PYTORCH-CLASSIFIER

- Nike Zoom Superfly Elite

- BENGBU CITY OPERA

- Nike Footscape Flyknit DM

- Jordan Hyperdunk React

- KA-HELMET

- [C]ucarachas

- [S]eeker

- [O]h Baby

- [E]l Papa

- [S]hatter.Brain

- [S]tigmergy

- [F]orces

- CULEBRA.JAVA

- [C]ulebra.MultiBehaviors

- [S]ticky Stuff

- [S]entinels

- [G]allopingTopiary

- RELUXOED

- [SRC] . Semi Rigid Car

- [P]erlin

- [E]ternal Wanderers

- [W]heelie

- [S]labacube

- [M]esh Crawlers

- [L]a Silla

- [3]D BabyMaking Trackstars

- [3]D Trackers

- [2]D BabyMaking Trackers

- [T]rackers

- CULEBRA GRASSHOPPER

- culebra.[M]eshCrawlers.3D

- culebra.[H]ybrid.3D

- culebra.[F]lorgy

- culebra.[F]ockers.3D

- culebra.[F]ockers.2D

- culebra.[N]oisey.3D

- [E]l Nino

- culebra.[S]elfOrg

- [D]rippin

- culebra.[N]oisey.2D

- [C]reepyCrawlers

- [J]eepresesCreepers

- [T]2000

- PUFFER PLEATNESS

- EMERGEN[CY]

- [L]iquified

- [S]uckedComp

- [X]plosion

- MR. EW

- [H]airGoo

- [B]alled

- [n]injaStars

- [b]loomer

- [t]rip city

- TAPE GUNNED

- [B]oom

- [M]iller Time

- [D]elamjam

- [B]rain Zapper

- [B]ig Bird

- [E]gg Tube Pavillion

- [A]llice’s Easter Tree

- [S]weet Honey

- [U]M.Urgent

- [t]oo.urgent

- [B]onnie..+..Clyde

- [B]io Mess

- [EL]Mojado.Virus

- [W]HAT the …!

- [H]ot Lava

- [P]leat Diddy

- [t]erminator easter egg

- Mr. BB

- [B]less You

- [F]antastic + Interactive

- [S]oo_Minimally_Pathed

- [P]uffer Fish.Fab

- [M]an Eater

- [AHH] Alien House Hunters

- [W]eave Machine

- Sportbike Racing

- Grappling

- Kart Racing



Leave a reply