Technical Notes

(updated February 7, 2018)

The information below covers the equipment and techniques used to create the panoramas found on No claim is made that any of this represents the best way to do things. This is just the way things have ended up being done after a long process of learning and experimentation.


Each panorama consists of from six to twenty-seven individual images stitched together using PTgui. Each non-WebVR panorama was converted to a 360 degree HTML5 or Flash image and linked with its neighboring panoramas using Pano2VR. Pano2VR does not support the WebVR format at the time of this writing so the WebVR panoramas were created using Krpano. The “Links” tab above can be used to get more information on these excellent packages.


Photographic Equipment

The equipment used to take the pictures has been evolving over time:


            April 2012

·        Olympus E-PL1 with 14-42mm kit lens

·        home-made panorama adaptor


            May 2012

·        Olympus E-PL1 with 12mm f2 M.Zuiko lens

·        home-made panorama adaptor


            November 2012

·        Olympus E-PL1 with 12mm f2 M.Zuiko lens

·        “Nodal Ninja 3 + Mk II Rotator” panorama adaptor

·        Gitzo GT0531 tripod


            March 2013

·        Olympus E-PL5 with 12mm f2 M.Zuiko lens

·        “Nodal Ninja 3 + Mk II Rotator” panorama adaptor,

·        Gitzo GT0531 tripod


November 2016

·        Olympus Pen-F with 12mm f2 M.Zuiko lens

·        “Nodal Ninja 3 + Mk II Rotator” panorama adaptor

·        Gitzo GT0531 tripod


Click on the “Links” tab above for more information on this equipment.

The Olympus 12mm f2 M.Zuiko lens’ ability to focus manually using the distance scale on the lens barrel is a real plus for shooting panoramas, where consistent focus through the sequence of shots is essential. The associated depth-of-field scale is also extremely handy. The lens is the equivalent of a 24mm lens in 35mm terms, though, so it is no fisheye.

Panorama Types

There are two types of panoramas on cylindrical and spherical. A cylindrical panorama is a 360 degree horizontal strip that has limited vertical coverage. With the equipment listed above, it can be produced with 6 “landscape” orientation shots or 8 “portrait” orientation shots. A full spherical panorama, on the other hand, provides not only 360 degree horizontal coverage, but also full 180 degree vertical coverage from the sky above to the ground below. New spherical panoramas for are produced from 27 shots (3 rows of 9 portrait orientation pictures taken at vertical angles of 60, 0, and -60).

The oldest panoramas on are cylindrical. All the newer ones are spherical.

Panorama Formats

The older panoramas on this site are in Flash format and can only be viewed by a browser that supports Flash. Since Adobe is no longer supporting Flash on mobile devices and tablets, that can present some problems. All the newer panoramas on this site are in HTML5 format, to allow viewing on a wide variety of devices. The plan is to use HTML5 format for all future work and to eventually convert all the old Flash panoramas to HTML5.

Taking the Pictures

All camera settings are placed on “manual” when shooting the base images that go into a panorama. That includes shutter speed, aperture, ISO, white balance, and focus. Image stabilization is turned off since a tripod is always used. An aperture of f8 and an ISO setting of 200 were used almost exclusively, which gives good depth of field and relatively low noise. White balance is set at the beginning of a shoot based on conditions and doesn’t usually need to be adjusted again after that. Focus is typically set by aligning the infinity symbol on the rotating part of the lens barrel with the f5.6 depth of field mark on the fixed part of the lens barrel. The f8 mark could be used but that might be cutting things a little close. A two second delay is set to minimize camera shake after pressing the shutter button. One pleasant side-effect of all these manual settings is improved battery life.

The exposure is typically set by adjusting the shutter speed only. The goal is usually to keep the brightest parts of the scene no more than about two thirds of a stop over-exposed, if at all. If that leaves the shadows too deep, then post-processing is done on the completed panorama to selectively brighten up just the darkest areas. Adobe Photoshop does a great job at that. In general, it’s usually much easier to deal with underexposed areas than blown highlights.

In extreme cases, HDR techniques are used. That involves using the Olympus Pen-F’s exposure bracketing feature to shoot each of the panorama’s 27 shots at three or more different exposure settings. PTgui Pro is then used to merge them all into a single panorama with a wide dynamic range.

As mentioned above, 3 rows of 9 shots are used to make a full spherical panorama. The Nodal Ninja provides click stops to make cycling through each set of 9 shots quite easy. The vertical angles of 60, 0, and -60 are manually set.

The typical checklist for shooting a panorama in the field is:

1. The tripod is set up and a compass is used to align the first picture to north.

2. The tripod is leveled using the bubble level on the Nodal Ninja. It helps to remember that the bubble points to the leg or legs that need to be lowered.

3. The exposure is checked for both the brightest and the central parts of the scene and the shutter speed is adjusted as needed. This step is skipped if conditions are about the same as for the previous panorama.

4. The Nodal Ninja is set to a vertical angle of +60 degrees and a sequence of 9 shots is taken.

5. The Nodal Ninja is set to a vertical angle of 0 degrees and a sequence of 9 shots is taken.

6. The Nodal Ninja is set to a vertical angle of -60 degrees and a sequence of 9 shots is taken, trying to remember to keep feet and shadows out of the scene!

7. Optionally, a 30 second sound clip is recorded using the camera’s sound annotation feature.

8. Occasionally, a realization occurs at this point that one of the earlier steps was overlooked or done incorrectly, resulting in a curse, a reevaluation of the merits of panoramic photography, and then going back and doing it all over again. Shooting a dark frame helps delineate a failed attempt.

9. Once all the above steps are completed successfully, a nadir shot (straight down) may also be taken. This depends on the surface on which the tripod was placed. If the ground is uniform without any special distinguishing marks, the nadir shot is usually skipped and the Photoshop “clone stamp” or “spot healing brush” tools are used when the time comes to remove the tripod image from the panorama.

Shooting a long sequence of panoramas for a virtual hike can be a bit tedious, requiring about forty panoramas and two hours for each mile of trail.

Creating a Panorama

Back on the computer, the following are the latest (January 2018) steps used to create each spherical, non-HDR panorama:

1. The 27 shots that make up a panorama are placed into a folder of its own.

2. The images are checked to make sure they are all right-side up.

3. The 27 shots are brought into PTgui Pro using the “Load Images” button on the Project Assistant tab.

4. The “Align to Grid…” option from the Project menu is selected. A grid of three rows by nine columns starting in the upper left is specified and then the Apply button is pressed to organize the images.

5. The “Align images” button on the Project Assistant tab is then used to do the initial stitching together of the images.

6. The Panorama Editor window is used to inspect the alignment. The “Show Seams” button is handy for seeing where the images are being joined.

7. If there are stitching errors, like discontinuities in tree branches or sidewalk seams, they can often be resolved by manually adding more alignment points using the Control Points tab or by applying masks using the Mask tab. Really stubborn stitching errors can sometimes be resolved by going into the Control Point table and deleting some of the automatically generated control points that have a high “distance” value. In particular, deleting high value control points that fall directly on the tripod head or ones in clouds that were moving during the image capture can sometimes resolve stitching errors that occur elsewhere in the panorama. Note that mask changes are applied automatically but the Optimizer must be run to see the effect of any added, modified, or deleted control points.

8. Once any alignment errors have been fixed, the “Create Panorama” tab is selected. For my camera setup, the displayed width usually ends up being a bit over 20,000 pixels. I typically set it to 20,000 even. That seems to work well with a tile size of 625 in Pano2VR. The output file name for the panorama and its location are also specified at this point. I use the panorama name later when creating the internal HTML5 files, so I always try to make sure the name is unique across all my panorama collections. This avoids conflicts when different panorama sets share the same output folder.

9. After setting the size and panorama name, either the “Create Panorama” button or the “Save and send to Batch Stitcher” button is used to create the actual panorama file. Jpeg format is usually used for panorama files generated by PTgui. Tiff is used sometimes to try to maximize the image quality (especially if multiple post-processing sessions are expected) but a 20k by 10k pixel tiff image can come out at more than a gigabyte, so it really eats up the disk space.

10. The generated panorama file is carefully inspected for stitching errors. These are usually fixed by going back to step 7. Sometimes stubborn stitching problems are addressed using surgical cut and paste operations in Photoshop. As an example, palm trees swaying in the wind can cause alignment issues that can only be remedied this way.

11. If there are shadow areas that need to be brightened up in the panorama, or other exposure adjustments that are needed, Photoshop may be used to do that at this point. If a nadir patch is going to be applied later in Pano2VR to remove the tripod, though, it’s best to wait until after that is done before performing any exposure adjustments.

Converting Panoramas to HTML5 Format

The spherical panorama (equirectangular) files produced by PTgui are converted to 360-degree web-viewable HTML5 content using the following (January 2018) steps. These steps are based on Pano2VR Pro Version 5.2.3 64-bit. To help keep things organized, I place the panorama file or files to be converted to HTML5 in a unique folder. Note that all the files that will make up a tour can be loaded into Pano2VR Pro at the same time. The steps below are oriented to processing a set of panoramas that make up a tour but pretty much the same procedures are used when dealing with a single panorama.

As mentioned above, no claim is made that any of this represents the best way to do things. This is just the way I have ended up doing things after a long process of learning and experimentation.


1. After starting Pano2VR Pro, I choose “New Project” from the startup dialog box. I then browse to the folder containing the panorama files (or file) and select them.


2. I save the project right away and give it a unique name.


3. In the upper right corner under the column titled “Output”, I click on the ”+” icon to create a new HTML5 output. The following steps handle setting up the parameters for this new output. All the following options are found under the “Output” column.


a. I specify the output folder name and location to be used. The output folder contents are deployed to the web at the end of the process to make the HTML5 content “live”.


b. I select a Pano2VR skin. The skin is basically a template for the static elements of the panoramas, like the control buttons at the bottom of the screen. The skin defines both their appearance and their behavior. There are several skins available to choose from and you can customize your own using the skin editor. I use a modified version of the “simplex_sm7” skin.


c. I usually accept the defaults for the “Auto Rotation & Animation”, “Transitions”, and “Hotspots” settings.


d. Under the “HTML” settings, I change the “Output File” name to “$n.html”. That uses the name of the first panorama, which is hopefully unique enough to avoid conflicts if multiple projects share the same output folder.


e. Under the “Control” settings, I click “Add Fullscreen item”.


f. Under the “Image” settings, I set the tile size to 625 if I am using 20,000 x 10,000 image files. Sometimes I generate 22,720 x 11,360 image files to make the most of the 20-megapixel sensor on the Olympus Pen-F. With those files I specify a tile size of 355. I also select “Multi Res” and “Auto” levels.


g. Under the “Advanced” settings, I change the output file name to “$n.xml”. As with the html file, this avoids conflicts if multiple projects are sharing the same output folder. Also, under the multiresolution filename, I choose one that begins with “tiles/$n/cf_…” to further reduce the chance of conflicts between my Pano2VR projects.


4. For each panorama, I set the following “User Data” fields: Title, Description, Author, Date and Time, and Copyright.


5. For each panorama, I use the Pano2VR Pro “Tour Map” feature to fix the position and orientation of the panorama on a map. When the map comes up, a right-click sets the position. Then, after clicking on “Pick landmark”, a second right-click defines the point of view. Note that the “Address” field at the bottom of the map box can be used to search for a location, like Sequoia National Park, for example. This can save a lot of searching around on the map.


6. If I am linking multiple panoramas into a tour, I often start by using the “Automatic Linking”, “Closest Nodes” option from the drop-down “Tour” menu on the top menu bar. As the name indicates, this creates a set of sequential hot spot linkages for all the tour nodes. As needed, I then manually fine tune the location of the hotspots by unchecking the hotspot’s “Auto Place” option and then dragging the hotspot icon to the desired location in the panorama. As needed, I adjust the initial view that will be displayed when the hot spot transitions to another panorama. Pano2VR provides a red and white bullseye icon in the hotspot’s settings that can be used to easily set the view. As needed, I also manually create any additional hotspots and links that are needed.


7. For each panorama, I orient it to the desired initial view and then save that by clicking on “Set” under “Default View” under the Viewing Parameters section. In that same section, I usually set the “Max” “Rectilinear” “Field of View (Zoom)” to about 60 or 70 degrees. This is just a personal preference to limit distortion when zooming out.


8. For each panorama, I use the Pano2VR Patch option to mask out the tripod image. This is done by clicking on Patch, then positioning the panorama to the center of the tripod, clicking on its center point, and then sizing the movable box that is displayed so it covers the whole tripod. If a mirror ball is being used to cover the tripod, it can be selected under the “Type” field and then Apply can by clicked to generate it. If the tripod is to be replaced with a view of the ground underneath it, the Type field is set to “Image” and the “Extract” button is clicked to make a patch file. That patch file is then automatically opened in an image editor (I use Photoshop). There the tripod can be edited out, either by overlaying an image of the ground that was taken after the tripod was moved (a nadir shot), or by using the Photoshop “clone stamp” or “spot healing brush” tools. The approach that uses an actual nadir shot produces the best results, but it can take a bit of work to get it right. Upon exiting Photoshop, the updated patch file is automatically integrated with the panorama. One word of warning, once you have created a patch, don’t do any further exposure adjustments on the original image file or the patch image will be out of sync.


9. The “cogged wheel” icon is then used to generate the HTML5 output. A set of files are produced, all of which are posted to the web when the content is deployed.


10. After the HTML5 content has been generated, the preview option allows it to be viewed from within Pano2VR. Be aware that it’s not possible to view the content simply by double-clicking the generated html file in the Windows File Explorer window. A web server is needed to view the content and Pano2VR has an internal one built in for testing the generated output.


Many of the above options can be saved as defaults in Pano2VR so they don’t have to be specified each time a new project is created. They are listed out above to simulate a first-time experience.


Converting a Panorama to Flash

I’m not making any new Flash panoramas at the moment and the steps I used in the past are mostly obsolete now due to the new and improved Pano2VR user interfaces. As a result, I’m dropping this section. Note, however, that the output creation process in step 3 above can also be used to create a Flash output. Also note that a project can have multiple outputs. The multiple outputs can even share the same set of tile files under certain circumstances. I haven’t done this with Flash and HTML5 but I have done it with two different HTML5 outputs in the same project.

Creating Panoramas for 360Cities

360Cities ( offers panoramic photographers a place to display their work. Free accounts are available but advertising is displayed along with the panoramas. For a yearly fee, one can upgrade to a “Pro” account and either turn the ads off or earn a portion of the ad revenue. Panoramas are submitted as Equirectangular jpeg (.jpg) files. This is the same format produced by the PTgui steps outlined above but better results can usually be obtained by going into Pano2VR and performing a nadir patch. Pano2VR can then be used to export an Equirectangular jpeg by choosing the “Transformation” output option, specifying the “Type” as Equirectangular, specifying the output image size to match the size generated by PTgui, and then selecting jpeg output. One important thing to watch out for: it’s probably best not to use the “default view” if the tilt or roll settings are non-zero. That can result in a warped looking output. Uncheck the “Use default view” box and set the tilt and roll to zero before doing the export.

One of the attractions of posting to 360Cities is that many of the panoramas placed there are in turn posted on Google Earth. Some are even chosen by Getty Images. Another plus: they support a VR capability to allow your panoramas to be viewed using a VR headset. One downside: there doesn’t seem to be any support for creating a tour.

Creating Panoramas for Google Maps

Google accepts spherical panoramas for publishing under Google Maps.  They sometimes refer to the panoramas as “photospheres”. All you need to submit panoramas is a free Google Plus account. The panoramas to be uploaded must be equirectangular jpeg files with dimensions no greater than 14,000 x 7,000 pixels. Submissions are usually processed and available for viewing within a few minutes. To submit a panorama, go into Google Maps and search for the panorama’s associated location. Then simply click on the location’s “Add Photo” option.

The same Pano2VR “Transformation” option described above for creating panorama files for 360Cities can also be used to create Google Maps panorama files. Just keep the width at no more than 14,000 pixels. Note that the location information and panorama metadata (user information) specified in Pano2VR is typically passed along in the exported equirectangular jpg files.

Google provides a Street View app for smart phones that can be used to manage your Google Maps panoramas. Among other things, it allows panoramas to be linked together into a tour. As might be expected, the linked panoramas have Street View style “underfoot” circled arrows when viewed under the app or Google Maps to indicate the links to adjacent panoramas. The linkages seem solid when viewed in the Street View app but under Google Maps I find that the links occasionally dive into someone else’s panorama, which pretty much breaks the tour.

Pano2VR Pro has recently added extensive support for Google Maps and Street View. It’s now possible to directly upload an entire project of linked panoramas directly from Pano2VR to Google Maps. I’ll try to comment on that further when I get more experience with it.