adarosecannon / handy-work Goto Github PK
View Code? Open in Web Editor NEWFramework Agnostic Hand tracking for WebXR
Home Page: https://aframe-xr-starterkit.glitch.me/
License: MIT License
Framework Agnostic Hand tracking for WebXR
Home Page: https://aframe-xr-starterkit.glitch.me/
License: MIT License
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.
Hi @AdaRoseCannon,
Is it possible to integrate only the pose recognition feature of the handy-work module with the hand-tracking-controls component to emit the pose of the hands?
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.
Hi @AdaRoseCannon,
I was wondering if the magnetic helper module from the handy-work component can be used as a standalone module to grab objects in the scene by pinching.
This is to make it easier to identify when an object goes to grab what it is grabbing.
Suggestion: Don't provide your own hand component make a system/scene component for detecting poses that just fires events.
See explanation in aframevr/aframe#5298
If someone is up to doing a PR with the needed changes, please go ahead.
Weight each position according to weight/totalWeight
This will enable letting the thumb move freely without breaking the pose.
Should probably also make an editor.
If a data-[left|right|none]
element has a raycaster then perhaps events should be fired to it's interesected els too.
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.
Some hardware has a single controller I think this should work but won't be cleaned up correctly.
Work out the size of the hand scale accordingly to accommodate small hands better.
Firstly, check whether finger length can be measured consistently between poses.
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.
In the A-Frame handy-controls
component, the left hand's poses don't correspond to those detected by the right hand.
Added below:
@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).
https://glitch.com/edit/#!/handy-controls-poses-events?path=index.html%3A1%3A0
How can i build this project to use standalone/locally/offline? Which assets are required and where can i get them?
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!
Don't render controllers or hands in AR since the user can see the physical hardware/wetware anyway
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.