

360° panorama viewer with zoom, caption, download and fullscreen controls (free)
Photo Sphere Viewer is a WordPress plugin that embeds interactive 360° content — panoramas, multi-scene virtual tours, 360° video and AR-ready 3D models — directly in your pages. Visitors drag, pinch and zoom to look around. You add a viewer with a block-editor block, an Elementor widget or a shortcode. Everything is hosted on your own site: no iframes, no third-party embed account, no watermark.
The free version has no limit on panoramas, tour scenes, videos or models, and includes info hotspots, auto-rotation, gyroscope viewing on phones and 360° video autoplay. Photo Sphere Viewer Pro adds unlimited hotspots with photos, a scene gallery and compass for tours, and full-resolution image loading for drone panoramas.
Try it before you install: click Live Preview above to open a working panorama with hotspots and a three-scene virtual tour in your browser.
[psv], [psv_tour], [psv_video] and [psv_ar] shortcodes360° panorama viewer — Upload an equirectangular photo and visitors look around it on desktop or mobile. Add info hotspots that label what they are looking at, let it auto-rotate, and set the field of view, zoom limits, movement speed and starting angle. The toolbar carries zoom, auto-rotate, caption, download, fullscreen and a gyroscope button for phones.
Virtual tour builder — Link as many scenes as you want with 3D arrows. In the block editor you place each arrow by clicking on the photo where the doorway is. Each scene has its own caption and starting view, and you choose which scene opens first. A good fit for property walkthroughs, hotel tours and museum floor plans.
360° video player — The same look-around interaction for an equirectangular MP4, with play/pause, seek and volume controls, plus muted autoplay and loop.
AR 3D model viewer — Embed a .glb or .gltf model with Google’s <model-viewer>. Visitors rotate it in the page, and phones that support AR get a button to place it in their room. Set a poster image, auto-rotate, shadow intensity, HDR environment lighting, a skybox background and alignment.
Tours, 360° video and 3D models work the same way through their own Elementor widgets (PSV Virtual Tour, PSV 360° Video, AR 3D Viewer) or the Shortcode Builder.
Upgrade when a tour has to sell — a listing, a hotel, a venue:
-scaled copy. Pro loads the original instead, so a 40MP drone panorama keeps its detailPro is an add-on to this plugin, so everything you have already built keeps working. It comes with a 30-day money-back guarantee.
-scaled copy damages. Pro’s full-resolution loading serves the original uploadWorks with the block editor, Elementor and Elementor Pro, WooCommerce, Yoast SEO, Rank Math, WPML, Polylang, WP Rocket, LiteSpeed Cache and W3 Total Cache. The viewer scripts load only on pages that contain a viewer.
Add the 360° Panorama block, choose an equirectangular photo, and set the caption, height, toolbar buttons and info hotspots in the sidebar. Click Place on panorama to position a hotspot by pointing at the photo.
Add the 360° Virtual Tour block and choose several photos at once — they are linked in order straight away. Click Place arrow on any link to put it where the doorway is, and Set starting view to choose what visitors see first. For 360° video and 3D models, build a shortcode with the Shortcode Builder and paste it into a Shortcode block.
Open the Elementor editor and search the widget panel for Photo Sphere Viewer, PSV Virtual Tour, PSV 360° Video or AR 3D Viewer. Drag one into your layout, choose your image, video or model, then set the toolbar and styling options. Widgets you don’t use can be switched off from the plugin’s admin screen.
Build a shortcode visually with the Shortcode Builder in the admin menu, or write one by hand:
[psv image="https://example.com/panorama.jpg" caption="Living room"]
[psv_video src="https://example.com/360-video.mp4"]
[psv_ar src="https://example.com/model.glb"]<h3>External services</h3>
Google Hosted Libraries — <model-viewer>
The AR 3D Viewer loads Google’s model-viewer web component from https://ajax.googleapis.com/ajax/libs/model-viewer/3.4.0/model-viewer.min.js. It is requested by the visitor’s browser only on pages that actually contain an AR 3D Viewer widget or a [psv_ar] shortcode; pages without one make no request. Loading a script from Google’s CDN exposes the visitor’s IP address and user agent to Google, as any externally hosted asset does. No other data is sent, and the plugin sends nothing to this service itself.
Google Hosted Libraries terms: https://developers.google.com/terms
Google privacy policy: https://policies.google.com/privacy
If another plugin has already registered the psv-ar-model-viewer script handle, this plugin defers to it and makes no request of its own.
Freemius
Licensing, updates and the optional usage-data opt-in are handled by Freemius. Nothing is sent unless you opt in during activation. Terms: https://freemius.com/terms/ — Privacy: https://freemius.com/privacy/