Coder Social home page Coder Social logo

adarosecannon / handy-work Goto Github PK

View Code? Open in Web Editor NEW
91.0 6.0 10.0 3.06 MB

Framework Agnostic Hand tracking for WebXR

Home Page: https://aframe-xr-starterkit.glitch.me/

License: MIT License

JavaScript 100.00%
webxr threejs aframe hand-tracking

handy-work's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

handy-work's Issues

Remove Oculus Hack

Currently there is a hack for supporting the correct grip space in Oculus devices

Once that bug is fixed then all the weird grip space hacks can be removed and everything made a lot neater.

Aframe: Handle Transient Inputs

Ensure that transient inputs are able to be tracked with data elements, perhaps data-transient="0", data-transient="1", data-transient="2" etc to track multiple inputs.

Fix issues in AFrame Demo

  • Dumping hand pose does not work because it only updates one hand at a time
  • Can't attach objects to hands to pick them up

Suggestion: Don't provide your own hand component make a system/scene component for detecting poses that just fires events.

Support transient-pointer on visionOS

The AFrame handy-controls only look at the original targetRayModes screen and tracked-pointer, it would be handy to add support for transient-pointer which don't need a model to be drawn and only have a targetRaySpace and a gripSpace.

Reproducing poses from paper on "HotGestures"

In https://www.cam.ac.uk/research/news/machine-learning-gives-users-superhuman-ability-to-open-and-control-tools-in-virtual-reality and the HotGestures: Complementing Command Selection and Use with Delimiter-Free Gesture-Based Shortcuts in Virtual Reality from IEEE Transactions on Visualization and Computer Graphics (2023) by Zhaomou Song, John J Dudley and Per Ola Kristensson they describe series of "shortcuts" as hand poses. Could be interesting to try to reproduce it.

AFrame: Left hand mismatching poses

In the A-Frame handy-controls component, the left hand's poses don't correspond to those detected by the right hand.

Added below:

  • Demo video, showing all the detected poses and events.
  • Poses comparison, highlighting the inconsistent poses from the left hand.
  • Link to Glitch project, the basic scene I used in the demo video to log in VR mode all the poses and events.

@AdaRoseCannon, I haven't found out what is causing this problem, but I'll be more than happy to help QA test any changes you might make if/when you work on this issue. So just ping me ๐Ÿ™‚

PS: apparently, both hands cannot detect other standard WebXR API events such as squeeze, squeezestart, and squeezeend.
(IDK if you are going to fix this part in another dedicated issue, or still here).

Demo Video

handy-controls.poses.events.log.720p.mp4

Poses Comparison

handy-controls-poses

Glitch Link

https://glitch.com/edit/#!/handy-controls-poses-events?path=index.html%3A1%3A0

How to load poses?

Hello!

Newb question. Calling loadPose results in me getting a TypeError: Failed to construct 'URL': Invalid URL error. I've tried passing in absolute paths, relative paths and so forth - none of them seem to be working. I use webpack and have confirmed that the pose files have been copied over to the bundle.

What am I doing wrong? Thanks!

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.