MHacks V was really, really awesome. Kinda cold, being January in Ann Arbor, Michigan, and all, but awesome nonetheless. At the beginning of MHacks, during the expo, Google handed out some Cardboard units, their awesome and inexpensive VR solution. I put in my old Nexus 4 smartphone, which I'd brought along in stead of my preferred iOS devices in case I felt like Androiding something. Many of the confused bystanders waiting patiently in the hardware line after kickoff remember how enthused I was with the awesomeness of Cardboard—I wouldn't put it down, and looked like an idiot standing with a cell phone in a cardboard box attached to my face, pacing around slowly with my arms out and making occasional "woah" and "ooh, ah!" noises...for a solid half hour.
But Google hadn't thought to make any Cardboard app or developer library for iOS devices, so my teammates, with their iPhones, were unable to share in the awesomeness of Cardboard! We fixed that by writing a Cardboard-compatible Virtual Reality framework for iOS, from scratch.
Cardboard for iOS does almost everything Google Cardboard does on Android, but mostly it provides a proof of concept demo and a jumping-off point for future development on the platform.
- Viewing of Google Photospheres
- Use of the magnetic button on the Google Cardboard, integrating the iOS Magnetometer
- Panning and adjustment of the variables for roll, pitch, and yaw from the motion of the user's head and device.
- Inertial navigation capabilities
- A hint of magic
Our team was made up of me, Tristan Seifert, and Mihir Trivedi. Tristan and I split the iOS work, manipulating Apple's SceneKit and CoreMotion into all sorts of shapes to get the magnetometer-detected "button" on the cardboard and any possible head movement to translate well into our customizable virtual worlds.
Continuing my impressive (to me, I can't possibly be this competent) hackathon winning streak, we won the Best iOS App prize from Apple.
Aaaand here's another random shot from MHacks V, of me at my laptop (Tristan probably took the photo):