scene_service.scene_graph.types

Core data structures for the Scene Graph layer.

Classes

GeometryHint(distance, xy_overlap, ...)

Spatial cues passed to the LLM alongside the object pair.

SceneGraphEdge(source_id, target_id, ...)

Directed relation between two scene graph nodes.

SceneGraphNode(object_id, label, ...[, yaw, ...])

One node in the scene graph, mapped 1:1 to an ObjectRegistry record.

SceneGraphSnapshot(nodes, ...)

Immutable snapshot of the full scene graph at a point in time.

class scene_service.scene_graph.types.GeometryHint(distance: float, xy_overlap: float, vertical_order: str, containment: str)[source]

Bases: object

Spatial cues passed to the LLM alongside the object pair.

containment: str
distance: float
vertical_order: str
xy_overlap: float
class scene_service.scene_graph.types.SceneGraphEdge(source_id: str, target_id: str, relation: str, confidence: float = 0.0, method: str = 'llm', reason: str = '', updated_at: float = <factory>, stale_rounds: int = 0)[source]

Bases: object

Directed relation between two scene graph nodes.

confidence: float = 0.0
method: str = 'llm'
reason: str = ''
relation: str
source_id: str
stale_rounds: int = 0
target_id: str
updated_at: float
class scene_service.scene_graph.types.SceneGraphNode(object_id: str, label: str, bbox_center: tuple[float, float, float], bbox_extent: tuple[float, float, float], yaw: float = 0.0, caption: str | None = None, caption_updated_at: float | None = None, confidence: float = 0.0, observation_count: int = 0, last_seen: float | None = None)[source]

Bases: object

One node in the scene graph, mapped 1:1 to an ObjectRegistry record.

bbox_center: tuple[float, float, float]
bbox_extent: tuple[float, float, float]
caption: str | None = None
caption_updated_at: float | None = None
confidence: float = 0.0
label: str
last_seen: float | None = None
object_id: str
observation_count: int = 0
yaw: float = 0.0
class scene_service.scene_graph.types.SceneGraphSnapshot(nodes: dict[str, ~scene_service.scene_graph.types.SceneGraphNode]=<factory>, edges: list[SceneGraphEdge] = <factory>, updated_at: float = <factory>)[source]

Bases: object

Immutable snapshot of the full scene graph at a point in time.

edges: list[SceneGraphEdge]
nodes: dict[str, SceneGraphNode]
updated_at: float