Topic: Auto Slideshow/Animation Option

Report Abuse Report Abuse
aridolan (Over 1 year ago)
In the panorama version of Photosynth the highlights define a programmable animation path which is run by clicking the Play/Pause button. I would like to have an Auto button that will play this animation just as the Play/Pause button, but will have the following feature: The animation will run continuously until the mouse is moved. Moving the mouse will pause the animation without clicking the pause button, transferring control to the user. If a period of, say, 30 seconds passes without moving the mouse, the animation resumes and continues to run until the mouse is moved again.

This auto-animation option is required for running Photosynth pano applications in a public place, such as an exhibition hall or a sales parlor, letting visitors either watch the animation passively or interact with it. When a visitor stops interacting the animation resumes.

Is such a feature possible?
Nathanael (Over 1 year ago)
An attract mode ( ) for Photosynths. Great idea!

Out of curiosity, what happens if a user has clicked or used the scrollwheel or keyboard. In today's viewer all of these events will stop a slideshow dead in its tracks. I assume that you would want the animation to resume after 30 seconds of input silence, regardless.

It is also conceivable that while interacting with Photosynth, a user may be distracted by members of their party talking to them... about the synth or anything else. 30 seconds is quite a while to not be moving the mouse at all, but on the other hand can go by fairly quickly in conversation. It is good to quickly make Photosynth interesting again after people stop using it, but for new users 30 seconds may be intimidating as they attempt to understand how to navigate and are interrupted by the automated playback.
Nathanael (Over 1 year ago)
Also... for a public gallery setting like I am imagining, it would be great to have some way of locking a synth in fullscreen and not letting people escape it or navigate to other synths... or if they can navigate to other synths, then let the viewer return to the synth that we have chosen for display beforehand automatically after a longer time period. Perhaps there is a use case for installing the Photosynth viewer to desktop after all.

Another scenario would be to be able to define a selection of synths (or panos) chosen for exhibition which you want the viewer to alternate between every... two minutes? I'm open to suggestion on that timeframe. I think that one play through the highlights would be a little too short on each synth, but perhaps not.
aridolan (Over 1 year ago)
Yes, I was not familiar with the concept of an attract mode, but this is what I have in mind.

The 30 seconds figure is just a suggestion. The idea is that after a user stops interacting with the Photosynth, the animation will resume automatically. Following your comment, maybe something around two minutes is a better choice.
aridolan (Over 1 year ago)
I like both ideas, that of locking in fullscreen or automatic return to fullscreen mode, and that of switching between predefined Photosynth.

Maybe some simple API is needed to give more control over Photosynth presentation.
Nathanael (Over 1 year ago)
An great option for transitioning from one synth to the next would be zooming up in Bing Maps and down to the next predetermined spot, rather than some simple fade and load. I think both modes have their place, if a user is not satisfied with the current transition from synths or panos to Bing Maps.

In any case, I've wandered off of Ariel's main point now with the talk of multiple synths.

As a side note, it is possible for synths which you embed in other sites to be configured to play as soon as the viewer loads (assuming that the people loading it already have Silverlight). When you get the embed code, you'll see the following variables: delayLoad=true&slideShowPlaying=false

If you switch these to delayLoad=false&slideShowPlaying=true then you'll get your synths set off on the right foot. The auto-resume after people have interacted still needs to be implemented, though.
Nathanael (Over 1 year ago)
Have you already encountered the Javascript API to talk to the viewer?
Nathanael (Over 1 year ago)
One thing that I meant to mention is that if there is no way to lock the viewer in fullscreen, then it is possible to remove a user's focus from the Silverlight viewer and place it on the HTML page around the viewer by clicking anywhere else on the page. This (I believe) causes the viewer to be unable to monitor mouse events any longer.

Correct me if I'm wrong.
aridolan (Over 1 year ago)
Thank you for the Javascript API reference.

I experimented a little with the sample Javascript Photosynth page and some Javascript code I found on the Internet for detecting mouse inactivity. My page, using one of the flea market panoramas, starts the animation upon loading, allows user interactivity, and resumes the animation automatically after a specified inactivity time, but only if the mouse cursor is outside the viewer. This. of course. is not good enough. I cannot force the user to move the mouse away from the viewer. However, I do not know how to sense mouse inactivity when the mouse cursor is over the viewer.

My experimental Photosynth Pano page:

Andrew Sellick's Javascript code for detecting mouse inactivity:

Any suggestion regarding how to detect mouse inactivity when the mouse cursor is over the Photosynth viewer?
douglas (Over 1 year ago)
Hi aridolan,
  you can't detect via the API directly if the user is moving the mouse or not, but one thing you could do is use the API to look at the camera parameter, the important ones are fieldofview and lookdirection,  you can have some kind of timer that checks once every few seconds to see if these values have changed, this will probably be a reliable indicator if the user is actually changing the view inside the viewer.  See:

which you can get to from the viewer using

Hope that helps.
aridolan (Over 1 year ago)
I tried checking the camera parameters, and I can detect user activity using these values. However, the problem seems to be related to the Javascript timer function setTimeout(), which does not work when the mouse cursor is over the Photosynth viewer. Is there a solution to this problem?