Inspiration
As a Florida native, I spend a LOT of time down in the Florida Keys fishing, diving, snorkeling and in general having tons of fun. About a year ago, I wrote an Alexa service (using golang), which allows users to query the Florida Keys events calendar to find out what's happening in the coming weeks and months. The Conch Republic. This StereoKit Devpost challenge jumped out at me as a Developer (I'm Unity certified) to try my hand at a new Mixed Reality toolkit, and to think about an immersive way to present external information.
What it does
I've focused my use of StereoKit to be a VR oriented Oculus Quest application, allowing the user to sit back on a 'digital beach', and interact with 'brochures' (each representing one of the main Florida Keys areas), to facilitate fetching Keys calendar event data. In the VR 'beach' environment, the user can point to, click and hold the brochure for the respective location, and then press a 'Show events' button on the brochure, which then calls an external API I've written to real-time fetch up-to-date Calendar event information. That information is then used to build an interactive menu of events, for which the user can select an item and see it's Event Details information.
How we built it
I used the 'StereoKitXPlat' as a starting template, and over the course of the Devpost challenge, have tried to learn, incorporate and use as many of the features of the toolkit as possible (Radial Hand Menus, .GLB Model Loading, Model and Texture copying and updating, Animation of models, manipulation of materials, and incorporation of an external API data to populate text and button elements.
Challenges we ran into
As a Unity developer, I was fairly familiar with Vector3 and Quaternion structures, but I did find that manipulating Quaternions in code and figuring out where to positionally place models (without a visual scene frame of reference) took some time to get right. Setting up a complex scene took a bit of trial and error to get everything positioned and rotated. I struggled with sprite sheet animation (for the fireworks), so ended up manually separating sprites, then loading individual textures onto separate quads, and flipping through them in code. When Sprite atlasing is available, may relook at simplifying this :)
Accomplishments that we're proud of
I was proud of being able to animate the Pose for items moved (i.e. when the user grabs and moves the brochure around, after a few seconds after release, it 'lerps' back to its original position). Model elements are dynamic incorporating random scale, rotations and placement so the scene is 'different' each time it's launched.. I was also proud of building some personal 'Blender' skills as the free models and textures I used, most needed heavy optimization, creation of a principled shader, and subsequent conversion to .GLB to be usable in the StereoKit with any performance.
What we learned
I feel like I was able to fairly quickly prototype a VR scene using StereoKit, and got some experience building simple menus that were grabbable. I learned how to copy and reset models and material parameters to optimize the scene.
What's next for Conch Republic VR
Coming into the challenge a few weeks late, I regret not having been able to experiment with StereoKit's Physics/Solids capability. I would love to have one or two more things to do in the app, and am thinking that perhaps incorporating falling coconuts, or some general fun things like throwing coconuts and bananas to topple things would be fun. I'd also like to look at incorporating Amazon Polly and Translation so that the app can convert text to Spanish on the fly, and also possibly have a speaking component so that the user can click a button and have event details read to them..
Built With
- amazon-dynamodb
- amazon-web-services
- api
- blender
- c#
- stereokit
Log in or sign up for Devpost to join the conversation.