World's Largest Volumetric Display Ever?

I just came back from a trip to Guadalajara where Matt and I built what I believe to be the world's largest volumetric display in history. As of right now, I don't have much documentation (clean good photos, videos); those come later.  I hope the images below give a good enough idea:

 

To give a better sense of scale, below is an image of the project early in the construction process (only about 10% strung):

It's big.

The structure itself is 40' tall, and 30' wide and deep.  The volume of the structure itself is 36,000 cubic feet (about the same internal volume of a 747).  The volume of the rendering size is roughly half that.  Still, much bigger than any other volumetric display I've ever heard of.

 

But this post isn't about the build process or the technical specs or the frustrations or fears.

 

I just wanted to write this post to express how happy I am right now.

In 2006 I developed a little idea that people seemed to love -- the idea of projecting light onto strings.  I made some prototypes, published some stuff on youtube, and got some attention from random internet people.  That's about as far as I was initially planning to push this idea.

At the time, I knew that, at least in principle, the idea could scale to fill up an entire theater.  When I had those ideas, I never really imagined that one day that would actually happen.

In some ways, this last installation was a dream come true.  A huge team of some really talented people rallied together to get this installation up and running.  While there were plenty of frustrations and set-backs, everybody's heart was in the right place, and everybody just placed their faith in my and Matt's vision.  A lot of the hired help probably had no idea what was happening while they were helping out, but they were really great, and when things got rolling, we were pushed through a whole ton of work really quickly.

And as soon as Matt and I and our whole team started reaching maximum velocity with work, one by one, other artists popped up and started setting up their projects.  I was so neck-deep in Lumarca work that I didn't really have time to engage with other people's work or process until just before opening, really.  As soon as I finished the Lumarca work, I looked around at the other work and realized that the whole theater had turned into a digital garden with so many interesting projects.  Only then did I realize that this was going to be a damn fine show and that we all had something to be really proud of.

The most touching moment was when the doors opened and people started flooding in from the streets of Guadalajara.  I was told that 1500 people came to the opening -- a number that far outdid anybody's expectations.  I got the sense that the whole city had been patiently waiting for something like this -- as if the city let out a sigh of relief -- as if all the closeted media arts geeks of Guadalajara came out of hiding at the same time and realized that there was definitely space for them here in this town.

I am so grateful that I was given the chance to share my work with so many eager minds and bright faces.  I'm really proud of my work and on the potential impact that I've had.  I think everybody at the festival (artists, administration, crew, security, volunteers) should be proud of the entire festival.  I really don't think I'm fantasizing when I say that we've helped reshape the cultural landscape of Guadalajara.

Lastly, I wanted to share few things I'm thankful for:

  • That Matt Parker guy
  • Everybody's faith that this would all work out in the end
  • Marco's family for extending the invitation out to Tapalpa
  • Every last staffer at MOD, but especially:
    • Margarita Sierra
    • Marco Antonio Castro
    • Juan Carlos Robertson
    • Janet, Sandra, Susana, Augustine
    • Octavio, Oscar, and the whole crew
  • Everybody at Larva, especially:
    • Alejandra
    • The people behind Cafe Bonito & El Menu Del Dia (Yum!)
    • Security
  • The crew
    • Arturo
    • "Mi Hijo" Christian 2 y sus amigos (Especialmente Christian 1, Michael, Giovanni)
    • The students from CAAV (especially Jorge, Argel)
    • Horacio
  • My 3 years of Spanish I took in high school
  • And those skype calls with Morgan

ofxPortalCam - Viewing your monitor as a window, not a picture

ofxPortalCam is an addon for openFrameworks that allows you to use your monitor as if it were a window through which you could see 3d content.  In other words, it transforms your monitor into a digital diorama using the Kinect for head tracking. [youtube]http://youtu.be/9hOUw3zqobc[/youtube]

Here's the project in a nutshell:

1) The Big Idea

A computer (that is hooked up to both the Kinect and the screen) gives the viewer an image based on these three different things:

  1. where the viewer's head is located
  2. where the screen is located
  3. the shape of the digital scene

With this information the computer knows what image to present to give the viewer the illusion that the screen is a portal into a 3d space.

2) The main problem: Monitor space and Kinect space

So, in isolation, I have all three criteria.  The Kinect gives me the user's head, openFrameworks defines where the screen is located, and the code I use to build my openFrameworks app defines the shape of the scene.

But there's one big problem.  The Kinect is defining everything according to one perspective, and openFrameworks is telling me everything in another perspective.  In other words, the location of my head according to the Kinect doesn't correlate to the location of my head in screen space.  So we need to do some calibration so that we can translate back and forth between the two types of space.

3) The solution: The Human Body

Luckily for us, we've got bodies!  Bodies are awesome for this purpose because they (A) can be tracked by the Kinect in Kinect space and (B) can define the location of the screen by assuming poses.

The calibration process works like this.  The screen presents a dot.  The user puts their hand between their eyes and that dot.  Once there, the user presses a button.  A program then uses the Kinect to record the shape of their body.  This creates a line that extends from the head out through the dot towards infinity.

This is done three times on different parts of the screen to complete one set of calibration points.  The points are: top left, right, and bottom left.

Once these readings are taken, we define a few other sets of points.

4) Moar Datums!!1

Here's the second set of calibration points:

And the third:

Note that every time a set of calibration points is taken, it's from a different place in the room.  Also note that from each set of points, it's always the same three points on the screen: the top left, right, and bottom left.

5) Boil down the data

Once you do this a number of times, you have a really useful dataset.  The data is defined in Kinect space (built off of the geometry of your body), but it describes the location of the screen!  When you put all the data together, you get a bunch of lines that all intersect in 3d space at three discrete points.  These three points define the plane of the screen in Kinect space.

ofxPortalCam then takes this plane definition and gives developers tools that allow them to easily translate from one space to another.

6) So Now What?

When you have the screen defined in Kinect space, it means that you can do some cool transformations to make it look like the screen isn't even there -- like it's a portal into a digital space.

The best part about all of this is that it's an OF addon -- so if you've got any interesting openFrameworks projects, they can integrate this addon and take a look at the project in a whole new light.

Game-based Goal Setting

If you want to watch (and not read): [youtube]http://www.youtube.com/watch?v=LMvB8oP99fY[/youtube]

If you want to read the cliffnotes (and not watch):

I've got an Excel spreadsheet that graphs my progress on my goals.  A lot of the design is inspired by my experience playing video games.

With video games, rewards are clear.  This is because success and failure are clear.  Additionally, games give you consistent feedback to affirm or discourage behavior.  One of the simplest forms of feedback is the visual feedback known as a "bar" or "meter" (like "health bar" or "experience meter").

Clear rewards makes life better : )

I applied this sort of reward system in my life by creating some goals and visualizing my progress with this excel sheet.

Goals-Template.xlsx

*Note -- it's only tested to be compatible with Microsoft Excel. I'm quite certain it doesn't work with the google docs spreadsheet reader. Some features work with Open Office, and some don't.

This spreadsheet tells me how far along on my goal I've come.  It also tells me how far along my goal I should be according to a pace set by my start and end dates.

Download, share, innovate.  But if you innovate, send me back a copy!

Spatial Computing 3!

Spatial Computing 3 has finally arrived! [youtube]http://www.youtube.com/watch?v=-2I4tVuuEQE[/youtube]

First and foremost -- thanks goes out to every single person who helped out.

Second, if you're unfamiliar with the project and want some context, read more about it here.

As you should be able to tell from the title of the video, SC3 is about using the Spatial Computing paradigm as a way to reinvent the home theater system.

While the video does feature a bunch of interesting ideas, the crux of the video is the ability to scale what you're watching with a simple gesture. This gives the user the ability to watch the content at any size, whether that be in front of them or in the space around their body. It also is a nice way to transition and travel about in a digital environment with the use of a few simple gestures.

I'm glad I decided to spend the majority of this video talking about this concept because it's deceivingly complicated. When I set out to do this video, I wasn't sure if the "aquarium" idea would actually look convincing. I was surprised to find that it ended up working so well.

The most exciting moments of working on the project were when I would try out a new effect and it ended up working. Heh, what a relief. The times that I specifically remember was when I was working on the glowy intersection effect (whenever a 3d model intersected with the physical wall of the room). Took a lot of trial and error but I'm pretty happy about those little effects -- they really add to the visual story that there are two competing 3d environments that need to somehow synthesize.

I'm Speaking at SXSW!

Well, I guess, more accurately, I should say that I'm going to be speaking on a panel at SXSW this year.  The topic of conversation will be "Detached Messages: Immersive and Spatial Systems".

I'll be speaking alongside Adam Pruden, a smart dude w/ a background in architecture, who's involved with the Fly Fire project, which is a design for a volumetric display made of LEDs attached to mini-helicopters:

[youtube]http://www.youtube.com/watch?v=CnEN9B18v6Q[/youtube]

Here's a brainstorm of some of the things I am considering talking about:

  • Lumarca
  • Spatial Computing
  • Dancing and some of the physical frameworks developed around spatial media
  • The craft behind the magic of making things levitate and why this is relevant to spatial media
  • Why the "digital" is thought of as visually 2d, and how this expectation plays out

In any case, if you wanna hear about it all, come on through and watch me blab for an hour!

Re: My Business Card

Okay, so my business card blew up on the internet last night.  It climbed all the way to number 1 on Reddit, in fact!  Here's what I have to say in my defense to common critiques.

1) "Information Artist" is obnoxious and pretentious.

The first thing to clear up is that this is not a term like "code ninja" or "person who is actually just a front end dev who thinks he's an artist." I hate those people as much as you do. No, I probably hate them more.

This card is for my art career. This doesn't mean the card is NOT obnoxious (art careers themselves are, by my definition, obnoxious), but it helps explain what's going on here.

I do a lot of art work. I have a residency at an art and technology center. I exhibit my work around the world (*in fact, I'm exhibiting in NYC in a couple weeks!).   I give talks at conferences.  This is a serious title I give myself.

I will say that I have a difficult time pinning down exactly what it is I do, and "3d Information Artist" is the clearest way I've figured out how to do it. This is something I'm still working on.

As this card is for my new media art life, I need to cast a wide net. The tech art world is peppered with people who have never plugged in their own computer to people who code in assembly. While this is green-on-white console design makes me squeal with glee (as this redditor kindly mocked up below), I am not my intended audience. Museum curators, social media folk, internet art people... these are who I want to make a good impression on.

2) Well I'd never hire this guy!

I don't give this card out to people who are looking for employees. I give it to people who have connections to arts foundations and organizations. If someone gave me this card and wanted to build my website, I'd also not hire this guy.

3) Saving XML as .txt file will make your computer blow up.

Okay, but seriously, yes, I agree with the overall cringy-ness of that idea. XML should be stored in an .xml file. This business card is old, and the newest prints of my card do have the proper extension.

4) "I use Vim!" "I use Emacs!"

Well, apparently even Notepad isn't immune to this rage.

But seriously, who edits XML in Notepad?  Who still hangs around in Windows XP?

I chose XP Notepad for this card because I feel that its chrome is the most iconic digital imagery available. It is the least likely imagery that you will see IRL.

If you're wondering, in practice I use Textmate and E Text Editor.  Also, I rock Windows 7 and OSX.

5) Notepad doesn't have syntax highlighting!

Yep, I cheated. Deliberate choice. I mocked up a few cards that were all black and there was way too much visual clutter.  I was more concerned with connoting information than I was about the degree of accuracy of medium.

6) Whoa leading and trailing whitespace! Are you trying to tell me that your name is "        Albert Hwang      "?

: |

Fair enough. I will be honest that I didn't realize this until someone put it on Reddit. Not sure how to resolve this...

7) XML? Why not Json / YML?

I was considering making a shit ton of different designs and letting people choose when I gave them out. Including Mac and Vista and .... and then I got bored with that idea and gave up.

This is XML because it is the strongest and clearest visual imagery. JSON is too cluttery for those who don't know code, and YML too neat.

8) This is Photoshopped -- no print shop would be able to make those cuts.

I did these cards myself.  This is why the edging is so exact.  The card in this photo more so than many, actually.

I did find a local print shop whose technicians I'm sure hate this "Albert Hwang" guy.  The cards are no longer as exact as they used to be, but this is worth my time and money.

And now to stop focusing on all the negative feedback:

Thanks internet for making my day!  My friend Amber Case who took this photo (and I believe who is the owner of the mysterious thumb in the photo) tells me the photo got 600k+ 700k+ views!  Crazy!  If you want one, sign up for my mailing list.  I send out announcements on that thing whenever I travel or exhibit.  If we meet in person, ask for a card!

And lastly, my absolute favorite comment in the whole Reddit thread is a description of what an information artist is, by Redditor MindBleach:

Someone clever enough to come up with this idea, but not thorough enough to ensure it makes sense. (permalink)

It is spooky how accurately this sentence describes my life these days.

Update: Source File, if'n you want to make your own.