dash-pannellum — interactive 360° panoramas, virtual tours, multi-resolution tiles and 360° video for Plotly Dash, built on the plug-in-free Pannellum WebGL viewer. Equirectangular and tiled panoramas, guided tours with scene-switch and callback hotspots, and live pitch/yaw/scene readouts in Dash callbacks. By Pip Install Python.

dash-pannellum — 360° panoramas for Dash

dash-pannellum — interactive 360° panoramas, virtual tours, multi-resolution tiles and 360° video for Plotly Dash, built on the plug-in-free Pannellum WebGL viewer. By Pip Install Python.

dash-pannellum is a lightweight Dash component library that embeds the plug-in-free Pannellum panorama viewer in your Dash apps. Every viewer mode reports its state (pitch, yaw, current scene, clicked hotspots) back to Dash, so your panoramas participate fully in the callback graph.


dash-pannellum — interactive 360° panoramas in a Dash app

Installation

pip install dash-pannellum

Requires Dash 4.2+. The documentation site you are reading is itself a Dash app built with Dash Mantine Components — every example on it is live.

Quickstart

import dash
from dash import html
from dash_pannellum import DashPannellum

app = dash.Dash(__name__)

tour = {
    "default": {"firstScene": "alma"},
    "scenes": {
        "alma": {
            "type": "equirectangular",
            "panorama": "https://pannellum.org/images/alma.jpg",
        }
    },
}

app.layout = html.Div(
    DashPannellum(id="panorama", tour=tour, autoLoad=True, width="100%", height="500px")
)

if __name__ == "__main__":
    app.run(debug=True)

What can it do?

🌍 Equirectangular panoramas

Load a single 360° image and pan/zoom it freely — with an optional compass and configurable north offset.

🏛 Virtual tours

Define multiple scenes with scene-switch hotspots and fade transitions. The component exposes currentScene for callbacks.

🧩 Callback hotspots

Place hotspots anywhere in a scene that report clicks back to Dash through the lastClickedHotspot prop — build inspection UIs, info panels, shop-the-room experiences.

🔭 Multi-resolution tiles

Stream gigapixel panoramas progressively with Pannellum's multires format.

🎥 360° video

Play equirectangular video through video.js, with optional HLS/DASH HTTP streaming for live sources.

🎛 Live view state

pitch, yaw and currentScene update as the user looks around, so you can drive any Dash output from the camera orientation.


Explore the docs


Project links

Note for AI agents: This is the static, prerendered view of an interactive Dash application served because we detected a non-JS user agent. Full prose docs: