Microsoft surface in simple word is a multi-touch enabled flat screen device which has the ability to recognize objects.In other words it is a computer without mouse and keyboard ,packed as a single box whose upper side acts as a monitor and is equipped with infrared sensors to identify the objects placed on the monitor (top).
- 30 Inch display
- 22 inches (56 cm) high, 21 inches (53 cm) deep, and 42 inches (107 cm) wide
- Ethernet 10/100, wireless 802.11 b/g, and Bluetooth 2.0
- More here
Multi touch capability
The touch is basically identified by infrared rays.There are 5 cameras under the screen of the surface and they do this job by getting the reflected IR rays from the screen.The reflection can be by finger,objects or tags.
The surface can identify 3 types of touches or contacts on its display area.They are Contact,Blob and Tag.
Contact is the normal finger touch or what ever we are doing with our finger.It will handle more than one touch simultaneously.Hence it is called multi touch.
Blob is the contact which covers a large area.For example if we place our hand over the surface it is identified as Blob.
Tag contact is another type of contact which is used to identify objects by its value.This is described below in details.
Object recognition or Tag identification
This is one of the key feature which is not in the other multi touch devices.In the demo videos of surface we can see some nice visuals coming around a glass when it is placed.That is performed through tags only.Tag is like a bar code which should be present in the object to get recognized by the surface.So when we place a glass or any other object with tag over the surface it recognizes the tag value and the underlying program shows the visual according to that.
- In high class hotels and wine bars : This gives a new experience and entertainment to the customers.Recently Microsoft introduced a new technique which lets the system knows about the level of liquid in the glass.Thus it can be refilled at some particular levels.
- Parties and events : Networked surface machines can display the live videos and photos taken during the event.They can even transfer those photos to their online account or mobile devices.
- Games : New experience in gaming using multi touch and object recognition.This can be hosted in the above said places.
- Information systems : Current information systems can be redesigned to have multi touch capabilities and tag recognition.For example in a hospital when someone places his card which contains surface tag it can identify him and show him necessary details about the treatments he has taken and whether a particular doctor is available or not etc…
Developing surface applications
Currently there are 2 ways to write programs for surface.One is XNA and another one is to use WPF with surface sdk provided by Microsoft.XNA is more like a low level program.We have to install the XNA framework to build programs.
Surface sdk and surface simulator
The surface sdk supports WPF.But it is now available to partners only and to the developers who attended the PDC.In the FAQ section they told to write a mail to firstname.lastname@example.org if you need sdk.
Before starting development we have to install some prerequisites.A list is available in my colleague’s blog.The sdk itself includes a simulator which helps us to see the surface application without the actual surface machine.Currently the surface machine is available in U.S and some selected countries only.So for developers like us who are from India ,the simulator is really a gift.Working with the simulator is another big topic.I will be blogging about that later.
We can run our normal WPF programs in the surface.But the issue is the mouse related actions won’t get fired.For example mouse click, mouse hover etc…The reason is very simple.There is no mouse in surface. Everything is by contact or touch.So we have to use the Surface button which is available in the sdk.Similarly there are so many controls which replaces the normal WPF controls in surface world.
Porting existing applications to surface
These normal mouse related things we can make as surface enabled by hooking into the Contacts.ContactDown event.But the real issue is with the text box.Surface doesn’t have a keyboard.The only way is to show a keyboard in the surface display area ,recognize touches ,process it and use as virtual keyboard.This virtual key board support is there in the SurfaceTextBox by default.
Next post : Surface Application Development using Simulator and VisualStudio in my WPF blog