Architecture¶
PanorAi separates mathematical geometry, evidence-producing domains, and evidence integration. Product families organize user goals; Python packages remain domain boundaries rather than mirroring the navigation hierarchy.
Surface |
Stability |
Canonical import |
Contract |
Public components or entries |
|---|---|---|---|---|
spherical-features-core |
Stable |
panorai.features |
panorai-spherical-features/v1 |
DeduplicationResult, FaceSetSpec, FeatureExtractor, FeatureExtractorConfig, FeatureMatcher, FeatureMatcherConfig, FeatureProvenance, FaceDetectionDiagnostics, MatchProvenance, MultifaceDetectionDiagnostics, OpenCVFeatureBackend, SphericalBearingCorrespondences, SphericalFeature, SphericalFeatureMatches, SphericalFeaturePipeline, SphericalFeaturePipelineConfig, SphericalFeatureSet, available_presets, deduplicate_spherical_keypoints, extract_opencv_features, gnomonic_feature_mask, match_opencv_features, panorai.features.backends.OpenCVFeatureBackend |
spherical-features-pycolmap |
Experimental |
panorai.features |
panorai-spherical-features-pycolmap/v1 |
GnomonicRig, GnomonicRigCamera, PyCOLMAPExportResult |
spherical-features-multiscale |
Experimental |
panorai.features |
panorai-spherical-features-multiscale/v1 |
MultiscaleEmbeddingConfig, MultiscaleFeatureMatches, MultiscaleFeatureSet, MultiscaleSphericalFeaturePipeline, OpenCVContextEmbedding, VisualContextNode, VisualEmbeddingProvider |
spherical-features-dog-sift |
Experimental |
panorai.features |
panorai-spherical-dog-sift/v2 |
SphericalDoGSIFTConfig, SphericalDoGSIFTExtractor, SphericalDoGSIFTPipeline |
spherical-features-dog-detector |
Experimental |
panorai.features |
panorai-spherical-dog-detector/v2 |
SphericalDetectionDiagnostics, SphericalDoGDetector, SphericalDoGDetectorConfig, SphericalKeypoint, SphericalKeypointSet, SphericalOctaveDetectionDiagnostics, SphericalRefinedKeypoint |
spherical-features-coarse-dog-detector |
Experimental |
panorai.features |
panorai-spherical-coarse-dog-detector/v1 |
SphericalCoarseDoGDetector, SphericalCoarseDoGDetectorConfig |
spherical-features-tangent-patches |
Experimental |
panorai.features |
panorai-tangent-patches/v1 |
OpenCVTangentDescriptor, OpenCVTangentDescriptorConfig, TangentDescriptorSet, TangentPatch, TangentPatchGeometry, TangentPatchProvider, TangentPatchRequest, TangentPatchSet |
spherical-feature-resolution-selection |
Experimental |
panorai.features |
panorai-resolution-selection/v1 |
ResolutionLevelReport, ResolutionSelectionObservation, ResolutionSelectionPolicy, ResolutionSelectionReport, ResolutionTransitionReport, select_feature_resolution |
spherical-features-tangent-descriptor-v2 |
Experimental |
panorai.features |
panorai-tangent-opencv-descriptor/v2 |
OpenCVTangentDescriptorV2, OpenCVTangentDescriptorV2Config, TangentDescriptorHypothesisSet |
spherical-relative-pose-pipeline |
Experimental |
panorai.features |
panorai-spherical-relative-pose-pipeline/v1-experimental |
ExtractSphericalFeaturePair, MatchSphericalFeatures, SphericalFeaturePair, SphericalImagePair, ToBearingCorrespondences |
spherical-deep-learning-depth |
Experimental |
panorai.experimental.deep_learning |
panorai-spherical-metric-depth/v1-experimental |
SphericalMetric3D, acquire_metric3d_convnext_large_v1, acquire_metric3d_convnext_tiny_v1, load_spherical_metric3d_convnext_large_v1, load_spherical_metric3d_convnext_tiny_v1, panorai.depth.DepthAdapterUnavailableError, panorai.depth.ModelRegistry, panorai.depth.load_dav2_model, panorai.depth.load_dust3r_model, panorai.depth.load_m3dv2_model, panorai.depth.load_zoe_model, panorai.depth.zoe.load_zoe_model, panorai.experimental.deep_learning.depth.SPHERICAL_METRIC_DEPTH_INTERFACE, panorai.experimental.deep_learning.depth.METRIC3D_CHECKPOINT_REVISION, panorai.experimental.deep_learning.depth.METRIC3D_CONVNEXT_LARGE_V1, panorai.experimental.deep_learning.depth.METRIC3D_CONVNEXT_TINY_V1, panorai.experimental.deep_learning.depth.METRIC3D_SOURCE, panorai.experimental.deep_learning.depth.METRIC3D_SOURCE_COMMIT, panorai.experimental.deep_learning.depth.ExternalArtifactRecord, panorai.experimental.deep_learning.depth.ExternalArtifactSpec, panorai.experimental.deep_learning.depth.LoadedSphericalDepthModel, panorai.experimental.deep_learning.depth.Metric3DAssets, panorai.experimental.deep_learning.depth.SphericalMetric3D, panorai.experimental.deep_learning.depth.UpstreamTermsNotAcceptedError, panorai.experimental.deep_learning.depth.acquire_metric3d_convnext_large_v1, panorai.experimental.deep_learning.depth.acquire_metric3d_convnext_tiny_v1, panorai.experimental.deep_learning.depth.load_spherical_metric3d_convnext_large_v1, panorai.experimental.deep_learning.depth.load_spherical_metric3d_convnext_tiny_v1 |
tangent-da3-metric-depth |
Experimental |
panorai.experimental.deep_learning |
panorai-depth-anything-3-metric-tangent/v1-experimental |
DA3MetricTangent, acquire_da3metric_large, load_da3metric_large, panorai.experimental.deep_learning.da3.DA3Assets, panorai.experimental.deep_learning.da3.DA3MetricTangent, panorai.experimental.deep_learning.da3.DA3TermsNotAcceptedError, panorai.experimental.deep_learning.da3.DA3_CANONICAL_FOCAL_PX, panorai.experimental.deep_learning.da3.DA3_CHECKPOINT_REVISION, panorai.experimental.deep_learning.da3.DA3_MODEL_ID, panorai.experimental.deep_learning.da3.DA3_PATCH_SIZE, panorai.experimental.deep_learning.da3.DA3_SOURCE, panorai.experimental.deep_learning.da3.DA3_SOURCE_COMMIT, panorai.experimental.deep_learning.da3.DA3METRIC_LARGE, panorai.experimental.deep_learning.da3.LoadedDA3MetricModel, panorai.experimental.deep_learning.da3.SPHERICAL_DA3_METRIC_DEPTH_INTERFACE, panorai.experimental.deep_learning.da3.acquire_da3metric_large, panorai.experimental.deep_learning.da3.load_da3metric_large |
spherical-semantic-segmentation |
Experimental |
panorai.experimental.deep_learning.segmentation |
panorai-spherical-semantic-segmentation/v1 |
SPHERICAL_MASK_PROPOSALS_INTERFACE, SPHERICAL_PROXY_SEGMENTATION_INTERFACE, SPHERICAL_SEMANTIC_SEGMENTATION_INTERFACE, SAM21_HIERA_LARGE_LICENSE, SAM21_HIERA_LARGE_REPOSITORY, SAM21_HIERA_LARGE_REVISION, IMAGENET_PROXY_VOCABULARY, DenseSemanticEvidence, Sam21Assets, Sam21FileRecord, Sam21HieraLargeSegmenter, Sam21TermsNotAcceptedError, SamMultimaskOutput, SegmentPrompt, SemanticProxyConcept, SphericalBinaryMask, SphericalProxySegmenter, SphericalMaskProposal, SphericalMaskProposalSet, SphericalSeed, SphericalSegment, SphericalSegmentationConfig, SphericalSegmentationResult, SphericalSemanticSegmenter, acquire_sam21_hiera_large, advance_chart, backproject_face_mask_sets, angular_distance_degrees, backproject_face_masks, concept_display_names, concept_evidence_from_imagenet, concept_proxy_names, connected_component_at, consensus_frontiers, extract_mask_face, extract_rgb_face, face_point_direction, fibonacci_coverage_seeds, load_sam21_hiera_large, majority_and_envelope, mask_stability_score, maximum_pairwise_iou, merge_proposals, non_maximum_suppression, partition_proposals_by_origin, pairwise_mask_iou, prompt_from_mask, prompt_grid, proposal_is_accepted, resolve_panoptic_map, select_semantic_seeds, semantic_support_for_mask, solid_angle_weights, weighted_containment, weighted_intersection_over_union |
spherical-relative-pose |
Experimental |
panorai.estimators |
panorai-spherical-relative-pose/v1 |
CalibrationEvaluation, DecoupledPoseReport, EstimateRelativePose, FivePointSample, FivePointSampler, FivePointSamplingDiagnostics, ModelCompetitionReport, ModelEvidence, PoseStabilityReport, RelativePoseAcceptancePolicy, RelativePoseConfidenceCalibrator, RelativePoseOptions, RelativePoseQualityReport, RelativePoseResult, TranslationOrientationReport, SpatiallyWeightedFivePointSampler, SphericalRelativePoseEstimator, UniformFivePointSampler, estimate_relative_pose, native_kernels_available, solve_five_point_essential, spherical_tangent_sampson_error |
semantic-object-localization |
Experimental |
panorai.object_localization |
panorai-object-localization/v1 |
JOINT_MATCH_CLUSTERS_INTERFACE, JointMatchCluster, JointMatchClusterConfig, JointMatchClusterResult, MULTIVIEW_OBJECT_HYPOTHESES_INTERFACE, BearingTrackTriangulation, DirectionalRegionTransfer, HypothesisAffinity, HypothesisAffinityConfig, HypothesisGnomonicRegion, HypothesisPairCues, HypothesisReductionCandidate, HypothesisReductionResult, HypothesisRegionEvaluation, HypothesisTransferEvaluation, HypothesisViewConsistency, HypothesisViewEmbedding, HypothesisViewPairEvaluation, MultiviewObjectHypothesis, MultiviewObjectHypothesisResult, MultiviewSpatialRegion, OBJECT_LOCALIZATION_INTERFACE, OBJECT_LOCALIZATION_STABILITY, ObjectHypothesis, ObjectLocalizationConfig, ObjectLocalizationPipeline, ObjectLocalizationResult, PairObjectLocalizationInput, RegionAssociation, ReducedHypothesisRecord, RegisteredSemanticEvidence, RegisteredBearingObservation, RegisteredBearingTrack, RegisteredPoseInconsistencyError, RegisteredRadialDepth, SEMANTIC_MATCH_PRIOR_INTERFACE, SEMANTIC_REGION_PROPOSALS_INTERFACE, SPHERICAL_ANCHOR_FUSION_INTERFACE, SemanticMatchPrior, SemanticMatchPriorConfig, SemanticQuery, SemanticConcept, SemanticRegionProposalConfig, SemanticRegionProposalResult, SemanticRegionObservation, SemanticTrackObservation, SphericalObjectHypothesisConfig, SphericalObjectHypothesisGenerator, SphericalObjectHypothesisMethod, SphericalObjectHypothesisMethodConfig, SphericalObjectHypothesisMethodResult, SphericalAnchorAffinity, SphericalAnchorCluster, SphericalAnchorClusterDecision, SphericalAnchorDecision, SphericalAnchorFusionConfig, SphericalAnchorFusionResult, SphericalAnchorPairCues, SphericalFOVAnchor, SphericalRegionMetrics, SpatialLocationHypothesis, SymmetricRegionTransfer, assign_region_associations, build_semantic_match_prior, cluster_region_association_matches, evaluate_spherical_region, fuse_registered_spherical_anchors, generate_spherical_fov_anchors, hypothesis_pair_affinity, hypothesis_view_consistency, triangulate_registered_bearing_track, localize_region_association, object_hypothesis_id, propose_region_associations, reduce_object_hypotheses, semantic_region_from_map, semantic_regions_from_map, spherical_region_mask, spherical_anchor_pair_affinity, spherical_solid_angle_weights, symmetric_spherical_region_transfer, transfer_spherical_region |
spherical-reconstruction |
Experimental |
panorai.reconstruction |
panorai-spherical-reconstruction/v1 |
BuildRegisteredReferenceSets, ColorizeSurface, DenseReconstructionWorkspace, EstimateMultiViewRanges, ExtractSurface, FuseTSDF, MultiViewRangeMap, MultiViewRangeSet, RegisteredReferenceSets, RegisteredSphericalScene, RegisteredSphericalView, SphericalBaselinePrior, SphericalCameraPose, SphericalDenseReconstructionResult, SphericalGlobalMapper, SphericalGlobalMapperOptions, SphericalPairwisePoseEdge, SphericalRangePrior, SphericalReconstructionDiagnostics, SphericalReconstructionResult, SphericalTrack, SphericalTrackObservation, SurfaceMesh, TSDFSpec, TSDFVolume, ValidateDenseReconstruction, colorize_surface, extract_surface, fuse_tsdf |
metric-spherical-landmark-ba |
Experimental |
panorai.reconstruction.metric_landmark_ba |
panorai-metric-spherical-landmark-ba/v1-experimental |
METRIC_SPHERICAL_LANDMARK_BA_INTERFACE, MetricBearingObservation, MetricLandmarkBAOptions, MetricLandmarkBAReport, MetricLandmarkBAResult, MetricRadialRangePrior, MetricScaleGauge, MetricSphericalCamera, MetricSphericalLandmark, refine_metric_spherical_landmarks |
spherical-dense-stereo |
Experimental |
panorai.stereo |
panorai-spherical-dense-stereo/v1-experimental |
SphericalDenseStereo, SphericalStereoOptions, SphericalStereoResult, classical, panoramic, colorize_spherical_range, estimate_spherical_range, render_spherical_stereo_result |
classical-rectified-stereo |
Experimental |
panorai.stereo.classical |
panorai-classical-dense-stereo/v1-experimental |
ADCensusConfig, ADCensusCost, AbsoluteDifferenceCost, BirchfieldTomasiCost, BoxCostAggregation, BuildStereoCost, CensusCost, CensusMGMConfig, ClassicalStereoResult, CrossBasedCostAggregation, ELASConfig, ELASSupportPrior, MoreGlobalMatching, OpenCVStereoMatcher, PatchMatchConfig, PatchMatchStereo, RectifiedStereoGeometry, RectifiedStereoPair, RefineStereoDisparity, SelectStereoDisparity, SemiGlobalMatching, StereoBMConfig, StereoCostVolume, StereoDisparityCandidate, StereoSGBMConfig, StereoValidationConfig, TransformStereoCost, ad_census_pipeline, census_mgm_pipeline, disparity_labels, elas_pipeline, patchmatch_pipeline, stereo_bm_pipeline, stereo_sgbm_pipeline |
registered-full-sphere-stereo-core |
Experimental |
panorai.stereo.panoramic |
panorai-registered-full-sphere-stereo/v1-experimental |
FullSphereMultiViewStereo, FullSphereStereoOptions, FullSphereStereoResult, OverlappingCubemapPlanner, PanoramicStereoPose, RegisteredPanoramaSet, StereoSourceView |
panoramic-dense-stereo-workflow |
Experimental |
panorai.stereo.panoramic |
panorai-panoramic-dense-stereo/v1-experimental |
BackProjectStereoRange, DenseStereoPerPair, FuseStereoRange, PanoramicStereoInput, PanoramicStereoResult, PlanRectifiedStereoViews, ProjectStereoViewPairs, RectifiedStereoViewPlanner, RectifiedStereoViewSpec, ResolveStereoPose, ResolveStereoScale, SelectStereoViewPairs, SphereNativeStereo, SphericalStereoViewPairer, StereoPairDiagnostic, StereoViewDescriptor, StereoViewPairScore, StereoViewSelectionDiagnostic, StereoViewPlan, ValidatePanoramicStereo, spec_from_axes |
spherical-slam |
Experimental |
panorai.slam |
panorai-spherical-slam/v1 |
EquidistantFisheyeCamera, FisheyeRayProjection, SphericalImageFrame, SphericalIncrementalSLAM, SphericalIncrementalSLAMDiagnostics, SphericalIncrementalSLAMOptions, SphericalIncrementalSLAMResult, SphericalKeyframeSummary, SphericalLocalBAReport, SphericalMapObservation, SphericalMapPoint, SphericalSLAMDiagnostics, SphericalSLAMFrameSummary, SphericalSLAMOptions, SphericalSLAMPose, SphericalSLAMResult, SphericalTrackingResult, SphericalVisualSLAM |
rotation-pair-calibration |
Experimental |
panorai.calibration |
panorai-rotation-pair-calibration/v1-experimental |
RotationCalibrationOptions, RotationCalibrationResult, calibrate_rotation_pair |
robust-model-fitting |
Experimental |
panorai.model_fitting |
panorai-robust-model-fitting/v1-experimental |
HomographyModel, ModelFamily, RobustFitOptions, RobustFitResult, RotationModel, fit_homography, fit_rotation, robust_fit |
spherical-estimators-auto-experimental |
Experimental |
panorai.estimators |
panorai-estimator/auto-experimental |
— |
Surface |
Stability |
Canonical import |
Contract |
Public components or entries |
|---|---|---|---|---|
public-catalog |
Stable |
panorai.catalog |
panorai-catalog/v1 |
CatalogSurface, DocumentationContext, DocumentationLink, DocumentationSite, PublicCatalog, public_catalog |
object-workflow |
Stable |
panorai |
panorai-object-workflow/v1 |
EquirectangularImage, GnomonicFace, GnomonicFaceSet, SphericalTranspose |
spatial-semantic-graph |
Experimental |
panorai.graph |
panorai-spatial-semantic-graph/v1 |
GRAPH_INTERFACE, GRAPH_STABILITY, CallablePanorAiProvider, DepthProvider, DisabledProvider, EvidenceMode, EvidenceProvider, EvidenceSource, ExternalProvider, GraphArchiveError, GraphBuilderConfig, GraphEvent, GraphQueryFilters, GraphQueryResult, MultiViewPoseProvider, ObjectHypothesisNode, OracleProvider, PairFeatureEvidence, PairwiseLocalizationConfig, PairwiseLocalizationInput, PairwiseLocalizationResult, PoseProvider, PromotionPolicy, RegionAssociationConfig, RegionAssociationInput, RegionAssociationResult, RegionCorrespondenceCandidate, RegionCorrespondenceEdge, RelativePoseEdge, SemanticProvider, SemanticRegionNode, SpatialSemanticGraph, SpatialSemanticGraphBuilder, SpatialSemanticGraphQuery, SpatialSemanticPosterior, SphericalViewNode, TextImageEncoder, assign_region_correspondences, associate_regions, load_graph_archive, localize_region_pair, neighbors, propose_region_correspondences, query_embedding, query_spatial, query_text, replay_graph_archive, save_graph_archive, panorai.graph.association.RegionAssociationConfig, panorai.graph.association.RegionAssociationInput, panorai.graph.association.RegionAssociationResult, panorai.graph.association.assign_region_correspondences, panorai.graph.association.associate_regions, panorai.graph.association.propose_region_correspondences, panorai.graph.builder.GraphBuilderConfig, panorai.graph.builder.SpatialSemanticGraphBuilder, panorai.graph.localization.PairwiseLocalizationConfig, panorai.graph.localization.PairwiseLocalizationInput, panorai.graph.localization.PairwiseLocalizationResult, panorai.graph.localization.localize_region_pair, panorai.graph.observations.deterministic_id, panorai.graph.observations.feature_evidence_from_panorai, panorai.graph.observations.pose_edge_from_panorai, panorai.graph.observations.semantic_region_from_observation, panorai.graph.providers.CallablePanorAiProvider, panorai.graph.providers.DepthProvider, panorai.graph.providers.DisabledProvider, panorai.graph.providers.EvidenceProvider, panorai.graph.providers.ExternalProvider, panorai.graph.providers.MultiViewPoseProvider, panorai.graph.providers.OracleProvider, panorai.graph.providers.PoseProvider, panorai.graph.providers.SemanticProvider, panorai.graph.query.GraphQueryFilters, panorai.graph.query.GraphQueryResult, panorai.graph.query.SpatialSemanticGraphQuery, panorai.graph.query.TextImageEncoder, panorai.graph.query.neighbors, panorai.graph.query.query_embedding, panorai.graph.query.query_spatial, panorai.graph.query.query_text, panorai.graph.serialization.GraphArchiveError, panorai.graph.serialization.load_graph_archive, panorai.graph.serialization.replay_graph_archive, panorai.graph.serialization.save_graph_archive |
spherical-ops-algorithms-gateway |
Experimental |
panorai.ops.spherical |
panorai-spherical-algorithms/v1-experimental |
algorithms |
spherical-mask-rcnn-taxonomy |
Experimental |
panorai.experimental.deep_learning.mask_rcnn |
panorai-spherical-mask-rcnn/v1-experimental |
Backbone, BoxHead, MaskHead, MaskRCNNArchitecture, ProposalGenerator, RegionProposalNetwork, RoIAlign, RoIHeads, SphericalMaskRCNN, SphericalMaskRCNNPaper, SphericalMaskRCNNWorkflow, UnboundMaskRCNNError, paper, workflow |
spherical-surface-open3d-adapter |
Experimental |
panorai.pcd |
panorai-surface-open3d-adapter/v1-experimental |
surface_mesh_to_open3d |
Surface |
Stability |
Canonical import |
Contract |
Public components or entries |
|---|---|---|---|---|
legacy-composition |
Compatibility |
panorai |
panorai-3x-compatibility/v1 |
EquirectangularImage, GnomonicFace, GnomonicFaceSet, ConfigManager, PanoraiFactory, panorai.projections.GnomonicProjection, panorai.projections.ProjectionRegistry, panorai.projections.base.BaseProjectionStrategy, panorai.projections.base.BaseGridGeneration, panorai.projections.base.BaseInterpolation, panorai.projections.base.BaseCoordinateTransformer, panorai.projections.base.ProjectionError, panorai.projections.base.ConfigurationError, panorai.projections.base.RegistrationError, panorai.projections.base.ProcessingError, panorai.projections.base.GridGenerationError, panorai.projections.base.TransformationError, panorai.projections.base.InterpolationError, panorai.samplers.SamplerRegistry, panorai.samplers.Sampler, panorai.samplers.CubeSampler, panorai.samplers.IcosahedronSampler, panorai.samplers.FibonacciSampler, panorai.samplers.BlueNoiseSampler, panorai.samplers.SpiralSampler, panorai.utils.ResizerConfig, panorai.utils.ImageResizer, panorai.utils.PreprocessEquirectangularImage, panorai.utils.setup_logging |
root-convenience-exports |
Compatibility |
panorai.features |
panorai-root-convenience/v1 |
SphericalFeaturePipeline, __version__ |
core-geometry-preview |
Compatibility |
panorai.core.geometry |
geometry-v1 |
CUBE_FACE_BASES, CUBE_FACE_ORDER, ArrayLike, CubemapProjector, CubemapSpec, ERPPointProjection, GnomonicFaceGeometry, GnomonicPointProjection, GnomonicProjector, GnomonicRayProjection, GnomonicSpec, Interpolation, InvalidPolicy, NumpyArray, ProjectionResult, ShapeHW, TensorLike, camera_rays_to_world_points, cubemap_to_equirectangular, equirectangular_to_cubemap, equirectangular_to_gnomonic, erp_pixels_to_rays, gnomonic_face_geometry, gnomonic_intrinsics, gnomonic_pixel_map, gnomonic_pixels_to_rays, gnomonic_rotation, gnomonic_to_equirectangular, rays_to_gnomonic_pixels, rays_to_erp_pixels, relative_camera_pose, tangent_offsets_to_rays, world_points_to_camera_rays |
spherical-instance-pipeline-root-convenience |
Experimental |
panorai.pipeline |
panorai-spherical-instance-pipeline/v1-experimental |
CAMGuidedSphericalInstances, CAMRegionProposals, SAMMaskRefinement, SphericalCAM, SphericalInstanceFusion |
The user-facing spherical computer-vision guide is maintained in How PanorAi executes computer vision on spherical images. It starts from what users can do across projection, image processing, features and matching, two-view geometry, multiview reconstruction, and SLAM. Within each theme it identifies sphere-native, projection-domain, and hybrid routes, independently from C++ acceleration.
Canonical geometry¶
panorai.geometry owns the coordinate frame, projection formulas, sampling,
layouts, dtype rules, and support masks. Functional calls and immutable
projector objects delegate to one engine so NumPy, Torch, cubemap, and
gnomonic paths do not redefine the mathematics independently.
Fundamental operations and composition¶
panorai.core defines immutable specifications and small spherical
operations. panorai.core.numpy is the required implementation path and
panorai.core.torch is the explicit optional differentiable path. Both
consume the same geometry-v1 lattice and tangent-neighbourhood mathematics;
native acceleration is an execution choice, not a second numerical contract.
Applications compose these primitives with ordinary language/backend
constructs. They do not require a PanorAi pipeline merely to add, subtract,
branch, concatenate, or apply pointwise nonlinearities. The typed container
boundary lives in panorai.workflow: a composed model runs directly on an
array/tensor and uses predict only when it must extract fields from or
materialize fields into EquirectangularImage.
Compatibility containers¶
EquirectangularImage, GnomonicFace, and GnomonicFaceSet retain the
3.0 object-oriented workflow. In 3.1 they can accept canonical geometry specs,
but they remain compatibility APIs rather than the source of new geometry
semantics.
Validity and blending¶
Projection returns data together with geometric support. A valid black RGB pixel, label zero, or radial range zero remains valid when its mask is true. An unsupported non-zero value remains unsupported. Blenders consume those explicit masks and never infer validity from numeric values.
Scope boundary¶
Training pipelines, datasets, checkpoints, research metrics, and vendored
model implementations are outside the projection core and are excluded from
the 3.1 wheel and sdist. panorai.depth contains only lazy compatibility
adapters to separately installed upstream projects; PCD remains an optional
compatibility surface. See
API stability in 3.x for the supported surface and
PanorAi canonical spherical geometry for the mathematical contract.
Evidence and graph boundary¶
Image processing, features, pose, depth, semantics, reconstruction, stereo,
and SLAM own their algorithms and result contracts. panorai.graph consumes
those prepared results. Its builder does not detect, match, infer depth, run a
network, estimate pose, perform SLAM, or choose a provider.
This direction is intentional:
explicit providers / existing PanorAi domains
|
v
typed observations and pair evidence
|
association + spatial posterior
|
v
entity lifecycle and lineage events
|
v
immutable snapshot -> JSONL/NPZ -> query
Views, semantic region observations, and entity hypotheses are distinct node types. Scale-free and unbounded posteriors remain non-metric; metric summaries are derived only from finite metric support. Correlation groups prevent repeated transformations of the same observation from creating false confidence, and the conservative-v1 policy requires at least two independent views before entity confirmation.
Version boundary¶
The 3.x line introduces core and workflow additively. The generic
Torch layers used by panorai.ops.spherical.nn are Stable on CPU; the
remaining low-level specifications, backend facades and workflow adapters keep
their separately recorded tiers. It does not remove or warn on established
imports.
Physical canonical-package changes remain a 4.0 decision and are published in
Planned 4.0 destination map.