My name is Hassan Karaouni and I'm a grad student at Stanford University. I recently made the transition into focusing my studies on A/VR and am most excited by the power to take people to entirely new worlds. I am eager to explore applications to education and especially developing countries or communities neglected tech.
A bug kept me out of the forums til now, but I'm glad to be here. I've done tons more over the last few weeks but prefer to keep my posts brief and readable, so here's a quick summary. More news coming very soon!
Week 1: Explorations @ SAP SAP is taking some big steps to get into the A/VR space and invited me to talk about the potential of A/VR in education at an annual conference called HIVE.
It was a great time to bounce ideas off of tons of experts, big thinkers and enthusiasts.
Takeaways: 1) The best educational A/VR applications might not be explicitly educational - they may just be applications that turn out to have some great educational value. Think Minecraft! 2) A/VR could help developing countries skip generations of inferior tech. What if everyone in a developing country had a Hololens? How would the country's trajectory of development change?
Week 2: The Power of World-Building This was the first time I dove headfirst into some full on world-building in Unity. I came up with a few quick prototypes and want to study building powerful worlds in more detail. Carl Callaewart's talk was a great start! Here's a shot of my first prototype world:
Just got back and settled in from a trip to Alaska! I did not bother to try and post my updates because WiFi was so spotty, but fortunately Unity was as reliable as ever. I'll be posting about my weekly progress over the next few days to catch up.
Week 3: A Pivot I joined the Launch Pad to gain much-needed support for a series of workshops I will continue to teach middle and high school students in my free time. In the workshop, students build virtual worlds for the joy of those who cannot explore the physical world (the elderly, immobilized patients, etc). In doing so, youth begin to self-identify as impactful content creators. It's even shown that virtual worlds can help their elderly/immobilized audiences experience higher levels of happiness and health. Here's a picture from a past workshop I led: That workshop was lacking in two ways:
Gender diversity - I promised myself to reach a 50/50 boy/girl split in future workshops.
Funding - I taught the workshop for free at my old high school, which was only possible since my former teachers were helpful as ever (got me free space, computers, etc). not a very sustainable model!
The biggest victory this week was that I've set up a partnership/funding between the Tech Museum in San Jose and outside organizations to keep the workshop series going this winter! Getting that out of the way was a huge turning point in my work. It freed me up to consider how I could use the Launch Pad for other projects I've been wanting to work on. More on that later!
Just to add on, if anyone here is working on VR for youth/education I'd love to speak further. It's a complicated process of securing funding, space, etc but I've been at it for a long time and would love to share what I've learned.
Week 4: Determining My Projects - VR Toys and Travel I was once fortunate to hear an investor named Mike Maples speak and he shared a bit of advice I will never forget: the world benefits when industries build products where "the market essentially pulls product out of the company." Full talk: http://ecorner.stanford.edu/videos/3740/Dare-to-Do-Legendary-Things-Entire-Talk
During my time in Alaska, I reflected on that quote with respect to AR/VR. What are the use cases or products that people need - and which overlap with my strengths? After much thought, I settled on two areas: toys and travel. I also knew that, regardless of my choice, I'd need to brush up my modeling skills. I started the following Blender course: https://www.udemy.com/blendertutorial/.
We tinker with toys from an early age and imagine other worlds. Kids need to imagine. What if we could go further and embody the worlds we imagine and build? I looked into the technical feasibility of my concept. Using NFC, RFID, and other micro-tags we could track toys and build corresponding worlds in real-time.
Travel is also a space with a wanting market; there's just not enough time to go everywhere and see everything. And, even when we do travel, it takes effort to deeply understand the stories of the people we meet.
A week in Alaska gave me time to mull over my interests in VR toys and travel. I eventually determined my project would focus on travel. Time to get to development!
Week 5: Exploring the Globe For my travel related project, I narrowed down to two concepts:
- "The travel is the journey." What if users could use headsets on planes, trains, boats, etc to learn more about the destination they were traveling to or explore the places they were passing by but not going? - "It's a small world after all." How could I create a project to show how small and interconnected the world is so that people could visualize how alike we all are?
Regardless of the concept, an interactive world would be a crucial component so I completed the following:
- Created a world model, added a world texture. This took some work in Blender, which I had fortunately started a course on earlier in the summer. - Created a space scene - basic Unity work although choosing the right skybox and music was tough. Later I hope to add more detail. - Made the Unity camera and objects in the scene interactive based on gaze - this was fun! I followed the Unity and Oculus guides on best practices for VR interactions. - Created a function for the world to rotate based on the user's gaze - also very fun! Used some 3D math to save myself a lot of time on the implementation. By measuring how far the user's gaze is from the forward direction, I can apply rotations to the globe.
Thanks @SBarrick and @mmusa! Also @SBarrick are you trying to incorporate a gaze to rotate on a project? I'd be happy to share the necessary code/setup.
Week 6: Bugs & Hacks My most exciting recent progress was finalizing my gaze to rotate code and hacking together a prototype of a 360 video player in Unity.
While testing my experience more extensively, I noticed that the gaze to rotate I first created would break in certain cases. Specifically, the rotation would sometimes occur along the wrong axis and suffer from a problem called "gimble lock" when using Euler angles (video on gimble lock for anyone interested: http://www.youtube.com/watch?v=rrUCBOlJdt4http://www.youtube.com/watch?v=rrUCBOlJdt4). Here's an example of rotation along the wrong axis:
Rotation clearly needed a fix! I'll spare the technical details to keep the post short (however if anyone is interested, I'd actually be happy to discuss challenges/solutions) but want to share that I was able to fix the problem. To summarize, I recoded the logic for rotation around axes and limited how far the globe could rotate vertically:
This week I also got a prototype version of a 360 video player working by hacking on an existing Oculus open-source project. 360 video is an entirely new space for me (I'm more focused on design, graphics, programming/Unity, etc) so it was a very informative challenge. Full post on that in the next few days!
@hassank - super interested in how you got 360 video player to work in Unity. I'm trying to transition the user from a Unity scene to 360 video and back to Unity. Please do share more info!