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.


#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);


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)) {;
// else the mouse button is not pressed:
else {
// if the mouse is pressed, release it:
if (Mouse.isPressed(MOUSE_LEFT)) {

} //end if statement (altSwitch == 0){

if (digitalRead(altButton) == LOW){
if (digitalRead(upButton) == HIGH) {
if (digitalRead(downButton) == HIGH) {
if (digitalRead(leftButton) == HIGH) {
if (digitalRead(rightButton) == HIGH) {
if (digitalRead(mouseButton) == HIGH) {
}//end if altswitch = 1;

In my code I referenced and modified code available from:

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.


Thoughts on Ready Player One

We were assigned a science fiction novel to read for our Expanded Cinema class. The book appears unassuming and the title is a bit cheesy. However after a rough first few chapters I started to become more engaging.
The story revolves around a kid in a dystopian world where resources and wealth is scarce, but one technology prevails as a sort of free “drug”.  This drug is a Virtual Reality console connected to a online world with millions of other people.
The through back references to the 1980’s are far and plentiful. I feel bad for people who didn’t grow up in the 80’s in general, but even more so for people who have to read this book. I got most of the references, but they can get tiring or boring for younger people. It was a nice twist to have a reason for 80’s  pop culture be so widespread in the book’s world if only just to drop a dozen one liners in a page.
That being said, I am found the protagonist to be more likable, and once the book actually turned him into a worthy protagonist I started to relate to what he was experiencing.  Cline’s take on VR is interesting but not an original idea on it’s own. There is an anime called Sword Art Online which has a similar concept. You also see random references in pop culture that kind of allude to this escape from reality like Hackers, Star Trek and the Matrix.
This is probably one of the first times since I was a teen that I read a book before it appeared in the movies. I also feel that if and when VR irons out its quirks, its addiction would probably be as bad as described in the book.

Classwork #2 Projection Mapping – 7/13

For this weeks class, our assignment was to create a display using projection mapping. For this work I was able to resurrect null-fish who has been sitting under my desk for a year. My goal was to create an underwater scene with the fish statue, some foam pieces and plastic background bin.
Things going good until me version of Madmapper 2 starting crashing periodically. In addition to that I forget to save during some of those crashes.
In the end I believe this is a good concept and I think I would attempt to work on it again.

I’ve attached some stills and video documentation below. Footage and images were used from various sources online.