This action requires saving a cookie to remember the page's state. You can read more about that on the cookies page.

 

handWavey - getting started

Released on: 2022-08-20

NOTE: The handWavey intro has now been moved to its own post. This post is now solely for getting started with handWavey.

I optimised handWavey to be

  • as useful as possible once you are up to speed.
  • as configurable as possible so that it can be adapted to the user, and their specific needs.

The trade-off is that there’s a little bit of work needed in the beginning to make it useable and get the most out of it. So for that I made this video to help users jumpstart themselves:

I’ve also put together a training course that isolates the different concepts to that you can practise them individually, and put then put them together with confidence.

Some time has passed since I originally put that out; I’ve had more opportunities to try it on new users, and there are a few learnings that I’d like to share with you now.

Table of contents

USB bus saturation 

If the mouse cursor is stuttery, check whether there is anything limiting the amount of amount of bandwidth available to the leapMotion device. Here are some real-world examples that I’ve struck so far:

  • Other high-bandwidth devices using the same bus. Eg a web-cam, or USB file transfers from an SD card reader or phone, on the same USB hub as the leapMotion device. Mice and keyboards on the same hub as the leapMotion device are likely to be fine.
  • USB hub limiting the speed to the slowest device. I’ve only ever seen one hub do this, so hopefully this one isn’t common.

Are there config examples that can help you?

handWavey is highly customisable to your needs. When I made the original video, there were only a few config examples. But I’ve steadily been adding more. Here are a few highlights:

Already mentioned in the video

  • Audio feedback: In the early days, you need to learn how to feel where the zones are, and the audio feedback massively helps you. But as you get better at it, these become annoying, so you can reduce them, turn them off, or somewhere in between.
  • gestureLayouts: In user-testing, I’ve found grabClick to be more intuitive to learn than the default tiltClick. tiltClick is the default because it’s much easier to be fast and accurate once you get the hang of it. So even if you try grabClick, I highly recommend switching to tiltClick once you’re ready.

Mentioned in the main video is the foot gestureLayout. This is a highly experimental configuration that I absolutely do not recommend using day-to-day. However if it would make a meaningful difference to your life, there is a place to get in contact to discuss how to proceed.

The foot gestureLayout in action.
Above: The foot gestureLayout in action.

New

reducedMobility

The reducedMobility gestureLayouts are for people with reduced mobility in their hands. The current examples at the time of this writing assume reduced fine control of the hands, but not the arms. This is addressed by splitting the pointing vs actions into two separate hands. Specifically:

  • The primary hand (first to be introduced) moves the cursor.
  • The secondary hand performs the actions.

shakeyHands

The shakeyHands example configurations work by increasing the moving means over the the inputs. This has the effect of reducing, or possibly even eliminating shakiness all-together.

There are a variety of strengths. I suggest starting with the smaller numbers, and stepping them up until you get a usable experience. The trade-off is how responsive the cursor is to your hand movements. Putting the numbers too low will allow your shakes to pass through to the cursor. Having the number too high will make it very slow and frustrating to move the cursor. It surprised me how high I could set the numbers and still have a useable result.

You may want to comebine this with the reducedMobility examples to have more precise control of actions.

sensitivity

If your mouse cursor moves at a speed that is not natural for you, sensitivity is the place to look.

Unfortunately, I don’t have a good way to detect the DPI of your displays, and just do the right thing. So we have to tune it, and this gives you a head start for doing so.

piano audio feedback

I’ve added my first go at piano sounds for audio feedback. This simply makes the notifications nicer to hear, and more meaningful. I intend to do more with this.

rotation (Moving your hand like a mouse)

rotation enables a couple of interesting things. Most notably, it allows the user to move their hand like a mouse (horizontally instead of vertically) to control the cursor. Several people have requested this when trying handWavey for the first time.

I encourage you to use extra caution with this layout:

  • You naturally hold your hand out further, and move it back and forth with no support for your shoulder or back. To me, this feels like an injury waiting to happen.
  • While I’ve found it easy to move between different gestureLayouts, this one really bent my brain. By learning this one first, you may limit your ability to get the most out of handWavey.

It’s here so you can try it if you want to. But I really don’t think you should use or learn it.

There’s also a sideMount configuration for mounting the sensor at 90 degrees to your side rather than on the desk. This is highly experimental, and shouldn’t be considered ready for daily use, and definitely don’t use it while learning.

A note about Wayland

It’s frustrating that Wayland is still intentionally missing core functionality after so much time. It’s an incredibly poor design decision to omit this functionality and then expect it to be individually implemented by each desktop environment. This will lead to incompatibilities between designs, meaning that a program that works in one desktop environment, is unlikely to work in the next one.

There is work to replace this functionality independently of Wayland, and when that becomes available in Java, I’ll be sure to give it a go with handWavey.

In the mean time, I have documentation for how to work around the lack of Wayland support today.

Summary

handWavey is written to be reliable, and highly customisable to your needs. I’ve only made examples for the things that I think will be most useful for people. But there’s so much more that it can do. If there’s something your want to achieve; it can probably do it already. And if it can’t; you can raise an issue as a feature request.

This post references

Control your computer using a Leap Motion controller, but with an every-day-quality implementation.

Posts using the same tags

I've just released the biggest, most exciting, update since the first public release of handWavey. The learning curve is dramatically reduced!
Control your computer using a Leap Motion controller, but with an every-day-quality implementation.
What is handWavey? And how to get up to speed with it more quickly.
Home | About | Contact | Cookies | Site map