Giter Club home page Giter Club logo

hingebuttons's Introduction

hingeButton

Hinge Button Prototype

Quick prototype for hinged buttons comissioned by Road To VR. Inspired by this prototype previously done by LeapMotion. (now UltraLeap)

Our goal with this test was to make a hand tracking button designed around a 'flicking' affordance rather than a 'pushing' one, since the lack of haptics with hand tracking often results in users 'pulling back' too soon when trying to press pushable buttons.

Demo .apk available here with a numpad and keyboard demo.

This prototype was put together in a day and has plenty of room for improvement:

  • the interaction system doesn't destinguish the "closest" button to interact with. The current workaround is to shrink the button colliders to avoid the possibility of a finger pressing two buttons at once.
  • the "flip" reaction of the hinge buttons is a canned animation, but making them physics based could allow for interesting additional functionality like long presses, which could be usefull for things like holding down the backspace key in the numpad demo to delete all numbers in one go.

hingebuttons's People

Contributors

helemaalbigt avatar

Stargazers

Lester Covax avatar Cody Childress avatar Andrew Hulenko avatar  avatar  avatar StormyDoesVR avatar  avatar Julien Dorra avatar Raivr avatar Ellie 
:3 avatar  avatar Eric Laitinen avatar Roland Smeenk avatar Harshal Shende avatar Eric prvncher avatar Fabio avatar Beni Ben zikry avatar Peter Clemenko avatar

Watchers

Dario Laverde avatar James Cloos avatar  avatar Raivr avatar  avatar

Forkers

darktable

hingebuttons's Issues

Multiple animations (different hinge speeds, spring-loaded behavior, etc)

You made a clever speed-typing optimization for VR!
Now there are refinements that I think can double typing speed for experienced power users.

Related Twitter suggestion:
https://twitter.com/BlurBusters/status/1527043187621216264

For experienced finger typists who want to try to type faster,

(A) Faster hinge animation profile as if they were spring-loaded springback behaviours.
This will allow fast finger typists to go fuller speed including tapping same key multiple times. It would feel like spring-loaded hinges where the hinges swings back faster.

(B) Optional ability to drag keyboard around and adjust its angle, including flat against existing desk or angled physical surface
This will allow users to test typing on an empty flat desk, for feedback and faster pullback of fingers for tapping next key

(C) Adding haptics whenever a key is actuated.
A very tiny brief haptic on the controller (briefest possible) may help the opposite finger begin tapping the next key sooner. It would simply feel like a hinge notch clicking, or a door unlatching, or a kitchen cupboard closer clicking, etc -- so should hopefully feel intuitive if haptic can be made kind of an ultra-brief click. This is compatible with the concept of real world hinge latch that clicks

(D) Higher refresh rate for lower latency and better feedback
Support for 120Hz will reduce onscreen latency, and also be more in refresh rate sync with 60Hz hand-tracking, for better lag feel

Hopefully these additional profiles will add flexibility for even faster VR typists, as some of us can peek-and-poke at 70 to 80 words per minute. If we can replicate even half that speed in VR (probably more than half real-life speed, if we try option (B) for faster finger-stop-and-pullbacks), that would be fantastic for applications like Virtual Desktop.

You can simply use three or four buttons ("Hinge Animation 1", "Hinge Animation 2", "Hinge Animation 3") and you can do buttons for refresh rates too (at least for 90 vs 120). Combined with the ability to drag the keyboard around by holding down trigger button, with joystick to adjust keyboard angle.

Even implementing only some of (A)(B)(C)(D) would be a good bonus.

Then users can manually align keyboard for different experiments, without too much complexity in this sandbox.

No rush in adding these features, but I'll be notified (hopefully) if you reply to this github tracking item -- whether this week or next month or such. Looking forward!

P.S. Ten years ago, I used to type on a BlackBerry at 80 words per minute with two thumbs. 400 thumb presses per minute, almost 7 thumb presses per second. So nothing is impossible. I have a very old 2009 YouTube of 75 WPM on BlackBerry at www.youtube.com/watch?v=Egie4ApwoUg ... Because of that video, I was a beta tester of the Ryan Secrest "TYPO" physical iPhone thumb keyboard too, because of my recognized typing speed with just two digits of my body

P.P.S. I have SideQuest and APK sideloading. I volunteer to be your guinea pig for the world's fastest hand-tracking VR keyboard. I'll record 1-minute videos and just type a 1 minute paragraph, and then count the number of letters manually, posting my own words per minute here in this github thread, as each optimization domino is committed

Would love to see a physics joint-based version of the keyboard.

The main issue Im seeing with the hinge based keyboard right now is that the hinge is just an animation, not actually a physics based hinge that reacts to your fingertip. This is causing the same issue as the regular VR keyboard where the finger sometimes slips through the key without actuating it since it's a instantaneous interaction, rather than a physical one. If the hinges were physics based, they could be designed to push back against the virtual finger and not flick down immediately, but be virtually "pushed" by the finger, to an actuation point (probably 2/3 of the way down to the 90 degree rotation). this would make rapid typing much easier to achieve.

Also would love a slightly bigger, slightly more spaced out keyboard, think that would help too.

As for the pinpad, I think it's darn near perfect! Obviously what I mentioned above would help the pinpad too, but it isn't as necessary for single numerical inputs :D

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.