Giter VIP home page Giter VIP logo

weleap's Introduction

WeLeap

Our work explores the utilization of Leap Motion technology to design an experimental navigation system intended for virtual 3D environments. We integrate 5-DOF movement using hand gestures and devise a more intricate solution that demands greater levels of coordination.

Demo.mov

User Interface

user_interface_img

Architecture

architecture_diagram

Pre-requisites

  • Leap Motion Controller (hardware)
  • Ultraleap Hand Tracking Service - v5 (software)
  • Unity Editor 2022.3.11f1.

Navigation Control

  1. Navigation Mode: In Navigation mode, the left hand manages the left/right and forward/backward translation through tilting movements: left/right for lateral motion and forward/backward for longitudinal movement. Additionally, it facilitates vertical translation by raising or lowering the hand. On the other hand, the right hand oversees camera rotation in accordance with its vector orientation. For instance, when the palm’s normal aligns perpendicularly to the screen, indicating an upward hand vector, the camera rotates in an upward direction. The translation and rotation speeds can be dynamically adjusted based on real-time changes and are directly proportional to the distance from the neutral position. For example, as the hand tilts forward, the forward translation accelerates, and as the x-coordinate of the hand vector increases, the camera’s upward rotation speed intensifies.
  2. Orbit Mode: In Orbit mode, the functionality is limited to rotation and forward/backward translation. Consequently, the left hand exclusively manages forward and backward translation, while the right hand operates similarly to the navigation mode, but it orchestrates rotations around the orbit center instead of around the user.
  3. Mode Switching: Toggling between navigation and orbit modes occurs through a pointing gesture. In navigation mode, the gesture triggers the creation of an indicator that continuously moves outward in the direction the camera faces until the gesture ends. Upon the gesture’s cessation, the mode switches to orbit, with the indicator serving as the new center for orbiting. When in orbit mode, using the pointing gesture followed by its reversal (“unpointing”) removes the indicator and reverts the mode back to navigation.

Acknowledgements

A special thanks to Francisco Cerqueira and Vasco Alves for their efforts in developing the competing system WiiFly. The development of both systems was carried out in parallel, with the final goal of comparing the two approaches in a self-developed user testing and evaluation method.

License

This project is licensed under the Apache License, Version 2.0.

For the complete text of the Apache License, please refer to the Apache License.

weleap's People

Contributors

fabiomiguel2000 avatar luismrguimaraes avatar

Watchers

 avatar

weleap's Issues

Left Hand Tweaking

From feedback on #5 :

"
I encountered a few issues during testing:

  • I found it challenging to precisely control the direction of movement I intended. For example, when I only wanted to move forwards, the system also moved to the right or left. I suggest considering the removal of lateral movement (left and right).

  • The distance my left hand needs to travel to achieve maximum speed may be excessive, causing strain on my arms as they stretch to reach it.

  • Stopping the player's movement proved to be difficult. Increasing the threshold for detecting a complete stop could be beneficial. This adjustment would make it easier for us to use and control the indicator for orbit, as it's currently challenging to do so when the player does not come to a full stop.

"

Remove Physics Provider (while keeping functionality)

The Physics Provider object is currently being used, but physics are not necessary in our project. Also, an issue related with the visualization of the hands could be caused by the use of the Physics Provider.

Orbit Mode Implementation

  • After the player selects the point to orbit, the player will lock on that point and be able to orbit around it

Add UI to the scene

  • Mode representation (Navigation/Orbit)
  • Arrow representing the movement direction

Orbit Indicator Implementation

  • When a player holds the left hand, an indicator should show up
  • When the indicator shows up, it should move forward, if necessary pass-through (for this maybe see-through needs to be implemented)

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.