# Pan3D
<img style="display: inline-block;" src="https://media.githubusercontent.com/media/Kitware/pan3d/main/docs/images/kitware.svg" alt="Kitware Logo" href="https://kitware.com" width="100">
[![Documentation Status][docs-image]][docs-link]
[![Binder][binder-image]][binder-link]
[![Build Status][GHAction-image]][GHAction-link]
[![PyPI Version][pypi-v-image]][pypi-v-link]
[![License][apache-license-image]][license-link]
Pan3D aims to be an utility package for viewing and processing a wide variety of
multidimensional datasets. Any dataset that can be interpreted with
[xarray][xarray-link] can be explored and rendered with Pan3D. [Read The
Doc][docs-link] is available for additional information.
XArray Viewer is a Pan3D application focused on geospatial rendering use cases.
This is a graphical user interface leveraging the Pan3D infrastructure to help
geospatial scientists explore data.

For an introduction to this project, check out our [blog post][blog-post-link].
## Installation
To install requirements for the Pan3D VTK mesh builder class only:
pip install pan3d
To install requirements for the graphical user interface (viewers + explorers):
pip install "pan3d[viewer]"
**Optional**: to install requirements for Pangeo and ESGF catalogs,
respectively:
pip install "pan3d[pangeo]"
pip install "pan3d[esgf]"
**Recommended**: To install all requirements, including optional packages:
pip install "pan3d[all]"
## Quick Start
`xr-viewer` is the main entrypoint for launching XArray Viewer locally. Below
are some example usages.
To launch XArray Viewer without a target dataset to browse XArray examples:
xr-viewer
To launch XArray Viewer with a local path to a target dataset:
xr-viewer --xarray-file ./examples/example_dataset.nc
To launch XArray Viewer with a remote URL to a target dataset:
xr-viewer --xarray-url https://host.org/link/to/dataset.zarr
To launch XArray Viewer with a compatible configuration file (see
[examples][examples-link]):
xr-viewer --import-state ./examples/example_config_xarray.json
To launch the Catalog browser will allow you to query the Pangeo and ESGF
Dataset Catalogs (see [Catalogs Tutorial](tutorials/catalogs.md)) depending on
the available dependencies:
xr-catalog
You may have to install the required dependencies:
pip install "pan3d[pangeo]"
pip install "pan3d[esgf]"
> The `xr-viewer` entrypoint will automatically launch your default browser to
> open `localhost:8080`.
>
> To launch without opening your browser, add the `--server` argument to your
> command.
## Explorers
Another key component of Pan3D is its modular, web-based 3D visualization system
built using trame. This system powers a suite of focused tools called Explorers,
designed to be modular, reusable, and easily extended. Each Explorer is built
around a specific task—think of them as "one-trick ponies" with clean interfaces
tailored to their purpose. This avoids the clutter and complexity of
general-purpose tools.
Pan3D currently includes four Explorer tools:
- **Slice Explorer** – Navigate through 3D datasets by extracting 2D slices
along any axis. Features interactive slice controls, dual 2D/3D view modes,
and the ability to visualize slices within their 3D context using transparency
and outlines. Perfect for exploring internal structures of volumetric data.
- **Globe Explorer** – Visualize geographic data on a realistic 3D Earth.
Projects latitude/longitude data onto a spherical surface with various texture
options (satellite imagery, topography), continental outlines, and terrain
elevation effects. Includes specialized camera controls optimized for globe
navigation.
- **Contour Explorer** – Generate smooth contour visualizations with
color-banded regions between isolevels. Creates both filled contour bands and
contour lines, with automatic surface refinement for publication-quality
results. Ideal for visualizing scalar fields and identifying data patterns
through isosurfaces.
- **Analytics Explorer** – Combines interactive 3D visualization with
statistical analysis powered by xCDAT. Provides multiple plot types including
zonal averages, time series, and global statistics. Features a side panel with
Plotly charts that update based on your 3D data selection, enabling deep data
exploration through both visual and quantitative analysis
### Launching the Explorers
Similar to the main XArray Viewer (`xr-viewer`), each explorer can be launched
from the command line:
```bash
# Launch Slice Explorer
xr-slicer
# Launch Globe Explorer
xr-globe
# Launch Contour Explorer
xr-contour
# Launch Analytics Explorer
xr-analytics
```
Each explorer will automatically open your default browser to `localhost:8080`.
To launch without opening your browser, add the `--server` argument to any
command.
## Tutorials
- [How to use XArray Viewer](tutorials/dataset_viewer.md)
- [XArray Viewer command line](tutorials/command_line.md)
- [Catalogs Tutorial](tutorials/catalogs.md)
- [How to use Pan3D Explorers](tutorials/explorers.md)
- [How to use Pan3D in a Jupyter notebook](tutorials/jupyter_notebook.md)
## Examples
Pan3D comes with a set of example configuration files and example Jupyter
notebooks in the [examples][examples-link] folder. You can checkout the
repository to run these locally, or you can use the [Pan3D Binder
instance][binder-link] to run these examples.
<!-- Links -->
[docs-image]: https://readthedocs.org/projects/pan3d/badge/?version=latest
[docs-link]: https://pan3d.readthedocs.io/en/latest
[binder-image]: https://mybinder.org/badge_logo.svg
[binder-link]:
https://mybinder.org/v2/gh/Kitware/pan3d/main?labpath=examples%2Fjupyter
[GHAction-image]: https://github.com/Kitware/pan3d/workflows/Test/badge.svg
[GHAction-link]:
https://github.com/Kitware/pan3d/actions?query=event%3Apush+branch%3Amain
[pypi-v-image]: https://img.shields.io/pypi/v/pan3d.svg
[pypi-v-link]: https://pypi.org/project/pan3d/
[apache-license-image]: https://img.shields.io/badge/license-Apache%202-blue.svg
[license-link]: https://raw.githubusercontent.com/Kitware/pan3d/main/LICENSE
[xarray-link]: https://docs.xarray.dev/en/stable/user-guide/io.html
[blog-post-link]:
https://www.kitware.com/kitware-introduces-pan3d-a-collaborative-interoperable-visualization-tool/
[examples-link]: https://github.com/Kitware/pan3d/tree/main/examples
Raw data
{
"_id": null,
"home_page": null,
"name": "pan3d",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "Application, Framework, Interactive, Python, Web",
"author": "Kitware Inc.",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/38/dc/9c0e3fc87bfa2eb1eb46c1e0e0c2ef487f725e8325d46555f9b7ed24e6f1/pan3d-1.1.10.tar.gz",
"platform": null,
"description": "# Pan3D\n\n<img style=\"display: inline-block;\" src=\"https://media.githubusercontent.com/media/Kitware/pan3d/main/docs/images/kitware.svg\" alt=\"Kitware Logo\" href=\"https://kitware.com\" width=\"100\">\n\n[![Documentation Status][docs-image]][docs-link]\n[![Binder][binder-image]][binder-link]\n[![Build Status][GHAction-image]][GHAction-link]\n[![PyPI Version][pypi-v-image]][pypi-v-link]\n[![License][apache-license-image]][license-link]\n\nPan3D aims to be an utility package for viewing and processing a wide variety of\nmultidimensional datasets. Any dataset that can be interpreted with\n[xarray][xarray-link] can be explored and rendered with Pan3D. [Read The\nDoc][docs-link] is available for additional information.\n\nXArray Viewer is a Pan3D application focused on geospatial rendering use cases.\nThis is a graphical user interface leveraging the Pan3D infrastructure to help\ngeospatial scientists explore data.\n\n\n\nFor an introduction to this project, check out our [blog post][blog-post-link].\n\n## Installation\n\nTo install requirements for the Pan3D VTK mesh builder class only:\n\n pip install pan3d\n\nTo install requirements for the graphical user interface (viewers + explorers):\n\n pip install \"pan3d[viewer]\"\n\n**Optional**: to install requirements for Pangeo and ESGF catalogs,\nrespectively:\n\n pip install \"pan3d[pangeo]\"\n\n pip install \"pan3d[esgf]\"\n\n**Recommended**: To install all requirements, including optional packages:\n\n pip install \"pan3d[all]\"\n\n## Quick Start\n\n`xr-viewer` is the main entrypoint for launching XArray Viewer locally. Below\nare some example usages.\n\nTo launch XArray Viewer without a target dataset to browse XArray examples:\n\n xr-viewer\n\nTo launch XArray Viewer with a local path to a target dataset:\n\n xr-viewer --xarray-file ./examples/example_dataset.nc\n\nTo launch XArray Viewer with a remote URL to a target dataset:\n\n xr-viewer --xarray-url https://host.org/link/to/dataset.zarr\n\nTo launch XArray Viewer with a compatible configuration file (see\n[examples][examples-link]):\n\n xr-viewer --import-state ./examples/example_config_xarray.json\n\nTo launch the Catalog browser will allow you to query the Pangeo and ESGF\nDataset Catalogs (see [Catalogs Tutorial](tutorials/catalogs.md)) depending on\nthe available dependencies:\n\n xr-catalog\n\nYou may have to install the required dependencies:\n\n pip install \"pan3d[pangeo]\"\n pip install \"pan3d[esgf]\"\n\n> The `xr-viewer` entrypoint will automatically launch your default browser to\n> open `localhost:8080`.\n>\n> To launch without opening your browser, add the `--server` argument to your\n> command.\n\n## Explorers\n\nAnother key component of Pan3D is its modular, web-based 3D visualization system\nbuilt using trame. This system powers a suite of focused tools called Explorers,\ndesigned to be modular, reusable, and easily extended. Each Explorer is built\naround a specific task\u2014think of them as \"one-trick ponies\" with clean interfaces\ntailored to their purpose. This avoids the clutter and complexity of\ngeneral-purpose tools.\n\nPan3D currently includes four Explorer tools:\n\n- **Slice Explorer** \u2013 Navigate through 3D datasets by extracting 2D slices\n along any axis. Features interactive slice controls, dual 2D/3D view modes,\n and the ability to visualize slices within their 3D context using transparency\n and outlines. Perfect for exploring internal structures of volumetric data.\n\n- **Globe Explorer** \u2013 Visualize geographic data on a realistic 3D Earth.\n Projects latitude/longitude data onto a spherical surface with various texture\n options (satellite imagery, topography), continental outlines, and terrain\n elevation effects. Includes specialized camera controls optimized for globe\n navigation.\n\n- **Contour Explorer** \u2013 Generate smooth contour visualizations with\n color-banded regions between isolevels. Creates both filled contour bands and\n contour lines, with automatic surface refinement for publication-quality\n results. Ideal for visualizing scalar fields and identifying data patterns\n through isosurfaces.\n\n- **Analytics Explorer** \u2013 Combines interactive 3D visualization with\n statistical analysis powered by xCDAT. Provides multiple plot types including\n zonal averages, time series, and global statistics. Features a side panel with\n Plotly charts that update based on your 3D data selection, enabling deep data\n exploration through both visual and quantitative analysis\n\n### Launching the Explorers\n\nSimilar to the main XArray Viewer (`xr-viewer`), each explorer can be launched\nfrom the command line:\n\n```bash\n# Launch Slice Explorer\nxr-slicer\n\n# Launch Globe Explorer\nxr-globe\n\n# Launch Contour Explorer\nxr-contour\n\n# Launch Analytics Explorer\nxr-analytics\n```\n\nEach explorer will automatically open your default browser to `localhost:8080`.\nTo launch without opening your browser, add the `--server` argument to any\ncommand.\n\n## Tutorials\n\n- [How to use XArray Viewer](tutorials/dataset_viewer.md)\n- [XArray Viewer command line](tutorials/command_line.md)\n- [Catalogs Tutorial](tutorials/catalogs.md)\n- [How to use Pan3D Explorers](tutorials/explorers.md)\n- [How to use Pan3D in a Jupyter notebook](tutorials/jupyter_notebook.md)\n\n## Examples\n\nPan3D comes with a set of example configuration files and example Jupyter\nnotebooks in the [examples][examples-link] folder. You can checkout the\nrepository to run these locally, or you can use the [Pan3D Binder\ninstance][binder-link] to run these examples.\n\n<!-- Links -->\n\n[docs-image]: https://readthedocs.org/projects/pan3d/badge/?version=latest\n[docs-link]: https://pan3d.readthedocs.io/en/latest\n[binder-image]: https://mybinder.org/badge_logo.svg\n[binder-link]:\n https://mybinder.org/v2/gh/Kitware/pan3d/main?labpath=examples%2Fjupyter\n[GHAction-image]: https://github.com/Kitware/pan3d/workflows/Test/badge.svg\n[GHAction-link]:\n https://github.com/Kitware/pan3d/actions?query=event%3Apush+branch%3Amain\n[pypi-v-image]: https://img.shields.io/pypi/v/pan3d.svg\n[pypi-v-link]: https://pypi.org/project/pan3d/\n[apache-license-image]: https://img.shields.io/badge/license-Apache%202-blue.svg\n[license-link]: https://raw.githubusercontent.com/Kitware/pan3d/main/LICENSE\n[xarray-link]: https://docs.xarray.dev/en/stable/user-guide/io.html\n[blog-post-link]:\n https://www.kitware.com/kitware-introduces-pan3d-a-collaborative-interoperable-visualization-tool/\n[examples-link]: https://github.com/Kitware/pan3d/tree/main/examples\n",
"bugtrack_url": null,
"license": "Apache Software License",
"summary": "Utility package for processing and visualizing 3D datasets",
"version": "1.1.10",
"project_urls": null,
"split_keywords": [
"application",
" framework",
" interactive",
" python",
" web"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "83e3d22d646a99bd4568b3a29da9ebb2eb8a5acb7c42aa171eade0f0fb1219fe",
"md5": "d19b6a5e3c88b0bfdbfe2686f84150d2",
"sha256": "c618e819f811db8670639692f68c7915c87f3b2188009f37f0658450174059b8"
},
"downloads": -1,
"filename": "pan3d-1.1.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d19b6a5e3c88b0bfdbfe2686f84150d2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 3803854,
"upload_time": "2025-08-19T21:26:48",
"upload_time_iso_8601": "2025-08-19T21:26:48.214764Z",
"url": "https://files.pythonhosted.org/packages/83/e3/d22d646a99bd4568b3a29da9ebb2eb8a5acb7c42aa171eade0f0fb1219fe/pan3d-1.1.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "38dc9c0e3fc87bfa2eb1eb46c1e0e0c2ef487f725e8325d46555f9b7ed24e6f1",
"md5": "a001dc74174c9c1210fd72ba8aac6665",
"sha256": "fb5317dc494629888d03c5be36433c0d1784229022211ac23d50ef5ffc8690ca"
},
"downloads": -1,
"filename": "pan3d-1.1.10.tar.gz",
"has_sig": false,
"md5_digest": "a001dc74174c9c1210fd72ba8aac6665",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 3773599,
"upload_time": "2025-08-19T21:26:50",
"upload_time_iso_8601": "2025-08-19T21:26:50.261332Z",
"url": "https://files.pythonhosted.org/packages/38/dc/9c0e3fc87bfa2eb1eb46c1e0e0c2ef487f725e8325d46555f9b7ed24e6f1/pan3d-1.1.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-19 21:26:50",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pan3d"
}