Drop your equirectangular .jpg / .png / .webp into the viewer below — runs entirely in your browser. Nothing is uploaded.
No upload, no plugin, no signup — Photo Sphere Viewer running entirely in your browser.
Your files never leave the browser. The viewer creates a local Blob URL and renders the sphere entirely on your device. Close the tab and the file is gone — no server ever sees it.
Works with standard 2:1 equirectangular panoramas from cameras like Ricoh Theta and Insta360, as well as AI-generated outputs. Don't have one yet? Generate one from a prompt.
Built on Photo Sphere Viewer and Three.js — the same stack used by professional 360° publishing tools. Accurate sphere mapping, pole correction rendering, and smooth WebGL performance.
Click and drag to look around in any direction. Scroll to zoom in or out. Press F to enter fullscreen for an immersive view. Keyboard arrow keys also work for precise navigation.
Open the viewer on a phone or tablet, then drag with your finger to inspect the sphere. It works in modern mobile browsers without an app install. Convert a photo to 360° if your image isn't equirectangular yet.
The viewer is and always will be free — no credits, no account, no watermarks. Want to create panoramas from text or photos instead of just viewing them? Check out the AI panorama generator or photo-to-360 converter.
Three ways to look at a 360° image. When to use which.
This viewer is for quick local previews — you have an equirectangular file, you want to look around in seconds, no install, no upload, complete privacy. Pannellum is a self-hosted JavaScript library for developers who want to embed an interactive viewer inside their own webpage, add hotspots, and customize the UI. Google Street View requires uploading your image to Google's servers and linking it to GPS coordinates. For privacy-first, one-shot viewing where your file never leaves your device: use this tool.
Drag-to-pan, embed, and WebXR — runs in every modern browser.



Four steps from drag-and-drop to full sphere view.
Drag a 2:1 .jpg, .png, or .webp into the viewer above. The file stays in your browser — nothing is uploaded to any server.
Pan in any direction by clicking and dragging. Scroll to zoom in or out. Press F for fullscreen mode for a fully immersive view.
If the image looks severely warped at the top or bottom, it may not be a true equirectangular. Convert it first with Photo to 360° to fix pole distortion.
Need a hosted version with a public shareable link? Generate a fresh panorama with the AI generator — every result gets a public gallery page you can share.
Want to create 360° panoramas, not just view them? Start from a prompt, convert a photo, or export an HDRI environment map.
An equirectangular image is a panoramic photo or rendering stored in a 2:1 aspect ratio (e.g., 4096×2048 pixels) where latitude and longitude map linearly to the image's y and x axes. It's the standard format for 360° panoramas — cameras like Ricoh Theta and Insta360 output it natively, and most AI panorama generators produce it as well. When mapped onto a sphere, it creates a seamless 360° environment. For an in-depth explainer of the format, see What is an equirectangular image?.
Your image is likely not in true equirectangular projection. Common culprits: the image has a non-2:1 aspect ratio, it was shot with a fisheye or cylindrical projection, or the poles weren't corrected. Use the Photo to 360° converter — it detects the projection and outputs a properly formatted equirectangular file.
No. The viewer is fully client-side. When you drag a file in, the browser creates a local Blob URL in memory and passes it directly to the Three.js renderer. Nothing leaves your device. Closing the tab discards the blob entirely. There is no server receiving your image — not even for analytics.
Yes — the 360 panorama viewer works in modern mobile browsers. Drag with your finger to look around, pinch or use browser gestures to zoom where supported, and use fullscreen when the browser exposes it.
The 360 panorama viewer accepts .jpg, .jpeg, .png, and .webp files. Files above ~50 MB may slow down the in-browser renderer on lower-end devices. The recommended sweet spot is a 4096×2048 .jpg (usually 5–15 MB). PNG files at the same resolution can reach 30 MB — still workable, but slower to parse.
This page is the viewer only — it lets you look at images you already have. To create a new 360° panorama from a text prompt, go to the AI text-to-panorama generator. To convert a regular photo into a 360° equirectangular image, use the Photo to 360° converter.
Photo Sphere Viewer (PSV) is an open-source JavaScript library built on Three.js that renders equirectangular images as interactive spheres in the browser. It's the engine powering this 360 panorama viewer — handling sphere geometry, camera controls, zoom, fullscreen, and smooth WebGL rendering.
Yes — this is one of the most common use cases for the 360 panorama viewer. After generating a panorama with the AI generator, download the equirectangular file and drag it in here to inspect pole quality, seam alignment, and overall spherical coherence before publishing or embedding it anywhere.
A 360° panorama viewer wraps a 2:1 equirectangular image around a virtual sphere and lets you look in any direction. Without it, the panorama is just a stretched-looking horizontal image — the projection only makes sense once it's mapped onto a sphere. This viewer accepts the common single-file equirectangular format used by most 360° cameras and AI panorama generators.
| Format | Recommended max size | Typical source |
|---|---|---|
| .jpg / .jpeg | 4096×2048, ~10MB | Most cameras + AI generators |
| .png | 4096×2048, ~30MB | Lossless masters; AI tools that emit alpha |
| .webp | 4096×2048, ~5MB | Modern web compression; smaller files |
Files above 50 MB are rejected by the uploader to keep the in-browser viewer responsive. The full image stays on your device — nothing is uploaded to a server.
Browsers can show the image, but they don't know it's a spherical projection. You see a flat, distorted strip with a stretched sky and floor. A viewer (this one runs Photo Sphere Viewer on top of Three.js) wraps the texture around a sphere mesh, projects it through a perspective camera, and lets you drag, zoom, and fullscreen the panorama naturally.
Pannellum and Marzipano are open-source JavaScript libraries designed for self-hosted embedding: you include a script tag, point it at a hosted image URL, and the viewer renders inside your own page — you control the markup, hotspots, and styling. This requires a server to host the image and a deployment to serve the script. Marzipano is similar but adds tiled multiresolution support for very large panoramas. This web app, by contrast, is a zero-install viewer for one-shot local inspection: no server, no deployment, no image hosting. The file never leaves the device. If your goal is to build a 360° viewer into your own website or app, Pannellum or Marzipano (or Photo Sphere Viewer, which powers this tool) are the right choice. If your goal is to quickly check whether a panorama file looks correct before uploading it anywhere, this tool is faster.
We make those too. Generate one from a text prompt, or convert a single photo into a fully spherical 360° image. For 3D rendering pipelines, the AI HDRI Generator exports a Radiance .hdr file ready for Blender, Unreal, or Unity.
It isn't. The uploader creates a local browser blob URL and feeds it to the sphere shader. Closing the tab discards the blob. The file never leaves your device.
Not from this viewer. To get a shareable public URL, generate the panorama with our AI tool — every successful generation has a Share button that creates a short link.
2048×1024 loads fast and looks great on a phone or laptop. 4096×2048 is the sweet spot for desktop monitors and VR headsets. Going beyond 8K rarely pays off — Three.js textures cap at 8192 on most GPUs.
Either the source image isn't a true 2:1 equirectangular (the viewer assumes 2:1), or the AI generator didn't apply pole correction. Try the converter — it does pole-fix automatically.
Not yet — embed support is on the roadmap. For now, see Pannellum (opens in new tab) for an open-source library you can drop into your page.