An open-source keyboard to make your own

A while back, my friend Robbie let me try out a keyboard his team was working on at Google. It was something they were calling the ‘drum keyboard’ and, as you might suspect, it worked similarly to a set of drums. Using two hand controllers, you could bang out letters on large keys, spelling out words to your heart’s content. Here’s what it looked like:

 

 

…And it was awesome. Like really awesome.

 

Granted, as a drummer myself, I might be slightly biased, but I loved how natural it felt and how easy it was to pick up. So, when we heard that Google had retired that project to focus on other dreams—specifically, Daydream (ba dum, cha!)—we thought, hey, let’s pick this back up. So, we made our own.

 

 

Virtual reality is still a pretty new space. It’s a bit like the wild wild west. There’s no standardized toolkit or set of rules for how things should work. It just doesn’t exist. And since we’re all building our own tools and games, we’re making a lot of this up—interfaces, buttons, you name it.

 

As it turns out, that can get pretty confusing. The result is a bunch of interfaces that all work just a teensy bit differently. Not to mention that when you spend 99% of your time designing the rest of the experience, the last thing you want to think about are details like keyboards.

 

We’ve seen some pretty cool drum keyboards around town; Editor VR has one, so does Fantastic Contraption. However, we know not everyone has the resources to make their own.

 

 

Inevitably, we needed a keyboard for a few of our own projects, so we took some inspiration from that early Google drum keyboard and made a version all our own. We thought through how long the mallets should be, how to trigger each letter that’s hit, as well as the best gestures to write out things like asdfghjkl. All in all, we’re pretty pleased with how it works.

 

 

And we decided to open-source it, so you can use it, too. After all, why reinvent the wheel each time? Our hope is that by open-sourcing it, we can save other folks some time by letting them grab it, tweak it, and ultimately make more rad stuff. Maybe they’ll open-source that stuff, too, and we can all build on top of it and push this fledgling community forward.

 

Our keyboard may not be the end all, be all keyboard—after all, what feels good to us might not feel the same to you—but it’s a starting point. We’d love it if others could give it a whirl, improve upon it, and contribute back to the repository. Then we can add even more cool features like different languages, autocorrect, speech to text, different keyboard layouts, emoji, sounds, etc, and make this better for everyone!

 

So, are you a developer? Get started with the code today. We’ve put it on github here.

 

More of a Vive enthusiast? Grab the build and let us know your thoughts!

 

I’d like to extend a big shout-out to our friends Annlie Huang & Devin Kerr for the wonderful keyboard sounds, Mike Meyer for helping us make it as cute as possible, Gus Bendinelli for directing photography, and Isaac Cohen (aka Cabbibo1) for the background tunes. Thanks for the help all 😘😘😘😘.

 

Max



Also published on Medium.

Max
Max

17 thoughts on “An open-source keyboard to make your own”

  1. Hi,

    You say it’s open-source. Does that mean users can modify the sounds/type of keyboard? Will there also be a social aspect/messaging system to this drum keyboard?

    1. It’s open-source meaning anyone who needs to build a drum keyboard into their own VR app/game can use this code to do so. They’re free to change the functionality/sounds to suit their needs.

      Max

    1. Unfortunately not at this time. All of our work is built for Unity. That said, the project is open source. We’d welcome a pull request for a UE4 version.

  2. Thanks for sharing this!
    This is awesome work – nice sense for details and just super cute

    Can you tell me what you did use for this soft body effect of the character?

    cheers

Leave a Reply

Your email address will not be published. Required fields are marked *