Git Product home page Git Product logo

hack-a-thing-2-magicleap's Introduction

Magic Leap

Sia Peng and Angi Li

What we built

We both have some experience with Oculus & VR but haven't tried AR lenses yet. Hence, for our heack-a-thing 2, we want to explore AR in Magic Leap.

We downloaded package tool for Magic Leap, set up previewing with Unity Play Mode, added Device streaming, and created a Unity Project with corresponding SDK and project settings. We then created a simple scene with a unicorn in it.

Moving on, we also implemented a script that mobilizes the unicorn per user input (Hand Poses/Gestures). Specifically, the unicorn is static initially but it will then be activated once our app recognizes the "OK" hand pose. Once active, the user can control which direction the unicorn rotates via left or right hand OpenHand, "fist" and "finger" hand poses. The "fist" hand pose rotates the unicorn around the vertical axis, and the "finger" pose rotates it around the horizontal axis. Switching from left and right hands changes the direction the unicorn rotates.

Demo

Who did What

Sia

I set up the initial Unity project with customized settings for play in Magic Leap. I also set up the Device and connected it to our project with Previewing with Unity Play Mode. I also added Device Streaming. I also made a unicorn model to be played with.

Angi

I also set up the development environment for Magic Leap in Unity, created a simple cube to be initially tested, then implemented a script that uses the Gestures API in the Lumin SDK to recognize hand poses and manipulate the rotation of the unicorn based on which hand pose is recognized.

What we learned

We went through the steps of setting up a project to be compatible with Magic Leap, installed the necessary tools and software, and configured settings both in Unity and on the device. We also set up device live-streaming with Device Stream.

Settings aside, we learned a little about how gesture tracking and hand tracking works using the Lumin SDK's built in API that uses machine learning to detect hand poses. We created a model of a unicorn, and learned how to control it using a few of the hand poses. Overall, working with the Magic Leap was a very cool experience, well-documented, and something we hope to continue working with in our actual project.

How does this hack-a-thing inspire you or relate to your possible project ideas?

This project inspired us to do more creative AR related project. Previously, because of equipment limitations, we only thought of VR project in Oculus or AR project on smartphones. However, seeing how powerful Magic Leap is, especially the possibility of it being controller-free, motivated us to do more adventurous projects, such as an annotation app that incorporates with real world objects and a game that users can interact with only hand gestures.

What didn't work

Setting up the Magic Leap took a lot longer than expected, just in terms of adjusting settings and getting the required certificates. Then, at first getting the Magic Leap device streaming to the computer was a bit buggy. We soon got it working using the Device Stream package which is currently in beta. The Device Stream works fairly well, but the feed is very laggy, which caused issues when we tried to record sample videos. Overall, the Device Stream feature is a really useful one to have, even if a bit laggy.

We also initially had a bit of trouble getting the cube to show in the field of vision, but soon learned to adjust objects in the scene to fit the ML view.

Reference

Versions

Unity

2019.2.x

MLSDK

v0.22.0

LuminOS

0.97.x

hack-a-thing-2-magicleap's People

Contributors

siasypeng avatar axli20 avatar

Watchers

James Cloos avatar  avatar

Forkers

ar-stuff

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.