Welcome to MSDN Blogs Sign in | Join | Help

Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Yesterday, Microsoft announced its Surface product to much buzz and excitement. The demo videos I saw featured a "photos on a table" user interface that displayed a handful of photos sitting on the Surface. The interface allowed people to easily move the virtual photos around by touching them in the center and sliding them to a different location on the screen. By touching the corners instead, photos could be sized and rotated with ease.

It struck me that this interface would be pretty easy to replicate with Silverlight and I decided to do so as a learning exercise. I spent some time on this last night and tonight and came up with an application that looks like this:

Silverlight "Surface" Demonstration

You can click here (or on the image above) to play with the application in your browser. The code's quite simple; click here to download the source code and play around with it yourself! (To build the project, you'll want to use Visual Studio Orcas Beta 1 and the Silverlight Tools.)

Notes:

  • When the application loads, it randomly lays out the sample photos. To interact with a photo, simply move the mouse pointer over the photo and click+drag on one of the yellow control elements that appears. The center element moves the photo around and the corner elements all rotate/resize it. Click on any part of a photo to bring it to the top of the pile.
  • Without the snazzy Surface hardware support, this application doesn't support the Human Finger 1.0 input device. :) However, if you run it on a Tablet PC or hooked up to something like the Wacom Cintiq, you can get pretty close.
  • As expected, Silverlight's XAML support makes this kind of interface pretty easy to build. I understand the Surface UI was written using WPF (Silverlight's big brother), so I suspect some of the techniques they used are fairly similar to what's being done here.
  • The sample images are a few of my favorite wallpapers that come with Windows Vista. I have not included them with the code download because they're large and it's easy enough to copy them from your own %windir%\Web\Wallpaper directory. Or just use your own favorite images!
  • I don't demonstrate it here (partly because I don't have a good nature video), but it would be easy to add video support so that each of the photos was a streaming video instead. Hum, maybe I'll do a follow-up post... :)

It's pretty obvious that XAML lets you do some pretty neat things with ease - I look forward to even more compelling new interfaces based on Silverlight and WPF!

Published Friday, June 01, 2007 1:12 AM by Delay
Filed under:

Attachment(s): SilverlightSurface.jpg

Comments

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Friday, June 01, 2007 11:15 AM by rbirkby

There's just not a compelling reason for me to want to shift photos around like that? It's fun to play with for 10 seconds, but in terms of compelling, practical and timesaving user interaction design, it's poor.

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Friday, June 01, 2007 12:20 PM by Delay

rbirkby,

Thanks for stopping by! In the Surface site's demo videos, they show how email, photo sharing, and collaboration might be integrated with the basic "photo table" UI I've demonstrated here. Just like Media Center optimizes for the "10 foot" viewing experience users have sitting on their couch watching TV, the Surface team optimizes for the finger-based input experience users have sitting around their device. The videos I've seen suggest this interface is pretty natural for the Surface scenario, but I'm sure they're experimenting with other ideas as well. :)

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Friday, June 01, 2007 12:31 PM by OffBeatMammal

Fantastic demo. would love to see one of those tiles running video as well like in the Surface demo ;)

On a TabletPC this would be lots of fun.... wonder if there's a tweak to track two contact points on the tablet so you can do the multi-touch rotate and resize?

# Surface Computing - a new interface

Friday, June 01, 2007 2:42 PM by OffBeatMammal

There's been a lot of things floating around on the net recently about multi-touch displays and the

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Friday, June 01, 2007 4:34 PM by sburke

I can think of lots of useful ways to bake this general idea into a larger application.  If run a photography site and want people to be able to lightbox the images they're interested in and then organize them, something like this gives them that ability in a very intuitive way.  You could also use something like this in a One-Note style application to organize your to-do list. It's a good demo.

# Surface As Inspiration

Friday, June 01, 2007 5:03 PM by Blogs

David Anson outdoes himself yet again. Check out his Silverlight Surface demo . Source code included

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Friday, June 01, 2007 5:16 PM by Barak Cohen

This is great. A minor tweak that will make it better is to add some physical properties to rag (basically adding inertia and drag) for better interaction.

# Under the Surface

Friday, June 01, 2007 7:03 PM by Barak's Blog about Silverlight and beyond

This week Microsot revealed Microsoft Surface . A new computer platform that is based on Windows Vista

# Silverlight

Sunday, June 03, 2007 3:28 AM by kfra

Dopo il rilascio di Microsoft Surface ecco un'implementazione di una

# Points of interest #10 - Ajax, Silverlight, WPF, P&P, Firefox and SharePoint

Sunday, June 03, 2007 7:07 AM by John Mandia's Points of Interest

A slight change this week. POI titles will now include the main topics covered in each post ("Other"

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Sunday, June 03, 2007 6:02 PM by Javier Lozano

This is pretty sweet!  Thanks for posting the source code!  The thing I find interesting about this demo is that you were able to create a similar (if not the same) experience in this Silverlight app as the one from the photo viewer in Surface.

One cool thing you could do is to add a camtasia video showing how you can create the application using Orcas beta1.  This way it can provide guidance to other devs on where to start with the code.

# Surface-like Experience Using Silverlight

Sunday, June 03, 2007 6:11 PM by Javier G. Lozano

Surface-like Experience Using Silverlight

# Silverlight Surface Demonstration

Monday, June 04, 2007 2:27 AM by Michael's Blog

Microsoft announced some days ago its Surface product . If you didn't had a look on the videos you should

# Silverlight Surface Demonstration (Video Support)

Monday, June 04, 2007 8:16 AM by Michael's Blog

In one of my last posts I wrote about the Silverlight Surface demo of the "photo table". If you had a

# Get your Surface (in Silverlight) now

Tuesday, June 05, 2007 7:31 AM by Michael Kordahi's Microsoft Blog

Delay has whipped together a Surface-like experience in Silverlight. Pretty cool actually. And there's

# Bricar com fotos no Silverlight como no Surface

Tuesday, June 05, 2007 1:04 PM by Good News and No News: Cezar Guimarães

Alguns dias atrás a Microsoft anunciou o Surface , que permite que a interação com um computador com

# My "Lap Around Silverlight" Talk at TechEd

Wednesday, June 06, 2007 11:53 PM by ScottGu's Blog

On Monday I gave an overview talk called "A Lap Around Silverlight" at TechEd in Orlando. You can download

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Thursday, June 07, 2007 4:37 AM by interactive

I've added the video support here:

http://weblogs.asp.net/mschwarz/archive/2007/06/04/silverlight-surface-demonstration-video-support.aspx

Thanks for sharing the source code, it is a great demo!!!

# Surface UI Demo using Silverlight

For those who do not already know, the new Surface technology from Microsoft Labs is running on a Vista

# Microsoft Surface ו- Silverlight

Saturday, June 09, 2007 7:51 AM by Amit Cohen-Berezin's Weblog

הפעם דוגמא נחמדה של שילוב הקונספט של Microsoft Surface שהוכרז לאחרונה, עם האפלקציה עליה רץ ה- Silverlight

# Silverlight Streaming

Tuesday, June 26, 2007 4:58 PM by Zhiming Xue's WebLog

After working with a few sample Silverlight applications I became curious to see how a silverlight application

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Thursday, June 28, 2007 10:51 AM by Scott LYP

We run a Wedding Photography business in Fort Myers and I can't wait to have a product like this to show clients their proofs!

# Silverlight Surface Demo

Thursday, July 05, 2007 2:28 AM by Rudi Grobler

I don't know if anybody blogged about this yet... There was a huge hype about surface when it was

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Thursday, July 26, 2007 4:26 PM by v-willch

Hi - very nice work

I'm trying to get your app running on my server but it doesn't seem to be working.

it runs ok on my local machine: C:\Inetpub\wwwroot\SilverlightSurface\Default.html

but when i hit: http://myserver/SilverlightSurface/Default.html

I get a blank page-and when i right click on the page it says about Microsoft Silverlight.

I don't know where is the pb???

Can you help?

Thanks

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Thursday, July 26, 2007 10:46 PM by Delay

v-willch,

I'm not sure where the problem is, but here are a few things to check:

* Is IIS configured to allow serving the XAML file?

* How about the .DLL file in ClientBin?

* Is the directory structure the same for both sources?

* Have you watched the network traffic with a network monitor to see if any requests are failing?

* Might your browser's security settings be interfering?

The fact that it works from your local machine is good and suggests that the bits are valid and your Silverlight's configured correctly. Now it's just a matter of finding out what's bothering IIS. Good luck! :)

# A new Silverlight version has been released! [Samples updated for the 1.1 Refresh]

Friday, July 27, 2007 7:14 PM by Delay's Blog

With today's release of the Silverlight 1.0 RC and 1.1 Refresh , I've updated the Silverlight samples

# A new Silverlight version has been released! [Samples updated for the 1.1 Refresh]

Friday, July 27, 2007 7:15 PM by Noticias externas

With today's release of the Silverlight 1.0 RC and 1.1 Refresh , I've updated the Silverlight

# איך לעשות Upgrade ל Silverlight 1.1 בגרסה החדשה

Saturday, July 28, 2007 7:50 PM by It's All About Causality

Delay מפרט את השלבים שהוא עשה כדי לעשות Upgrade לכמה דברים שהוא כתב ב Silverlight 1.1. בינהם ה Air Lines

# [PL] Microsoft Surface - implementacja w Silverlight

Tuesday, July 31, 2007 4:21 AM by Only Human | Devoted to technology v.2.0

Jakiś czas temu wspomniałem o nowym dziecku Microsoft czyli zgrabnym urządzeniu o dzwięcznej nazwie Surface

# [PL] Microsoft Surface - implementacja w Silverlight

Tuesday, July 31, 2007 4:43 AM by Noticias externas

Jakiś czas temu wspomniałem o nowym dziecku Microsoft czyli zgrabnym urządzeniu o dzwięcznej nazwie Surface

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Sunday, August 19, 2007 2:33 AM by imran.ansari

Hi,

I'm very new to Silverlight. I've installed Visual Studio 2008 Beta 2, Silverlight.1.1alpha and VS_SilverlightTools_Alpha_Setup. I could load the SilverlightSurface project but while building it gave an error "No overload for method 'Open' takes '2' arguments". After providing the third parameter 'Async' as "true", I was able to build the project. But when I run it, I don't get to see any of the images in the browser. Not sure if the project works with VS2008 Beta 2.

I would greatly appreciate guidance on this.

Thanks,

Imran

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Monday, August 20, 2007 1:30 PM by Delay

Imran,

It sounds like you've got a version-mismatch. I recently updated my samples to work with the 1.1 Refresh (http://blogs.msdn.com/delay/archive/2007/07/27/a-new-silverlight-version-has-been-released-samples-updated-for-the-1-1-refresh.aspx). One of the changes in the refresh was to go from a version of Downloader.Open that takes 3 parameters to one that takes only 2 (http://msdn2.microsoft.com/en-us/library/bb693297.aspx#downloads_asynchronous).  So sounds like you've got the latest code for the Surface demo (2 parameters), but that the version of Silverlight you have installed is not up to date (3 parameters). You should be able to fix that by uninstalling Silverlight and re-installing it from http://silverlight.net/ which will get you the latest bits.

Regarding the images not loading, please refer to this blog post for a note on how I didn't include the images with the source code download (along with directions for getting them) and also my post about updating solutions for the 1.1 Refresh (the same one I linked to above) regarding a way to work around a new Downloader security limitation when using file:// URLs.

Once you take care of those issues, you should be set!

# As promised to many here are my links from recent presentations

Thursday, September 13, 2007 7:38 PM by Noticias externas

Links from my recent Mashup the Web presentations... All Blacks Silverlight Gadget HD View Photosynth

# Silverlight: Microsoft Surface Demonstration

Tuesday, September 25, 2007 6:13 AM by iFX

Silverlight: Microsoft Surface Demonstration

# ScatterView

Thursday, November 01, 2007 4:01 PM by Tales from the Microsoft Surface team

The Photos app is one of the most popular ones to demo. People really love the type of natural interactions

# ScatterView

Thursday, November 08, 2007 1:06 PM by Tales from the Microsoft Surface team

The Photos app is one of the most popular ones to demo. People really love the type of natural interactions

# Getting Silverlight

Friday, November 23, 2007 5:19 PM by SuperSKa Weblog

Getting Silverlight

# re: Silverlight "Surface" Demonstration [Silverlight implementation of Surface's "photo table" UI]

Tuesday, December 18, 2007 8:02 AM by jdobrien

This was such a nice example, I thought it would be nice to update to silverlight 1.1 and add a feed from flickr.

http://www.obrienjd.com/silverlight/2/default.aspx will get the 'friendliness' photos from flickr.

If you add email=<myemail@yahoo.com> to the query string it will get your flickr photos.

# Silverlight Success

Tuesday, December 18, 2007 9:49 AM by obrienjd.com

Silverlight Success

# Links and Code from my Code Camp Session

Monday, January 28, 2008 1:27 PM by Bryant Likes's Blog

Thanks to everyone who came to my session, hope you enjoyed it. First off, instead of slides I used WPF

# Microsoft Surface - een nieuwe vorm van user experience

Thursday, February 07, 2008 5:16 AM by Microsoft User Experience Blog

Al een paar weken geleden is een nieuw product aangekondigd: Microsoft Surface. Dit product is een wat

# Silverlight extension 'Surface' échantillon

Tuesday, November 11, 2008 10:41 AM by ElRinO VS Silverlight

Bon je me baladais à la recherche d'exemple sympa sur Silverlight et là, je tombe sur ça: http://www.pureblue.co.nz/silverlightsurface/

# Shamelessly benefitting from the work of others [Links to Silverlight Airlines and Surface samples for RTW!]

Thursday, November 13, 2008 7:28 PM by Microsoft Weblogs

I try to keep up with migrating my various samples to the latest Silverlight Beta/RTW releases, but I

Anonymous comments are disabled
 
Page view tracker