Microsoft Surface Architecture

Surface 1.0 SP1

Microsoft Surface is a hardware and software platform for developing multi-input, touch-enabled applications. The platform enables designers and developers to create rich and visually appealing applications that offer a new user experience in which users use only their hands and various objects to manipulate and interact with the applications. A Microsoft Surface application should be natural and intuitive and should show little or no resemblance to a traditional Microsoft Windows or Web application. In fact, a user should not know that there is a computer in a Microsoft Surface unit.

The Microsoft Surface development platform integrates several features and complex hardware and software technologies. To create effective Microsoft Surface applications, you should understand the architecture of the development platform.

Surface platform architecture

The following table describes the components of the Microsoft Surface platform.


Component Description

Windows Vista

Microsoft Surface runs on the Windows Vista operating system. Windows Vista provides all the administrative, security, and directory functionality of the Surface unit.

Developers and administrators who are working on a Microsoft Surface unit have full access to Windows functionality (in administrator mode). However, when users interact with Microsoft Surface applications, the Windows user interface is completely suppressed (in user mode).


The hardware of a Microsoft Surface unit includes the cameras, projection display, and computer that is running Windows Vista. The hardware captures video of contacts on or close to the screen at a specific frame rate.

Vision System

The Vision System software processes the video data that the hardware captures and converts the raw video into data that you can access through Surface SDK APIs.

Occasionally, you might have to use a calibration tool to configure the cameras for optimum performance. There are two types of calibration: basic and full. You run full calibration whenever you move a Microsoft Surface unit to a new location, and you run basic calibration whenever lighting conditions change drastically. For more information about how to use the calibration tool, see the Calibrating a Surface Unit article.

Presentation and Core Layers

The Microsoft Surface SDK informs applications when contacts appear on the Microsoft Surface screen over the application window. As users put contacts on the display and manipulate them, the Microsoft Surface SDK notifies applications and gives them a chance to update their user interface.

For each contact, applications can determine the position, orientation, bounding box, and central ellipse. For contacts that are made with tagged objects (which have tags printed on the bottom of the objects), applications can also determine the contact tag value.

The Microsoft Surface SDK exposes two sets of APIs: the Presentation layer and the Core layer. You can use only one layer when you are developing a Microsoft Surface application:

  • The Presentation layer integrates with Windows Presentation Foundation (WPF) and includes a suite of Microsoft Surface-enabled controls.

  • You can use the Core layer together with almost any user interface framework.

For more information about the Presentation and Core layers, see Presentation and Core Layers.

Surface Shell

Surface Shell is the component that manages applications, windows, orientation, and user sessions and provides other functionality. Every Microsoft Surface application must integrate with Surface Shell.

Surface and Windows Integration

The integration between Microsoft Surface and the Windows operating system provides system-wide functionality on top of the Windows operating system. You must use this functionality to support unique aspects of the Microsoft Surface experience, such as managing user sessions, switching between the Windows user interface (administrator mode) and the user experience (user mode), monitoring critical Microsoft Surface processes, and handling critical failures.

Community Additions