VR prototyping #2 | number input
Intro
I kept this VR prototype simpler than the ones in the past. Check out a recent VR prototype here: Meta Horizon Worlds Selection. For this prototype, I wanted to enhance a simple number input.
“Anotha one” — DJ Khaled
Initially, I was going to use this as another example of augmenting a 2D UI view with a 3D spatial interaction (see the sketch below). However, I quickly realized that an incremental number “slider” really only worked well when there is visual feedback of the change in the space. ie, using a slider to alter an arbitrary value in an input field wasn’t the best experience. Some version of key input is likely still a better solution there. So I pivoted a little bit and removed the 2D UI elements and instead made my prototyped interaction change the height of a basketball hoop.
Result
For this prototype, I wanted to see if there was a way to control simple interactions with hand poses. Once the interaction is triggered, moving the left hand up and down alters the value (height, in this case). While interacting with the slider the user can use the following hand poses:
🤚 5 fingers straight out makes the slider increment in 5's
4️⃣ 4 fingers straight out makes the slider increment in 4's
3️⃣ 3 fingers straight out makes the slider increment in 3's
✌️ 2 fingers straight out makes the slider increment in 2's
👆 .. yep, you guessed it, 1 finger out makes the slider increment in 1's.
👌 A “pinch” pose makes the slider increment in .1 steps
✊ A closed fist makes the slider not increment at all, more on this later.
👍 Lastly, a “thumbs up” pose is an alternative way to confirm and close the number input
There are some pretty obvious scalability concerns with a pattern like this. For example, what if the increments need to be much greater? Would it be confusing if a 🤚(5 fingers out) pose equaled an increment of 25, and a 4 finger out pose equaled an increment of 20? Another concern would be that the user’s arm length could limit the max number easily reached. This is why I added the ✊(closed fist) pose as a way to lower your arm without lowering the value.. but that’s probably not too intuitive.
Oh and I probably should have added a height minimum of 5 for this particular use case. In the video, the height goes into the negatives 🙃.
Findings
Like with the past prototypes, the purpose of putting this together is not to produce a final, ready-for-production pattern. Rather, it’s to explore the ins and outs of creating great XR experiences. Here are a couple of thought nuggets I had while working on this:
⌨️ There’s still a definite case for virtual keyboard entry. Particularly in cases where the value is only represented arbitrarily.
🔊Sound feedback is a necessity. Representing different actions with unique sounds is also important for immersion and understanding what is going on. (just like with past prototypes).
⌚ I chose to trigger this number input UI with a wrist gaze event. While playing with this event I have found that it’s a pretty satisfying way to trigger something events. I’d like to discover more uses-cases for the wrist-gaze, particularly one’s that don’t just show a watch UI 😉.
💾 Backing up your projects is important. Most of my development experience is with the web. I hardly ever thought about backing up my work because git was such an integrated process. However, I had a painful experience of lost work while working on this prototype. I. will. always. backup. now.
Thanks for reading! See ya next time!