







Concept
Have you ever wished you could be instantly transported, through some magic or indescribably advanced technology, in a way and to a place such that you could escape all the pressures and stress of real life? If you can imagine such a place, what would it look like? What would the vibe be? Would it be hot so you could relax? Would it be cold so no one else would ever want to visit? The Secret Spot imagines that little place we all set aside, even if it’s just in our minds, and shows how cool it would be to have the power to flip between these worlds whenever we wanted.
Technical
This was developed with the Unity game engine and I used the ZigFu library to get skeleton detection with the Kinect. The ZigFu documentation is non existant and the examples are a little tricky, but I found an intro/documentation to ZigFu and the examples included in the package by Phoenix Perry which breaks everything down real nice-like. The ZigFu dudes currently provide nothing of the sort. Although, they have provided the library. I’m sure their busy with that. :D
Once I got the hang of the skeleton tracking and setting up all the dependent gameObjects and scripts, I decided I would attach the main camera to the head of the openNI skeleton and go for a first-person perspective. It’s really impressive how much easier this process was than using openFrameWorks for a similar kind of interaction. Once I decided on the portal concept I needed some way to detect when I had passed through. I suppose I could have just done it using boundaries on the camera, but I decided to use a collision detection between the camera and the distorted sphere just behind the portal. I found this intro to preparing game objects for physics very helpful. The script basically says if the camera hits this sphere behind the portal, change the skybox texture and the sphere texture. That’s really it.
Future Versions
I would like to be able to flip the orientation of the rotation, and force the user to have to turn around to go back through the Portal in the opposite direction. It would give a more realistic portal impression, but I’m not sure how feasible that might be – especially since this is just on screen. I also would like to change the capsule color, which I had set up but I couldn’t decide and be happy with how the whole color palette would invert so I just kept the portal black for now. It would also be great to have my own skyboxes from places I actually cared about – like ITP and home. I could just flip back and forth.
/*
Build a Portal
This script builds my geometry
*/
@MenuItem ("Test/Fred: Build Portal")
static function BuildPortal() {
var portalDimensions : int = 4;
var portalScale : int = 10;
var centerOfPortal : Vector3 = Vector3(0,0,0);
//
for(i = 0; i < diatomDimensions; i++){
innerCap = GeometryHelper.CreateCapsule(Vector3(portalScale/1.75,0,portalScale/4), Vector3(portalScale/3,portalScale/2,portalScale));
innerCap.name = "innerCap-" + i;
innerCap.transform.rotation.eulerAngles = Vector3(90,0,90);
innerCap.transform.RotateAround(centerOfPortal, Vector3(0,0,1), 360/portalDimensions*i);
}
for(j = 0; j < portalDimensions*3; j++){
outerCap = GeometryHelper.CreateCapsule(Vector3(Mathf.Cos(360/portalDimensions*j),portalScale*1.75,portalScale/4), Vector3(portalScale/3,portalScale,portalScale));
outerCap.name = "outerCap-" + j;
outerCap.transform.rotation.eulerAngles = Vector3(0,90,0);
outerCap.transform.RotateAround(centerOfPortal, Vector3(0,0,1), 360/(portalDimensions*3)*j);
}
}
/*
CapsuleRotate
This script controls the rotation of the capsules in the portal
*/
public var capsuleMultiple : float = 0.0;
function Update () {
transform.Rotate(Vector3(0,0,1) * Time.deltaTime * capsuleMultiple * 2, Space.World);
transform.RotateAround (Vector3.zero, Vector3(0,0,1), 20 * Time.deltaTime);
}
/*
LightColorAdjust
This script just creates a little pulse for my light to add some drama to the portal
*/
var duration : float = 1.0;
var color0 : Color = Color.red;
var color1 : Color = Color.blue;
function Update () {
// set light color
var t : float = Mathf.PingPong (Time.time, duration) / duration;
light.color = Color.Lerp (color0, color1, t);
}
/*
HitTest
Attach this to my camera, which is anchored to an openNI skeleton
*/
public var portalA : Material;
public var portalB : Material;
public var skyboxA : Material;
public var skyboxB : Material;
public var capsuleA : Material;
public var capsuleB : Material;
var diatomDimensions : int = 12;
private var lights : System.Boolean = false;
private var science : GameObject;
science = GameObject.FindWithTag("Science");
function Start() {
RenderSettings.skybox = skyboxB;
(science).renderer.material = portalB;
}
function OnCollisionEnter (hit : Collision) {
if (hit) {
var portal = hit.gameObject;
if(portal.tag=="Science"){
print("We have acheived science!");
if(lights===false) {
portal.renderer.material = portalA;
RenderSettings.skybox = skyboxA;
lights=true;
}else{
portal.renderer.material = portalB;
RenderSettings.skybox = skyboxB;
lights=false;
}
}
}
}
Hi there. I'm a design & code creative living, working and studying in sunny Brooklyn, NY. I'm currently finishing my thesis project at ITP and looking forward to what comes next.
Keywords: Design, User Experience, Interaction Design, Product Design, Visual Communication, Branding, Processing, Data Visualization, HTML, CSS, Javascript, Python
2010.09 — 2012.05 (expected)
Master of Professional Studies
Interactive Telecommunication Program (ITP)
Tisch School of the Arts, New York University
2010.09 — 2004.05
BA Visual Communications with minor in Art History
The George Washington University
Graduated Cum Laude
National Society of Collegiate Scholars
Spring 2003 semester at Sydney University, AU
2012.01 — present
Interaction Designer & Developer, SumAll, New York, NY
I'm currently working on an amazing data product with an incredible team here in SoHo. Check us out!
2011.06 — 2011.09
UX Designer, Microsoft Bing, Bellevue, WA
Worked with design, editorial, dev and program management teams to scope, design and develop prototypes for soon-to-be-released Bing.com feature during a summer internship. The internship culminated in two presentations of the feature prototypes to senior leadership at Microsoft as well as the Bing design team.
2007.02 — 2010.08
Graphic & Interaction Designer, Empax, Inc., New York, NY
Created a range of environmental, print and interactive materials to promote nonprofit clients and their causes. responsible for designing and presenting brand strategies, identities, print collateral, environmental signage, animation, user experience and interface, content management system setup and third party plug-in and data integration, search engine optimization, user analytics and testing.
2006.12 — 2011.08
Freelance Graphic & Interaction Design Consultant, New York, NY
Worked as a sole proprietor with various clients from retail, music, film, nonprofit, real estate and technology industries to create and improve existing brand and user experiences across many platforms and media.
2004.04 — 2006.01
Graphic Designer, The George Washington University Communication & Creative Services, Washington, DC
Worked with project management and external production vendors to deliver a range of print and interactive material related to university publications and communications initiatives. responsibilities included design and implementation of print collateral, posters, animation, environmental signage, web publication and press checks.
2011.07
Freakonomics (Web),
“What Would it Be Like to Climb 26 Years of Federal Spending?”
2011.04
Flowingdata (Web),
“Physically climb over budget data with Kinect”, by Nathan Yau
2011.02
Logo Lounge 6 (Book),
by Catharine Fishel and Bill Gardner, Rockport Publishers - Gedenk Logo
2010.12
“A Bartender That Pours The Perfect Shot, Every Shot”, by Matt Buchanan
2009.11
Basic Logos (Book),
by Index Book - The 2007 Gotham Awards Logo
2008.10
Print Magazine,
“Dialogue: Martin Kace”, by Steven Heller - The Alliance for Climate Protection Website
2010.12
ITP Winter show 2010, NYC
2011.04
Data Viz Challenge Party, hosted by Eyebeam and Google, NYC
2011.05
ITP Spring Show 2011, NYC
2006.01 — 2006.12
English Teacher, NOVA Japan, Kure-shi, Hiroshima-ken, Japan
Taught and mentored students of all ages and abilities in small to medium-sized classes to improve proficiency in english linguistics and conversation.