Monday, March 1, 2010

What is the natural user interface? (book excerpt)

Recently, there has been some discussion on establishing a definition for the term "natural user interface". My friend Richard Monson-Haefel (who just signed with O'Reilly on an iPad SDK book, congrats!) went through several iterations of a definition on his blog and ended up with this:
"A Natural User Interface is a human-computer interface that models interactions between people and the natural environment."

Wikipedia also has a paragraph describing natural user interfaces as invisible interfaces and lacking keyboard and mouse, but did not have a real concise definition. Ron George was a major contributor to the NUI wikipedia article. The first sentence says, in part, that a natural user interface is:

"...a user interface that is effectively invisible, or becomes invisible with successive learned interactions, to its users."

NUIGroup.com also has a wiki page with a lot of description language on the natural user interface, but no concise definition.

As you may have heard, I'm writing a book Multitouch on Windows. A key part of my approach is teaching the readers not just the APIs but also the new ways of thinking required for creating natural user interfaces. My first chapter is titled "The natural user interface revolution" (appropriate since it was also the title of my first blog post) and so right up front, I had to tackle the problem of defining natural user interface for my readers in a concise and comprehensive way.

I took into account both Richard's and the Wikipedia article's approaches, but I was not satisfied with what they had. I think Richard is on the right track, but the way he phrases it seems limiting. Whether or not he intended it this way, modeling the interactions between people and between people and the natural environment implies rather literal interface metaphors with NUI interactions that simulate real-world interactions, but there is no reason why this should be so. The Wikipedia's description talks about invisible interfaces, but to a lay-person this does not make sense and requires additional explanation of what an invisible interface means.

Now, I don't necessarily disagree with how Richard and the Wikipedia article are describing NUI. NUI does have something to do with how people interact with the environment, and NUI interfaces do seem to be invisible, but why are these descriptions true? To help figure this out, I turned to Bill Buxton's presentation in January where he talked about natural user interfaces. I took detailed notes and one particular thing that he said really resonated with me:
An interface is natural if it "exploits skills that we have acquired through a lifetime of living in the world."

I used that definition to write a section in chapter 1 on what "natural" means, and then derived my own definition. Below is an excerpt from chapter 1 of my book where I present my definition for natural user interface.



There are several different ways to define the natural user interface. The easiest way to understand the natural user interface is to compare it to other type of interfaces such as the graphical user interface (GUI) and the command line interface (CLI). In order to do that, let's reveal the definition of NUI that I like to use.
A natural user interface is a user interface designed to use natural human behaviors for interacting directly with content.
There are three important things that this definition tells us about natural user interfaces.

NUIs are designed

First, this definition tells us that natural user interfaces are designed, which means they require forethought and specific planning efforts in advance. Special care is required to make sure NUI interactions are appropriate for the user, the content, and the context. Nothing about NUIs should be thrown together or assembled haphazardly. We should acknowledge the role that designers have to play in creating NUI style interactions and make sure that the design process is given just as much priority as development.

NUIs use natural human behaviors

Second, the phrase "designed to use natural human behaviors" tells us that the primary way humans interact with NUI is through our natural behaviors such as touching, gesturing, and talking, as well as other behaviors we have practiced for years and are innately skilled at. This is in contrast to GUI, which is described as using windows, menus, and icons for output and pointing device such as a mouse for input, or the CLI, which is described as having text output and text input using a keyboard.

At first glance, the primary difference between these definitions is the input modality -- keyboard verses mouse verses touch. There is another subtle yet important difference: CLI and GUI are defined explicitly in terms of the input device, while NUI is defined in terms of the interaction style. Any type of interface technology can be used with NUI as long as the style of interaction focuses on natural human behaviors.

NUIs have direct interaction with content

Finally, think again about GUI, which by definition uses windows, menus, and icons as the primary interface elements. In contrast, the phrase "interacting directly with content" tells us that the focus of the interactions is on the content and directly interacting with it. This doesn't mean that the interface cannot have controls such as buttons or checkboxes when necessary. It only means that the controls should be secondary to the content, and direct manipulation of the content should be the primary interaction method.
Excepted from Multitouch on Windows by Joshua Blake
Chapter 1, "The natural user interface revolution"


I think this definition is very powerful. It gets right to the core of what makes natural user interfaces so natural in a way that does not restrict the definition to particular input technology or interaction pattern. It also can support the points-of-view presented by Richard and on Wikipedia, but in a more general way. 

By talking about directly interacting with content, we establish that content interaction should be primary and artificial interface elements should be secondary and used only when necessary. This is an easier way to say the interface is invisible. 

By framing the definition around natural human behaviors, we can talk about reusable patterns of behavior derived from human-human and human-environment interaction without implying we should model the interface after specific interactions. We can apply natural behaviors by reusing existing skills, which is what Bill Buxton was talking about. In the chapter, I spend a lot of time discussing these skills and how to apply them.

If you would like to read more on this, the entire chapter 1 is available for free download from Manning, where you can also pre-order the MEAP and read chapters as I write them.

Thursday, February 25, 2010

Multitouch on Windows MEAP now available!


I've been working on a Manning Book called Multitouch on Windows with a subtitle NUI Development with WPF and Silverlight. I'm writing this book to accomplish two things. One, of course, it will teach you about developing multitouch applications using WPF 4 and Silverlight. The other, and perhaps more important, thing is to teach you about the new ideas and new ways of thinking required for creating natural user interfaces. There is a lot of talk about NUI at a high level, and a lot of interest in multitouch development and APIs, but there are not many resources out there to bridge the gap. This book does bridge the gap, and I hope it will give you everything you need to create multitouch application that live up to the potential of the natural user interface.

Today Multitouch on Windows became available under the Manning Early Access Program (MEAP). That means that if you pre-order the book, you get access to the chapters as I write them, before they go through the full editing and review process. This gets you the information now, and also gives you the opportunity to provide feedback, if you choose, and help improve the overall book. If you get the MEAP, then whenever I send Manning a new chapter or update an existing one, they will send you an email with a download link. When the book is complete, you'll also get the final e-book, or the e-book and printed book, if you choose that option. (There is a MEAP FAQ for more details on this.)

Right now chapter 1 "The natural user interface revolution" and chapter 4 "Your first multitouch application" are available to MEAP subscribers. Chapter 1 is also available as the free chapter, and you can download it right now! As this is an early look at the book, there are still a few quirks in the formatting and the illustrations, but all the content is there.

Please take a look at chapter 1, available from Manning's book page. It has a lot of very interesting ideas about natural user interfaces that build upon what I talk about in this blog. I hope you'll decide to subscribe to the MEAP. I really want your feedback, too. Feel free to email me directly or participate in the Author Online forum set up for this purpose.

To go along with the book, I have also setup a website at www.HandsOnNUI.com. This site is about the book, what events I will be speaking at, and general natural user interface resources. Right now there isn't much there, but I have big plans for it. The only thing I will say now is that the site will soon be a complete multi-touch experience.

One last housekeeping note: Prior to yesterday, I had been referring to this book as Multi-touch development with WPF and Silverlight. After some conversations with the very talented people at Manning, we decided to update the title as it is now. I only mention this in case there is any confusion.

Tuesday, February 2, 2010

OCGM: Universal Foundational Metaphors of Natural User Interfaces

Update: The download link wasn't working for everyone, but I fixed it now.

After all the discussions of Objects, Containers, Gestures, and Manipulations this past month, Ron George and I decided to write a scholarly paper on the subject. We had discussed OCGM on our blogs and had some great discussion with others, but we wanted to show the academic justification for the ideas. First, we had to find a place to publish.

Conveniently, Steven Seow from the Microsoft Surface team was organizing a NUI workshop for April 10, 2010 at the CHI'10 conference. They were seeking position papers and the deadline was January 15th. I spent some very late nights that week researching, collaborating with Ron, and writing, editing, and rewriting. We agreed that Ron would be first author since the ideas originated with him from his work, and I would be in the last position as main author since I did the research for the conceptual justification of OCGM and wrote the paper itself. In the end, the paper ended up laying out some very interesting ideas about OCGM. We submitted the resulting paper, and just heard on January 31st that it was accepted to the workshop!

I've very excited about this, not only because of the opportunity to speak at another major conference, but also it means that the OCGM concept is published in a major peer-reviewed academic publication, which gives it a lot of credibility.

You can download the paper below. It is only five pages and is a quick read. I would humbly recommend it to anyone interested in Natural User Interfaces or OCGM. Let me know what you think!

Objects, Containers, Gestures, and Manipulations: 
Universal Foundational Metaphors of Natural User Interfaces

Ron George, Joshua Blake

Abstract
In this paper, we propose Objects, Containers, Gestures, and Manipulations (OCGM, pronounced like Occam’s Razor) as universal foundational metaphors of Natural User Interfaces. We compare OCGM to existing paradigms using SRK behavior classification and early childhood cognitive development, and justify the “universal” and “foundational” descriptors based upon cognitive linguistics and universal grammar. If adopted, OCGM would significantly improve the conceptual understanding of NUIs by developers and designers and ultimately result in better NUI applications.

Wednesday, January 20, 2010

See me talk at the February Microsoft Developer Dinner in Reston, VA

A few months ago, my friend Marc Schwiegert, a Microsoft Developer Evangelist, invited me to present about NUI at the February Microsoft Developer Dinner at the Reston, VA Microsoft Technology Center. Of course I accepted, and the event is now posted and the date it set. I've copied the event description below.

This is a free event and you get free catered dinner. I'll be covering similar content as my MIX presentation in March, except that I have more time so I'll go deeper in depth. If you're in the DC area on February 24th, then register and I'll see you there! (Also, they are raffling an Xbox360, in case you needed even more motivation!)

Register here!

Hands-on Natural User Interfaces:
Multi-touch development with Silverlight and WPF


The Natural User Interface (NUI) is the next revolution of human-computer interaction. Microsoft Surface has shown the potential of multi-touch NUIs to uniquely engage users, and multi-touch tablets and displays are becoming more and more common. This talk is focused on how you can create multi-touch NUIs for these devices. You will learn the difference between manipulations and gestures, when to use each, and how to implement specific NUI design concepts with both Silverlight and the WPF 4 Touch API. The differences between the Silverlight and WPF 4 Touch APIs will be highlighted. You will hear about the roles of the Surface Toolkit for Windows Touch and the Microsoft Surface Manipulations and Inertia Sample for Silverlight and how you can use them to jump-start your applications. The open-source multi-touch Bing Maps 3-D WPF control, InfoStrat.VE, will also be demonstrated. If you are interested in rich, engaging multi-touch interfaces for the web or client, then you need to attend this talk!

I'm speaking at MIX!

I'm blown away because my MIX Open Call session was picked! Over 150 sessions were posted for online voting, and mine is one of twelve that made the cut. It's also amazing to see some of the other names that are on that list. There are some really big people there.

So in short, thank you all for voting! I'm going to do my best to give a truly awesome presentation and make it worth it.

Full Open Call results are here.