About 360 Panorama Viewer & Open Source
360 Panorama Viewer is an interactive web platform built for inspecting, converting, and creating 2:1 equirectangular panoramas, cubemaps, and virtual environments using client-side WebGL and Three.js.
Open Source Repository
The core viewer and conversion tools are open-source software. You can inspect the source code, report issues, or contribute improvements directly on GitHub:
github.com/hanshan0228/360-panorama-viewer
Explore specialized tools and documentation available on 360 Panorama Viewer:
- Home — Interactive 360° panorama studio and WebGL workspace.
- 360° Panorama Viewer — Free online WebGL viewer with spherical orientation and cardboard VR support.
- Cubemap Generator — Slice 2:1 equirectangular panoramas into 6 cube faces (+X, -X, +Y, -Y, +Z, -Z).
- Skybox Generator — Panoramic skybox environments for Unity, Unreal Engine, and Three.js.
- Developer Docs — Embed codes, iframe integrations, and REST API documentation.
Browser-Local Capabilities & Privacy Boundaries
We believe in user privacy and client-side efficiency. Most conversion and inspection tasks execute entirely in your browser without data leaving your machine:
- Local Processing: The local browser WebGL 360° equirectangular viewer, cubemap face slicer (256, 512, or 1024 px 8-bit PNG faces), 3D globe projection, HDRI viewer, and XMP metadata injector run locally in the browser with no file upload required.
- Client Memory Isolation: Your local images and metadata tags are loaded into browser memory for GPU rendering via Three.js canvas contexts and are never transmitted to our servers or stored in remote databases.
Server-Side AI Generation & HDR Formats
Generative studio capabilities operate through cloud APIs and follow transparent service boundaries:
- AI Generation Pipeline: Optional AI panorama generation uses account credits and server-side model APIs to generate seamless 2:1 panoramic images from user prompts and reference photos.
- Radiance .HDR Container: Radiance
.hdrexport wraps image data in an HDR container and does not reconstruct captured scene dynamic range. It formats RGBE byte data into a valid.hdrcontainer required by game engines and DCC tools.