Chillin' In Space

25 Feb 2012

Chillin' In Space is a navigable NASA boneyard & veritable chill spot that I made with Alejandro Crawford in Unity3D. The objective to Chillin' In Space is to do exactly that, chill in outerspace. We've littered space with various NASA artifacts, like Voyager and the Space Shuttle, as well as a few Star Trek models, the shuttle craft and space dock. The space program's past is intermingled with a future as imagined when the NASA artifacts were new. The astral explorer is invited to either think about this or just hang out and look at the stars.

Using an Arduino, an accelerometer, two momentary buttons and a potentiometer we built a control box for the program. One applies forward thrust, the amount of thrust is determined by the potentiometer, labelled "Chill Rate." The other button slows the craft to a halt. Changing direction is achieved by flicking the control box in the desired direction.

To download Chillin In Space to play on your computer (with keyboard and mouse) and to see pictures of the control box visit chillininspace.us.

Putting Your Face in a Webpage with Node.js & FaceOSC

10 Feb 2012

FaceDOM uses Kyle McDonald's ofxFaceTracker to send the points of a person's face to a web page and move DOM elements into the shape of the face.

This past week in Kyle's Appropriating New Technologies we were asked to do something with face detection. After seeing Greg Borenstein send the Kinect skeleton data to a web browser last fall I've wanted to experiment with Node.js and sending things to the browser that don't traditionally belong there.

Also this project is in response to Kyle's People Staring At Computers. We stare at our computers a lot and they don't respond to our stares. Mouse clicks and key hits yes, but reading an article on the web is still largely non-interactive.

Currently FaceDOM is a proof of concept. I plan to add more features and a finer amount of detail and response to facial gestures, such as an open mouth, closed eyes, etc. Another important addition will be dynamically parsing the page, currently the elements chosen to form my face were directly coded with the proper CSS tags.

The source code is available on Github here.

On Being Memorious

30 Jan 2012

The first assignment in Pixels to Polygons was to build a space from memory using only Unity's primitive shapes placed and manipulated entirely through scripting.

Remembering a Place

For my space I chose the view from an orange couch that used to be at the coffee shop from my college town. It was a spot where I spent much of my final two years at Kenyon College while doing homework and hanging out. There was a matching orange chair to the left and then a large south facing window with many trees just outside.

New Territory

I've spent almost the last year in web programming and the command line, manipulating documents and text. Though my first year at ITP involved a lot of Processing I rarely moved in to 3D environments and when I did, the use of pushing and popping the matrix is different than Unity's use of vectors for positioning.

The hardest part, and where I spent many hours, was finding out the hard way which primitives are best to use for what purpose. The floor plan of the coffee shop was not a simple rectangle but had two sections butting out with triangular corners. Due to these two triangular corners I decided it would be easiest to build the entire floor out of a series of triangles. This route didn't work to well, it required a lot of lines of code and did not seem efficient. Before figuring out how to best tackle the floor I decided to build the orange chair. After a poor reading of James George's GeometryHelper class I did not realize that cubes in Unity could be deformed to solids with different sides of different lengths. Without this knowledge I proceeded by building the chair out of a series of planes.

Wow, that was difficult and didn't work well. Finally I figured out the CreateCube function which made everything much easier. Rotations are hard to achieve with scripting. The command for rotating a camera takes a vector for where to point towards yet the UI gives degrees of rotation.

The final result is very plain and not too lush. My false starts were frustrating but I learned a lot about programming in 3D. Using scripts to individually place and rotate every item is very time consuming and I look forward to using Unity's UI to build the objects and then scripting behaviors. The source code is available on Github.

Reading List from Powerful Ideas

05 Jan 2012

Last semester I took a course titled Powerful Ideas: Useful Tools to Understand the World. It was taught by Nancy Hechinger and Alan Kay came in once a month as well as wrote us each week via email.

Throughout the class many, many books were mentioned. Way more than could be read in one semester, more even than I could manage in a year. This list is a great addendum to Alan Kay's own reading list.