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


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

Sep 6, 2010
@ 4:09 pm
Permalink

SAP InSite Studio

Things have been stupid-busy at Stimulant — so much so that I haven’t gotten around to posting some recently completed projects.

Back in May, we shipped “SAP InSite Studio”, which was a proof-of-concept app for SAP’s big conference in Orlando. There were three instances of the application running on large HDTVs with multitouch overlays, all connected to a high-end Cisco videoconferencing system. The Stimulant blog has more details, and the video below.

This one was particularly challenging to me, as it was my first Windows 7 touch app, which isn’t quite the same as Surface. The Surface Touch Pack didn’t ship until the project was mostly done, so I wasn’t able to take advantage of it much. I also had to do lots of interop between managed and native code in order to get my app to control other arbitrary applications on the system — mostly IE and Office apps. It turns out that Windows doesn’t really want you to do that sort of thing, so various hacks and workarounds were applied that kept this from being more than a proof of concept. We learned a lot though, and could potentially make it “real” in the future.


Text

Jul 12, 2010
@ 10:48 am
Permalink

SurfaceScrollViewer Behaviors

In my last Surface project, I developed a couple of behaviors which tweak how SurfaceScrollViewer works. You can see them in the video below.

Here is a VS 2010 project which includes the demo application shown in the video. Let’s discuss them over on the Surface forum.


Text

Jul 6, 2010
@ 3:49 pm
Permalink

ManipulationViewport

By default, a ScatterViewItem can be scaled as large as the display. If the content is an image, the image will scale up with it. This works well, but if the application has multiple users at the same time, one person could scale an image up and occlude everything the other user was working with.

A solution to that would be to limit the size of the ScatterViewItem, but allow the content within it to be manipulated separately from the container. Something like the video below.

Here is a Visual Studio 2010 project which includes the source for the application shown above. Let’s discuss it over on the Surface forum.


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:39 pm
Permalink

Modeling the World

I forgot to mention the launch of Modeling the World, a collection of videos and the start of a community from Microsoft Technical Computing.

The lobby is the most interesting bit, and features a gravity simulation developed by Joel Pryde. I was in charge of the video player, which features Smooth Streaming video, a transcript, and extras timed to specific cuepoints in the video. You may remember much of this functionality from Project Tuva.


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.


Quote

Apr 30, 2010
@ 1:07 pm
Permalink

Working at @stimulant is all about spending hours building transitions that last milliseconds, and then hoping people notice.

tweeted


Text

Apr 15, 2010
@ 10:45 pm
Permalink

There’s always more to learn

My main project these days has been a bit of a stretch, as it’s neither Silverlight nor Surface. Things involved that I have never used before:

But, somehow it’s all coming together and we’re dropping a beta tomorrow, and should be done soon.

Next up, I’ll be back in the cozy world of Surface, where I can stretch my brain on design and experience rather than config files and native interop. I definitely can’t complain about a lack of variety in my work.


Link

Apr 5, 2010
@ 11:55 am
Permalink

The Silverlight for Symbian development experience »

I wrote a bit about developing for Silverlight on Symbian on the runtime team’s blog.