Panodroid is now open source!

Exciting news from Panodroid! Panodroid is now open source and becomes OpenPanodroid.

Unfortunately, I had very little time to further improve Panodroid. I am currently working on a number of very interesting research questions that just don't leave me enough time for Panodroid. Although Panodroid is stable, I know there are some open feature requests, mostly about GUI features. Personally, I am more interested in the algorithms and distribution aspects, which from my point of view have been solved. Therefore, I hope the community will give OpenPanodroid a hand, and add some more features, or fix bugs (if there are any ;) I also hope that the source code is helpful for other projects that require a fast high-quality panorama image viewer, or just to learn how OpenPanodroid converts and renders panoramas (e.g., using OpenGL and native code).

The full source code can be downloaded from github.

git clone git://github.com/duerrfk/OpenPanodroid.git

I am looking forward to any feedback how you modified and used Panodroid!

What is Panodroid?

Panodroid is an interactive panorama image viewer for Google's Android platform targeted at smart phones and tablets. It displays equirectangular panorama images (360 deg x 180 deg spherical panoramas) hosted at Flickr, local images stored on the device, or from any user-defined URL. The user can rotate the view by 360 degrees horizontally and 180 degrees vertically. Panodroid supports kinetic rotation and tag-based image queries. It can also act as generic panorama image viewer for other third-party apps (see developer information below).

System Requirements

Screenshots and Video

Since Panodroid is an interactive viewer, still images can hardly show its functionality. Therefore, I recommend to watch this short video.

Panodroid Search Dialog Flickr search dialog
Panodroid Panorama List View List of requested panorama images
Panodroid Panorama View Panorama viewer. This image only shows one view into one direction. Actually, the user can pan and tilt the view by 360 degrees and 180 degrees, respectively.

Version History

Download

You can download Panodroid through the Android Market using one of the following links, or simply by scanning the QR code below:

Panodroid Market QR-Code

Supported Panorama Image Format

To display your panorama image with Panodroid, it must fulfill some properties. It must be a full-spherical panorama covering 360 degrees horizontally and 180 degrees vertically. It must be stored as single JPG or PNG image using the equirectangular projection. Such images have an image resolution where the image width is two times the image height. This is a common format for panorama images and should be supported by most applications for creating panorama images.

Developer Information

Panodroid can be used by other applications to display panorama images. To call the panorama viewer activity, you have to supply an URI pointing at the panorama image (remote file URL (http://), local file path (file://), content URI (content://)). The following code example shows how to invoke Panodroid:

Uri panoUri = Uri.parse("http://www.frank-durr.de/foo/pano-6000.jpg"); ComponentName panoViewerComponent = new ComponentName("de.frank_durr.panodroid", "de.frank_durr.panodroid.PanoViewerActivity"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setComponent(panoViewerComponent); intent.setData(panoUri); startActivity(intent);

Feedback

Please feel free to send me your feedback about Panodroid. There are several possibilities:

Frequently Asked Questions

Legal Notice

Panodroid is a free non-commercial application and personal project of Frank Dürr.

Panodroid uses the Flickr API but is not endorsed or certified by Flickr. The API is used according to Flickr's terms of use. In particular, every photo is displayed together with the name of the author and the required link to the original photo page at Flickr. However, if you as an author of photos stored at Flickr want your photos to be excluded from Panodroid, you can opt-out from being considered by requests through the Flickr API. Please read the official discussion at Flickr for more details on this issue.