Dash Pannellum 0.4.0 — 360° panoramas, virtual tours & video, revived for Dash 4.2+

Hi all,

I’ve revived and substantially rebuilt Dash Pannellum, a Dash component for interactive 360° content — equirectangular panoramas, multi-scene virtual tours,
gigapixel multi-resolution tiles, and 360° video — built on the plugin-free Pannellum WebGL viewer.

The original component (0.0.6) was from the Dash 1/2 era and had gone stale. Versions 0.1.0 → 0.4.0 bring it onto the modern stack and, more importantly, add a
real-time imperative API so the camera and the scene can be driven from callbacks without tearing down and rebuilding the viewer.

Install
pip install dash-pannellum>=0.4.0 # requires dash>=4.2.0

Minimal example — pass exactly one of tour, multiRes, or video; the viewer reports pitch, yaw, currentScene, loaded and lastClickedHotspot back as callback
inputs.

What’s new since 0.0.6

  • Dash 4.2+ / React 18 rebuild, pyproject.toml packaging, webpack 5.
  • Live config props — change tour/multiRes/video/compass/… from a callback and the viewer re-initializes instead of silently breaking.
  • Imperative camera (lookAt) — pan/zoom the live viewer with no rebuild; loadScene switches tour scenes the same way.
  • Live callbackHotspots — per-name diff; position-only changes move the DOM node in place, so markers animate in real time.
  • Dynamic canvas scenes — point a scene at a and redraw to update the texture in place (no flash).
  • Gyroscope look-around (0.4.0) — orientation prop with iOS-permission handling.
  • Plus scene preloading, deduplicated CDN loading, coherent customControls, throttled view-state callbacks.

Github Repo -