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
Thanks for writing this up, there are some good suggestions here for improving a system like this. This project was really just a quick proof of concept - so I'm afraid I'm not actively maintaining or expanding this repo - but please feel free to fork it and use it as a jumping off point to try some of these improvements yourself!
Understood!
There is demand for improved productivity on virtual keyboards -- which could be quite valuable for in-VR productivity if finger-typists have identical performance virtually as in real life. So this work is potentially more valuable than you think it may be.
Your innovation, combined with the items listed in my suggestion, may be almost as important as the "pinch-zoom" invention for smartphones, but from a keyboard-anywhere productivity standpoint.
With all that focus on trying to bring VR into office for more use cases, improving the unfun clunky keyboards into things like these should make typing massively more enjoyable in VR -- and spur further adoption.
With Meta going all "metaverse" for business, and Apple paying attention, I believe that your path of lowering typing friction in VR is an excellent move! Even those who eyeroll at Meta's ambitions, there's real utility for a VR keyboard that may potentially eventually reach 80 words per minute (achievable with real life two-finger typing) without requiring a physical keyboard.
I feel such fast finger-typing speeds technologically possible now, especially with improved tracking cameras -- but I think breaking the 60 WPM barrier is now finally realistic with hand tracking on cleverly optimized Quest 2 virtual keyboards without a real-keyboard overlay. Most office workers don't even type that fast, so this essentially creates a no-compromises VR keyboards, if this is optimized right.
I don't yet currently have programming time for such improvements -- but I'd welcome anybody to fork this project and improve it for a revolutionary improvement in typing speed of completely-virtual keyboard.