Endquote is Josh Santangelo, an interface developer and former man-about-town in Seattle. Lately, he talks a lot about Silverlight, Surface, and Stimulant.

email: josh[a]endquote[.]com
work: stimulant.io


Posts on: WPF


Photo

Sep 9, 2010
@ 7:39 pm
Permalink

The last project I worked on at Stimulant for the Surface team at Microsoft was Live Stream, a multi-user social media reader. An administrator can configure it to pull specific feeds from Twitter, Flickr, and RSS services, which are then displayed in a never-ending, scrollable stream across the display.
Multiple users can pull interesting content toward them, where it will scale and orient to them for easy reading. They can take the content with them by flipping the items over and taking a photo of the Microsoft Tag on the back with their mobile phone, which resolves to the URL of that item.
This project was the inspiration for the SurfaceScrollViewer behaviors, ManipulationViewport, flipping ScatterViewItems, and Plane. Each of these components are free for download from the preceding links, and the entire project’s source code is available on the MSDN code gallery.

The last project I worked on at Stimulant for the Surface team at Microsoft was Live Stream, a multi-user social media reader. An administrator can configure it to pull specific feeds from Twitter, Flickr, and RSS services, which are then displayed in a never-ending, scrollable stream across the display.

Multiple users can pull interesting content toward them, where it will scale and orient to them for easy reading. They can take the content with them by flipping the items over and taking a photo of the Microsoft Tag on the back with their mobile phone, which resolves to the URL of that item.

This project was the inspiration for the SurfaceScrollViewer behaviors, ManipulationViewport, flipping ScatterViewItems, and Plane. Each of these components are free for download from the preceding links, and the entire project’s source code is available on the MSDN code gallery.


Text

Jun 19, 2010
@ 12:13 pm
Permalink

Flipping ScatterViewItems

If you’re building a Surface or Surface Toolkit application, there’s a pretty good chance that you’re using ScatterView. ScatterView is an ItemsControl, so it’s a great way to show information about a list of objects and allow multiple users to manipulate the objects independently. However you’re usually only showing a small amount of information about the object within a ScatterViewItem — an image thumbnail, or a song title, for example. What would be nice is if you could flip the item over to show more detail.

I’ve needed to do this more than once, and I’m not the only one. The first time was in our Kodak Surface application, and I achieved the affect with some horribly hacky and fake animations. The project I’m currently working on also has a requirement to flip items over, so I decided I’d do it right this time. That’s the real reason I put Plane together. Check it out.

Here is a Visual Studio 2010 project which includes the Plane source as well as examples of flipping ScatterViewItems in Surface and Surface Toolkit projects. You will need the Surface SDK and/or the Surface Toolkit installed to run these samples.


Text

Jun 17, 2010
@ 8:20 pm
Permalink

PlaneProjection in WPF

Silverlight has an excellent feature called PlaneProjection which enables basic perspective transforms on any display object. That’s great for Silverlight, but when I’m working with Surface, I’m still using WPF 3.5. If I want to do any kind of 3D transform there I need to use the WPF 3D library, which is very powerful and very scary, especially if all I want to do is rotate a postcard in space. What to do?

There have been a couple of attempts to create a reusable perspective transform in WPF, but I found them both lacking. The main problem I had with existing solutions is that I needed my psuedo-3D element to play perfectly well with the WPF layout system, and I also needed my text to look perfect when the object was not rotated at some strange angle. So I started with those examples, and along with some help from David Teitlebaum and my co-worker Joel Pryde, created a class simply called “Plane”.

In addition to the features illustrated in the test application, Plane lets you specify differently-sized content for the front and back sides, renders content in regular 2D when rotated to an angle parallel to the display, and has no trouble existing in the same layout with regular 2D objects.

Click the image above to download a Visual Studio 2010 project with the full source. I’ll be posting an example of it in a real application soon.


Text

Jul 27, 2009
@ 9:14 pm
Permalink

Microsoft Local Impact Map (for Surface)

A couple of months ago we finished the Microsoft Local Impact Map, a Silverlight app highlighting all of the progressive and wonderful things Microsoft does around the world. Today we launched a new look at the same data, presented on Microsoft Surface.

Microsoft Local Impact Map: Surface Edition from Stimulant on Vimeo.

Aside from being a cool multi-touch, multi-user, 360-degree application, this one is technically interesting because it shares so much with the Silverlight app. It uses the same data classes and hits the same web services as the RIA, but presents the data in a completely different way.

Whereas the web app is pretty much a single-user experience, we hope that the Surface version allows people to literally sit around the table and share an experience and a discussion about the stories and data in front of them.

It will be installed at Microsoft facilities around the world shortly. Look for it next time you’re on campus!


Text

Sep 2, 2008
@ 9:38 pm
Permalink

Devils, Details, Etc

I had a pretty slow Labor Day weekend filled with lots of reading, fancy cocktails, and a lingering dread of all the Burning Man stories I’d have to hear in the week to come.

Just when I thought the curved text control was ready to go, I showed it to our designers, one of whom noticed a pretty serious issue that’s proving tough to fix. It’ll get worked out, but I think we want to use it in a real app before publishing it someplace. So, that’ll be a while.

I’m 680 pages into the Petzold Bible and learning a ton. I’m working to finish it up so that I can move on to the next one, and also because some other projects are starting to heat up.