Given that the development trend over recent have been to make computing smaller and more mobile, a £10k table-top computer may at first appear a touch out-of-step. However, Surface should not be dismissed as an over-priced table or a touch-screen PC turned on its back. Surface is the product of years of research aimed at providing a user experience that is tactile, collaborative and above all very easy to use and immediate to engage with.
Technically, Surface is pretty straightforward to develop for. It’s built around the Windows Presentation Foundation (WPF) and the Surface SDK provides a number of extensions and controls that sit snugly into the WPF framework. Much of the basic interactions that you need to drive an application have already been demonstrated in a series of user controls, and the WPF integration allows for very flexible visual styling and smooth rich media integration. Desktop development is made straightforward by the Surface Simulator, so the developer environment sits within the normal Visual Studio\Expression IDE.
The development may be technically straightforward – the challenge is in the imagination phase of development, i.e. coming up with ideas for rich applications that make the most of the unique features of a table-top computer.
Surface as a social experience
Watching the way people interact with the Surface table sitting in my agency’s reception has been pretty informative – they crowd around it and all use it at once. Unlike any other computer-based user experience there is something inherently sociable about Surface. This is very different from GUI applications which are in essence solitary affairs with one person controlling the user interface.
The fact that Surface applications are multi-user by definition presents a number of new challenges to developers and designers. You have multiple simultaneous inputs, you cannot tell one user from another and you cannot control what users do and how they may interfere with eacthothers’ actions. This is one of the more difficult concepts for developers to grasp with Surface – the model that you are used to working with in GUI applications based on menus and buttons is pretty much out of the window here and you should be thinking in terms of a more fluid set of interactions.
The rules for the visual objects in a Surface application are looser than traditional GUI applications in the sense that you cannot necessarily predict what the users will do with them. Users of Surface applications tend to develop their own ways of interacting with the interface and a tightly-defined framework of prescribed events and action is not appropriate here. That said, Surface applications still have to be intuitive, so visual objects have to react the their environment intelligently and behave in a predictable manner.
It’s also worth bearing in mind that all this takes place within the context of a 360-degree user interface – there is no “up” or “down”, “left” or “right”. Each user of an application will have a different perspective on the objects on the table. Surface provides a spatial interface with independent movable items rather than a rigidly defined two -dimensional space. This creates very different demands on the designers when thinking about how the visual elements could or should behave.
A direct interface
Surface does have the potential to provide a far more direct interface than a traditional GUI application. Instead of gripping a mouse, manipulating the pointer and clicking on an image, you can just immediately grab the image with your hand. This direct nature of the Surface interface works best when users can directly manipulate objects, blurring the boundaries between the real world and virtual world.
Most importantly of all perhaps, a Surface application should be easy to use to the point where it needs no explanation and no guide. A user should be able to sit down and instinctively use an application without being prompted. Simplicity is the key here – you don’t improve a Surface application by adding bells and whistles. The best applications that I’ve seen on Surface would not be improved by adding features – less is definitely more with Surface.
Some example Surface applications
There are some good examples of Surface applications on the web, although many of them seem little more than GUI applications developed for a table-top. For example – the snowboard customisation demonstration shown by Bill Gates at CES 2008 is a great piece of design, but it’s still in essence a single user application with a strongly defined menu system and some drag-and-drop functionality.
More interesting, though less visually polished, is a set of applications provided for a primary school. Watching a group of schoolchildren swarm around a Surface unit does show how the platform can provide a genuine multi-user experience that is intuitive and immediate. This is where the real value of Surface lies – the challenge is to stop thinking in traditional GUI terms and come up with ideas that make the most of the open and sociable nature of the platform.