Build and query a spatial-semantic graph¶
panorai.graph consumes prepared evidence. Applications call pose, depth,
semantic, oracle, or external providers explicitly and then pass typed results
to the builder. The builder never selects a model, runs matching, or downloads
a checkpoint.
The minimal lifecycle is:
create
SphericalViewNodeandSemanticRegionNodeobservations with frame, split, access role, and provenance;adapt the exact matches and inliers that supported a pose into
PairFeatureEvidenceandRelativePoseEdge;call
associate_regionsandlocalize_region_pairindependently;add accepted records to
SpatialSemanticGraphBuilder;call
snapshot(), archive withsave_graph_archive, and query throughSpatialSemanticGraphQuery.
No scale is invented. Without finite depth or metric scale, localization is reported as unbounded angular or scale-free support. Metric sparse-voxel support is only produced when metric evidence exists. One view never confirms an entity under the conservative-v1 policy.
Archives contain graph.jsonl plus SHA-256-addressed arrays/*.npz
sidecars. Loading verifies every sidecar before reconstructing the immutable
snapshot. Text queries require an encoder that explicitly declares compatible
text-image alignment.
See Spatial-semantic graph API for the public classes and API stability in 3.x for the Experimental boundary.