PanorAi
Convention-safe projection and computer vision for central spherical images.
PanorAi connects equirectangular panoramas (ERPs), local perspective views, unit rays, features, camera poses, and 3D structure without hiding coordinate, sampling, validity, or scale conventions. Use it as a geometry layer around existing planar models, or use its sphere-native image-processing and geometry algorithms when projection would be the wrong abstraction.
Install
pip install panorai
PanorAi supports Python 3.11–3.14 and OpenCV >=4.9,<5. Install only the
integrations you need:
pip install "panorai[torch]" # Torch sampling and tensor workflows
pip install "panorai[pycolmap]" # COLMAP database/reconstruction bridge
pip install "panorai[slam]" # SLAM dependencies
pip install "panorai[pcd]" # point-cloud I/O
Stable 3.x contracts center on panorai.geometry, modality-aware objects,
sampling, blending, and the face-based feature core. Sphere-native image
processing, spherical DoG, relative pose, dense stereo, native multiview, and
SLAM are public but Experimental; their result models expose diagnostics so
callers can reject unreliable outputs.
Choose a route
| Goal | Route | Start here |
|---|---|---|
| Convert ERP pixels, tangent views, cubemaps, and rays | projection | Projection foundations |
| Filter directly on the sphere or through projected views | image processing | Spherical image processing |
| Detect and match SIFT, ORB, or AKAZE features | features | Features and matching |
| Estimate relative rotation and translation direction | two-view geometry | Two-view geometry |
| Estimate dense radial range from a posed pair | dense stereo | Spherical dense stereo |
| Reconstruct cameras and sparse points from 3+ panoramas | multiview | Multiview reconstruction |
| Track a sequence and maintain a local map | SLAM | Spherical visual SLAM |
| Reproduce speed and accuracy evidence | benchmarks | Benchmarks and performance |
1. Projection
An ERP pixel is a sample of a ray, not a point on a flat image plane. PanorAi
uses one explicit right-handed frame (+X right, +Y up, +Z front) and
pixel-center convention across:
- ERP pixel ↔ longitude/latitude ↔ unit ray;
- sphere ↔ one gnomonic view with explicit center, FOV, roll, and resolution;
- ERP ↔ six-face cubemap or arbitrary-N overlapping face sets;
- nearest and bilinear sampling with seam wrapping and declared pole rules;
- overwrite, average, feather, Gaussian, and multiband blending;
- separate geometric support, source-data validity, and interpolation weight.
import numpy as np
from panorai.geometry import GnomonicProjector, GnomonicSpec
erp = np.zeros((512, 1024, 3), dtype=np.float32)
spec = GnomonicSpec(
center_lat_deg=10,
center_lon_deg=30,
hfov_deg=90,
vfov_deg=70,
output_shape_hw=(256, 320),
)
projector = GnomonicProjector(spec, interpolation="bilinear")
view = projector.project(erp)
restored = projector.back_project(view, output_shape_hw=erp.shape[:2])
assert view.data.shape == (256, 320, 3)
assert restored.support_mask.shape == erp.shape[:2]
RGB, range, labels, and masks can share the same geometric grid while choosing the interpolation and invalid-data rule appropriate to each modality. Zero is data; it is never an implicit invalid marker.
Read: projection tutorial, custom projection pipeline, and the exact geometry v1 contract.
2. Image Processing
PanorAi exposes two intentionally different routes:
sphere-native: ERP ── spherical neighbourhood/filter ──► ERP
multiface: ERP ── project ──► tangent faces ── planar operation ──►
faces ── back-project + blend ──► ERP
| Property | Direct spherical route | Forward/backward multiface route |
|---|---|---|
| neighbourhood | constant-angle tangent neighbourhood on the sphere | rectangular neighbourhood inside each projected face |
| seams and poles | handled by spherical sampling | handled through overlap plus blending |
| operation | spherical Gaussian/custom convolution, Sobel, Scharr, median, Canny, pyramids | any caller-owned planar operator or model through process_views |
| reconstruction | none | required, including a declared blender |
| best fit | filters whose geometry should remain spherical | established planar algorithms and neural networks |
The public APIs make that choice visible rather than implicit:
direct = spherical_gaussian_blur(erp, ksize=5, sigma=1.2, backend="auto")
multiface = EquirectangularImage(erp).process_views(
lambda view: cv2.GaussianBlur(view, (5, 5), 1.2),
layout="cube", size=256, fov=95, blend="gaussian",
)
On the bundled CC0 panorama resized to 512×1024, a 5×5 Gaussian
(sigma=1.2) took 7.99 ms after warm-up through the direct native route
and 104.25 ms through six 256² cube faces, OpenCV filtering,
back-projection, and Gaussian blending. In a fixed 37° yaw-equivariance probe,
MAE was 0.00113 and 0.00328, respectively. These routes are not
bit-identical operators; see the full protocol and limitations
and reproduce it with scripts/benchmark_image_processing_routes.py.
Histogram equalization and CLAHE
spherical_equalize_histogram is a first-party global equalizer. Its optional
solid-angle weighting avoids over-counting the densely sampled polar rows of an
ERP. PanorAi does not currently claim a sphere-native CLAHE implementation.
You can apply OpenCV CLAHE to projected views through process_views, but the
result depends on the face layout, FOV, overlap, and blender and is not
equivalent to geodesic contextual equalization. A future spherical CLAHE needs
seam- and pole-safe contextual regions, reproducible interpolation between
regions, and evaluation on downstream feature/pose quality—not only visual
contrast.
Read: image-processing tutorial and projection workflow how-to.
3. Detection and Feature Extraction
PanorAi separates where a keypoint is detected from how its local appearance is described.
| Frontend | Detection | Description | Status |
|---|---|---|---|
| overlapping faces | OpenCV SIFT, ORB, or AKAZE on gnomonic faces | same OpenCV backend | Stable core |
| spherical DoG | Gaussian/DoG extrema directly on the sphere | one oriented tangent patch per accepted keypoint, then OpenCV SIFT/ORB/AKAZE | Experimental |
| coarse-to-fine spherical DoG | low-resolution proposals followed by full-resolution localization | descriptor-neutral tangent-patch adapter | Experimental |
For relative pose, SphericalFeaturePipeline.for_relative_pose() remains the
canonical validated default. Direct spherical DoG is an explicit opt-in while
its public-dataset detection, matching, and pose evaluation is completed.
The spherical detector avoids duplicate detections created by overlapping full faces and carries position, unit bearing, angular scale, response, octave, level, and localization validity. It refines discrete DoG extrema in position and scale using the second-order Taylor/Hessian step, rejects low-contrast and edge-like responses, assigns one or more tangent orientations, and only then materializes descriptor patches.
The contracts are deliberately descriptor-neutral:
panorai-tangent-patches/v1declares bearing/scale, angular context, projection, resolution, mask, and orientation;panorai-tangent-opencv-descriptor/v2adapts the same geometric patch contract to SIFT, ORB, or AKAZE without making the detector “a SIFT detector.”
First-party C++ kernels accelerate compatible spherical convolutions and fuse the 3D tangent-neighbour extrema search without materializing a large neighbour tensor. OpenCV's own C++ implementations still own descriptor semantics and BF/FLANN distance search. The NumPy paths remain references for parity tests; native acceleration does not change the spherical geometry.
Read: features and matching, spherical feature how-to, and feature API.
4. Two-View Geometry
PanorAi can estimate a relative pose directly from matched unit bearings—no COLMAP process is involved:
ERP pair → features → descriptor matches → bearing pairs
→ 5-point Essential hypotheses → spherical MSAC/refit
→ cheirality + degeneracy/quality gates → R₂₁, direction(t₂₁)
The estimator scores tangent-Sampson residuals on the sphere, evaluates the
four Essential decompositions, selects translation orientation using
cheirality/parallax evidence, optionally refines rotation and translation
direction, and reports rejection reasons. A returned hypothesis is not
automatically a trustworthy pose: consume quality_report.accepted.
Monocular two-view geometry recovers the direction of translation, not its metric magnitude. Metric scale needs an external premise such as a known baseline, calibrated rig, depth, or a justified scene constraint.
Read: two-view geometry and the public-dataset benchmark.
5. Stereo Dense Reconstruction
Given two aligned central ERPs and a known metric relative pose, the Experimental stereo route searches inverse radial range directly along spherical epipolar geometry. It uses angular appearance support, optional coarse-to-fine search, cost aggregation, sub-hypothesis refinement, and bidirectional consistency.
The result keeps radial range, confidence, validity, selected cost, and
consistency diagnostics separate. The supplied R,t is never silently
re-estimated. If t has arbitrary unit length, the reconstructed range has the
same arbitrary scale.
Read: dense-stereo tutorial, algorithm derivation, and current evidence.
6. Multi-View Geometry
For three or more panoramas, PanorAi offers two routes:
| Route | PanorAi owns | External owner |
|---|---|---|
native SphericalGlobalMapper |
quality-gated pose graph, bearing tracks, rotation/position initialization, triangulation, spherical bundle adjustment, diagnostics | none for geometry |
| PyCOLMAP/COLMAP bridge | virtual-camera geometry, IDs, observations, and database/export contract | PyCOLMAP/COLMAP mapping and optimization |
The native mapper optimizes angular tangent residuals without reconstructing ERP pixels during bundle adjustment. Its map is arbitrary-scale unless a metric prior is supplied. The PyCOLMAP route is useful when COLMAP interoperability is more important than keeping spherical equations first-party; it is an alternative pipeline, not a hidden dependency of the native mapper.
Read: multiview reconstruction and public-dataset benchmark.
Other essential capabilities
The six sections above cover the offline core. Two additional areas should not be forgotten:
- Visual SLAM: incremental ERP or calibrated fisheye tracking, keyframes, local mapping, relocalization, and loop correction. Start with the SLAM tutorial.
- Contracts and reproducibility: coordinate frames, units, pixel centers, interpolation, invalid-data rules, resolved configuration, provenance, and quality gates are part of the result—not incidental metadata. Read the geometry contract, stability tiers, and benchmark policy.
Evidence and project boundaries
The benchmarks and performance page separates microbenchmarks from end-to-end accuracy, reports Matterport3D and Stanford2D3D independently, and distinguishes accepted-result precision from coverage. Dataset licenses apply; PanorAi does not redistribute those datasets.
PanorAi owns spherical coordinates, projection, masks, provenance, spherical image-processing kernels, bearing geometry, and its native estimators. OpenCV owns SIFT/ORB/AKAZE descriptors and standard matchers; optional PyCOLMAP/COLMAP owns its downstream reconstruction route. See the capability map for the complete sphere-native, projection-domain, and hybrid boundary.
Reference
PanorAi's distributed source is MIT licensed. Optional upstream projects, models, and datasets retain their own terms.
Metadata
Release files for panorai 3.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| panorai-3.5.0.tar.gz | 2.6 MB | With provenance | Details for panorai-3.5.0.tar.gz |
Built distributions (wheels)
Total release size: 13.0 MB
Release files / panorai-3.5.0.tar.gz
| Download URL | panorai-3.5.0.tar.gz |
|---|---|
| Size | 2.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3554cd5bde42814447440def5b57eb41a08943ecbc6db9c26bb273a4732a3048
|
|
BLAKE2b-256 checksum How to use checksums |
e915d5a8a37144f831ceb9be4cbb62a14a8f08678004150ca3ef269653dee869
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp314-cp314-win_amd64.whl
| Download URL | panorai-3.5.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 567.4 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2de1814c7354ed972a680eda2e10c68f5bddb5d87da40bb8762925d2173eda16
|
|
BLAKE2b-256 checksum How to use checksums |
b644d667d1c58bf4252da58810f87235d1a29fea786900199d85e6536362c7c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panorai-3.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 666.0 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2a77c3b9de2a91b4777cc6e7a924f97e1d70a57133d179bd973aa43e4d894554
|
|
BLAKE2b-256 checksum How to use checksums |
3dbe4dc8ff65e8e50cdfa46bc50ac4f6f8a5dfb06f94d16e8bb89698cc05f1d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | panorai-3.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 655.4 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
47cfc471f3d37856c034fce76df0f3aeb5f22a2954a635e2adf1c13ba60eb548
|
|
BLAKE2b-256 checksum How to use checksums |
299f1e7539e1c97be5de5ec930fc3b2aeb4b05bdfdde5ddbe2dce5baba933baf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | panorai-3.5.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 364.0 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
471b63a1fd3e24d106f51db6780eb51e295a9cae3162efa9ac77652419a6c553
|
|
BLAKE2b-256 checksum How to use checksums |
382292038188fe90cb3c853b357645ecf2bcbad959d885e417095f6c05f809e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | panorai-3.5.0-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 364.9 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
b759d22f1d04d9c76cb377baf76eb2ae04508200be5c97642db3880e00ed2446
|
|
BLAKE2b-256 checksum How to use checksums |
6d9a253316df80265c8c029f577bd7168d58074da6ea01f62a88a286f802c51f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp313-cp313-win_amd64.whl
| Download URL | panorai-3.5.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 559.5 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1d58616643d692645c800db8747a9e3aefd5c4e50689f52a863526033a9f0a53
|
|
BLAKE2b-256 checksum How to use checksums |
af3f4f63f7735b75c59fee1d2e3a51cc4a46ecbf3621ce43cd511b2a7a719a71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panorai-3.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 665.6 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
329081f68f52369d1df3fc4c94d2aaf62da43d382358f84b5099dc14736ae8a3
|
|
BLAKE2b-256 checksum How to use checksums |
30537909a3d952be8f8888a60f281e7a76c17d940f7a94c9a57dde6de6a97085
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | panorai-3.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 655.2 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
0364a3a0a7b898458d7d4fcb923a21ad674db5d36f2143af685b407d12c48be1
|
|
BLAKE2b-256 checksum How to use checksums |
6bf34fd12de8afe57ff3e2d3675d1554829e27984fcd87bdbd19247379d331e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | panorai-3.5.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 364.0 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f0b6182ae930cb3f7f8a603cc4ee98a56185fde055677716bde8d37a05772c56
|
|
BLAKE2b-256 checksum How to use checksums |
c29001d66d09bd74805c04068c7d7d09a2fd55957488b68624f63285acfa41b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | panorai-3.5.0-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 364.8 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
a6b882542b5e8337950f4aaf14ca948113aecbfa9aafb8b281c795d8cc89136b
|
|
BLAKE2b-256 checksum How to use checksums |
07472c65055c3c4001efde8c879efbf569693c3f1a20c5a6ac90aaaa1ff96061
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp312-cp312-win_amd64.whl
| Download URL | panorai-3.5.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 559.5 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bd0457d2a10ca04354cf3c0222cbfdf7e679b773d65c9962be64cf61b305e1c0
|
|
BLAKE2b-256 checksum How to use checksums |
d344517f065cdccdd51d4bdfbcb8e3c1f56c7ab92cd96f9be3885d7b7ad74b9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panorai-3.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 665.5 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
310404c9df3aecf48eaa4f0900e1f2eb7978fff567cc4a465a79dba783762dee
|
|
BLAKE2b-256 checksum How to use checksums |
46e69f2df0f08527e0cfb2615d0f2ec3aa3b317498c6f3907ab456a97e3454e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | panorai-3.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 655.1 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
ae251965d15b3889076428615452c688cdd6ec64c758724d26d04ac14e49ba73
|
|
BLAKE2b-256 checksum How to use checksums |
c091143be879c6ad232be4ec87441a6c760908b4beb878290583ed015af3116c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | panorai-3.5.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 364.0 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3addbc0f76a6107a7708f9f6842e1c4cb4de62e68c1c0f54690b434329caccfa
|
|
BLAKE2b-256 checksum How to use checksums |
fb442b794e0bf7da3cca97c765b188bc8b0afba7647525bcd2293ccaa34df3b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | panorai-3.5.0-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 364.8 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
1db117420488e90812fb27542b29413c3fd8e18f2dba5deb1315065f5c2e4730
|
|
BLAKE2b-256 checksum How to use checksums |
c18f5c80b587417d445f920f555abcb0dd221ea72a149da471948cebf564a693
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp311-cp311-win_amd64.whl
| Download URL | panorai-3.5.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 559.4 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8901015e3e3f20da4543d95b964f511653a5e4bac9b820ab5d37aef6c1609eea
|
|
BLAKE2b-256 checksum How to use checksums |
149b82d9d1101126ecce9b800423392c5dd379899f02f73bf89c9e654aec6b70
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panorai-3.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 667.2 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0897484e53b87e8de7e7737908cf9f17679f14398324c758735ef5bd13240490
|
|
BLAKE2b-256 checksum How to use checksums |
56a774d7ab45429eb2595092f33dfeb08f263ef071ac40709a53f8cb9288f2d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | panorai-3.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 655.9 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d2c257a9ed80c58d86ffd16062c2027056fbb195a44588229d3ce25ac3c8f4b6
|
|
BLAKE2b-256 checksum How to use checksums |
4edf521152192419e11b8c797373da4755b61ecfb789ef3de1e238978dc6bb14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | panorai-3.5.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 364.0 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6547e19463b0f22219c7f51ace96f5708bd18df2b178fc630d0e92379ba483c4
|
|
BLAKE2b-256 checksum How to use checksums |
b41cd49030dfe9e737e0f956b0dab2a0898ee14cddd016e63f91660cb71ddbd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / panorai-3.5.0-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | panorai-3.5.0-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 364.4 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
5ab2bbec64ea2f02117417af27e4b59d5639112337612d041a2f428df6c83a1b
|
|
BLAKE2b-256 checksum How to use checksums |
6bdcf9d3e9ea998bb4748ed17ff62b73b35d4dd1857a9c8327a6cdbee586a630
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logSecurity for panorai 3.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 21 files in this release have been uploaded with provenance metadata.
Attestation for panorai-3.5.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.