…this one time, at iPhone Dev Camp…

What a weekend.

Wednesday of last week I turned to my co-worker Zac White and asked if he’d thought about a project for us to do over the course of iPhone Dev Camp.  When he paused for just a little too long I made a suggestion.

“Let’s make an Augmented Reality library and give it away.”

We tossed around a few other ideas, but in the end, we settled on what would later be called the iPhone ARKit.  Or, if you parse the text in your head  like I do, “iPhon Ear Kit”

As we piled into my car to drive down on Friday night we started laying down the design and architecture for our library.  It would be powered by ponies, cure cancer, and feature a trebuchet that could launch a medium sized grapefruit into low orbit.  We would later revise our specification to include launching a watermelon.

I’d love to say that Friday night, immediately on arrival, was when the kit got started, but Friday was a time to drink, talk to people who are smarter than I am, listen to BT fiddle with his laptop on stage for an hour, and drive home.  So really, Friday was a chance for us to create the XCode project…and for me to remember that Objective C was designed by space aliens who hate us C/C++/Java people. (I’m learning, cut me some slack)

Saturday was when things actually started to take shape.  We’d decided we would approach the problem from two sides.  Zac would take the harder job of building the ARViewController, the object that renders the X/Y of an array of views given the Spherical coordinates of Distance, Bearing, and Inclination.  I, on the other hand, would write the code to convert Latitude and Longitude points into the aforementioned spherical system.   Luckily for me, a little work with Google provided most of the pseudo code I would need to get my piece working and a little debugging got me the rest of the way.

Just before lunch on Saturday, Christopher Allen announced, from the stage, “There is a team here somewhere who’s working on a library for Augmented reality…” I lept from my chair and yelled…and nearly before I could sit back down we’d picked up Charles.  Charles had enough energy for 3 people and helped out with just about everything.  Soon thereafter we picked up Sid. Sid seemed to have a magical knack for running his video camera at the right time…much to my chagrin (as you’ll see later) and had experience in finding homes for open source projects.

As our team came together it became excruciatingly clear just how excited everyone at the conference about the prospect of an Augmented Reality toolkit.  I say excruciating, because as time passed my role morphed from engineer and task-master to defensive lineman.  Person after person would swing by our table and ask ‘are you the AR guys?’  At which point I’d leap from my seat, before they could distract anyone else, and have a really interesting conversation about how they wanted to eventually use the library we would be making.

It was during this time that I think I really got iPhone Dev Camp’d.  It was filled with busy, helpful, smart people who want nothing more than to make millions of dollars for Steve Jobs…..*cough* I mean contribute an interesting application to the world at large.  Joking aside, I met a tremendous number of interesting people over the course of the weekend.  My wallet is still full of their business cards and I’m afraid I have no idea who’s face goes with who’s card.  Sorry everyone!

It was also during this time that we picked up our clean-up hitters, Arshad and Kevin.  Arshad had the second most Obj-C experience amongst us and the two of them would come to provide the demo application that made our presentation as wupass as it was.

Lunch came and went and as it got dark I started getting a little worried…I was still struggling with the geographic calculations and Zac was still trying to normalize his accelerometer data.  It was then, encouraged by Charles, that I disregarded the instinct that every engineer has and asked for directions.

Taking the stage I mumbled/shouted (something that defies the laws of physics unless you have a microphone): “Uhm…Hey, I’m Chris with the AR team, it uh…turns out that math is hard and we’re not very good at it.  Are there any math or 3d graphics guys out there that could give us a hand?”

Two of them were at the table before I got back.  With their help Zac got his sensor data behaving itself and I sorted through my problem with the bearing calculations (it turned out to be a problem importing the .c file I’d written the helper functions in) a few hours later and we had a Working Demo! (I don’t have a video of it, but here’s what we had running Sunday afternoon)

We had SOMETHING to show, and it was then that the project looked like it was actually going to work.  There was still a lot to do, but we were most of the way to something……. it wasn’t watermelons in space…but it was almost as cool.

Saturday night was a chance for Zac to pull in my helper functions and for me to look up the lat/lon locations for all the iPhone dev camp satellites.  (there were a lot) and go to bed.

Sunday Sunday Sunday!  We cleaned up, added the geo-location information, debugged some angle calculation problems and fretted about how the presentation would go.  Just as I was putting the last touches on the Keynote slides, Arshad piped up, “I think I can show this ghost thing during your demo if you want!” At which point he and Zac bent over and they cranked out all the remaining X-Y translation problems with a little “EXTREME” pair programming.

With that, it was time to give our demo.  I overcame my jitters and we stumbled up on stage to give a talk which was twittered by Robert Scoble thusly: “Cool iPhone augmented reality toolkit just demoed to cheers.”

Here’s a link to a video from the stage

One hour, and many twitter messages later….the winners were announced.  We’d taken the award for Best Open Source application.

While I hate watching videos of myself, Sid, bless his cotton socks, made a 10 minute documentary about us that you can find here

That, was what happened, this one time at iPhone Dev Camp.


4 Responses to “…this one time, at iPhone Dev Camp…”

Leave a Reply