Synthetic Architecture 02 – Anatomy of Space

I picked waiting as my simulation experience. As humans we are accustomed to things happening in our lifetime. However nature doesn’t conform to our notions of immediacy.

I decided to demonstrate waiting by creating a simulation of travelling through space. The scale would be extreme because the user will not have much interactions in the confined space. As a juxtaposition there will be astronomical events occurring at a great distance visible to the user.

 

Worlds On A Wire – HW Week 02

For this assignment I jumped into Steam with my Oculus Rift headset, which is a really great and new feature Valve decided to add. I think it’s akin to them adding native support for the Sony Dualshock 4 controller. They have been more inclusive with their platform over the last couple of years.

The experience in the Lab was great. Everything looked better then when I first tried it 2 years ago for some reason. As I mentioned in the previous post, being able to focus at home adds a lot to the immersive experience. I have to say even doing the Steam tutorial, I forgot how to “travel.” So I was stuck in the opening Lab scene for a while.., even after I teleported once. I didn’t realize it was not so rigid and I could teleport again in the same region to get closer to the orb.

As for the Unreal hero shots. I have been combining shapes and assets together. It did take me a while to figure out the importing assets workflow. I feel really restricted in the UE environment. The pain points for me is the navigation of the view port, the snapping of values and not being able to “model geometry” at a higher level that I’m used to. A part of it is learning their modeling tools more. But I have to say I am enjoying the UE interface.

For my scene I created a flat world with shapes and objects. I think it resembles some sort of ruins. The main character is the ice elemental guy.

Worlds On A Wire – Week 01 HW

For our first assignment, Todd asked us to get ourselves acquainted with VR and post our thoughts. I haven’t had much VR experience. I’ve tried Oculus Rift and google cardboard for a few minutes in the past and it was fun.

So now here we are in 2018. Some things have changed since last year, and there’s newer products coming on the horizon. Since I’m taking two VR related courses this year I decided to invest in a VR headset. I am glad I did. With my full time work schedule I needed one that was accessible for me when I had free time.

I ended up getting the Rift. The experience in the privacy of my home was much greater than in school. I had time to appreciate the content and I could hear things very clearly. I had time to forget I was home and engage with the worlds.

I would have to say Google Earth was my favorite experience we were asked to play. When it started I felt like I was in a planetarium. In fact this was better than the Hayden Planetarium because when I was a kid the projection didn’t look as good as this. The interface was clumsy, but being able to fly around and stalk your home in 3D was really awesome.

Dear Angelica was visually engaging and I appreciated the unique rendering style of it. They used scale and colors well and I felt inspired to inspect the scenes as they occurred. Henry was cute, but seemed a bit rough as far as the narrative. The world was nicely rendered, but it became too long and predictable as it progressed.

Honorable mention for the Oculus start up scene. It was a great way to get adjusted to the controls. I felt like I was really playing with the disks and rockets. The retro feel spoke to me as a kid of the 80’s.

 

Game Controller Assignment (HID USB)

For our first assignment for Tangible Interaction involved creating a controller for Lunar Lander. I decided to mimic the arcade control layout of similar games like Asteroids. Each action has a dedicated button and both hands were used. I tried both versions of Lunar Lander and felt the Atari remaster was more enjoyable for me. I thought it also would be fun to be able to switch between mouse and keyboard input.

In space you have to be resourceful.

This would have crashed Elon Musk’s rocket. There’s an Circuit Playground express connected to a breadboard as a hub and then plenty of buttons.

This is the controller layout with dual function buttons.

Relatively straightforward schematic. There are 6 momentary buttons.

To accommodate having a controller switch between keyboard and mouse output, I created a dedicated button controlled by the players foot. This allowed the player to start the game which required the mouse input and then to immediately jump into ship mode by releasing their foot.

SOURCE CODE

#include <Keyboard.h>
#include <Mouse.h>

//Button to Pin assignments
const int upButton = A0;
const int downButton = A1;
const int leftButton = A2;
const int rightButton = A3;
const int mouseButton = A4;
const int altButton = A5;
//Modifier button
int altSwitch = 0;
int prevSwitch = 0;

int range = 5;
int responseDelay = 10;

void setup() {
pinMode(upButton, INPUT_PULLUP); //Arduino reads pin 3 as input
pinMode(downButton, INPUT_PULLUP);
pinMode(leftButton, INPUT_PULLUP);
pinMode(rightButton, INPUT_PULLUP);
pinMode(mouseButton, INPUT_PULLUP);
pinMode(altButton, INPUT_PULLUP);

Serial.begin(9600);
Keyboard.begin();
Mouse.begin();
}

void loop() {

if (digitalRead(altButton) == HIGH){
int rightState = digitalRead(upButton);
int leftState = digitalRead(downButton);
int upState = digitalRead(rightButton);
int downState = digitalRead(leftButton);
int clickState = digitalRead(mouseButton);

// calculate the movement distance based on the button states:
int xDistance = (leftState – rightState) * range;
int yDistance = (upState – downState) * range;

// if X or Y is non-zero, move:
if ((xDistance != 0) || (yDistance != 0)) {
Mouse.move(xDistance, yDistance, 0);
}

// if the mouse button is pressed:
if (clickState == HIGH) {
// if the mouse is not pressed, press it:
if (!Mouse.isPressed(MOUSE_LEFT)) {
Mouse.press(MOUSE_LEFT);
}
}
// else the mouse button is not pressed:
else {
// if the mouse is pressed, release it:
if (Mouse.isPressed(MOUSE_LEFT)) {
Mouse.release(MOUSE_LEFT);
}
}

delay(responseDelay);
} //end if statement (altSwitch == 0){

if (digitalRead(altButton) == LOW){
if (digitalRead(upButton) == HIGH) {
Keyboard.write(‘a’);
}
if (digitalRead(downButton) == HIGH) {
Keyboard.write(‘d’);
}
if (digitalRead(leftButton) == HIGH) {
Keyboard.write(‘w’);
}
if (digitalRead(rightButton) == HIGH) {
Keyboard.write(‘s’);
}
if (digitalRead(mouseButton) == HIGH) {
Keyboard.write(32);
}
}//end if altswitch = 1;
}

In my code I referenced and modified code available from:
https://www.arduino.cc/reference/en/language/functions/usb/keyboard/

https://www.arduino.cc/reference/en/language/functions/usb/keyboard/keyboardmodifiers/

Divisions – Musical Interface

Divisions is an instrument controlled by light and dark to make sounds.

My inspiration was to use light instead of hard physical objects to have a conversation. Part of my intention was to add a level of abstraction between the human and the device. I also imagined how obstacles could cause miscommunication. In a performance, the obstacles, ambient light and reflections can cause misunderstands or accidentally cause the human/device to be more intimate with each other by revealing more than intended.

 

Fandom Money

For our money based fandom assignment Kar and I decided to hold a penny raffle of a licensed fan object. The goal was to advertise primarily by social media but also put some flyers on the ITP floor for good measure. We equated one penny to one ticket entry. This lowered the level of commitment required to participate while potentially allowing a greater number of fans to participate. Kar was the subject matter expert for social media so she managed that through her exiting accounts.

Honestly the contest structure was mostly decided before we even knew what the fandom itself was. I was interested in hunting for a valued fan object(s) so I went out to do some field work.  I went to Forbidden Planet first, hoping to find a hidden gem. Unfortunately, there weren’t a lot of good prizes in the $20 under range. I wanted to bring back something that was immediately worth the price in my eyes.

It’s funny to think of it this way, but Barnes and Noble is such a fandom hub in my opinion. I’m not sure if this their business strategy to stay viable as a brick and mortar store but here they are. I again ran into a lot of pricey cool fan objects like figures and accessories, but then I found Mega Man and Zero.

They were $10/each. They didn’t seem to be too common as I’ve never heard of the manufacture either. So we found the fan objects and started the raffle. Kar distributed the contest flyer through the web. Neither of us are Megaman fans, so there was a challenge of reaching interested people.

……….