Public symbols 50

class

GeometryPurpose

L302
class GeometryPurpose(StrEnum)
class

GeometryRepresentation

L308
class GeometryRepresentation(StrEnum)
class

GeometryMotionClass

L322
class GeometryMotionClass(StrEnum)
class

GeometryStorageKind

L328
class GeometryStorageKind(StrEnum)
class

GeometryLocatorScheme

L336
class GeometryLocatorScheme(StrEnum)
class

GeometryAxis

L344
class GeometryAxis(StrEnum)
class

SignedGeometryAxis

L350
class SignedGeometryAxis(StrEnum)
class

GeometryDType

L359
class GeometryDType(StrEnum)
class

GeometryContentProfile

L382
class GeometryContentProfile(StrEnum)

Closed, versioned byte layouts supported by ``scene.geometry@2``. Every profile is headerless, C-contiguous, and little-endian. Consequently ``byte_size`` is both the encoded payload size and the decoded array size in version 1; compressed/container formats require a future profile or service version instead of being guessed from an arbitrary format string.

class

GeometrySdfSignConvention

L397
class GeometrySdfSignConvention(StrEnum)
class

GeometryVoxelValueSemantics

L401
class GeometryVoxelValueSemantics(StrEnum)
class

GeometryAxisConvention

L464
class GeometryAxisConvention(object)

Fully specified portable basis convention for one resolved resource.

FieldTypeDefault
up_axisSignedGeometryAxis—
forward_axisSignedGeometryAxis—
handednessstr'right_handed'
class

MeshResourceSchema

L491
class MeshResourceSchema(object)

Raw mesh arrays: vertices first, then triangle indices. Both arrays are headerless C-order arrays. Vertices have shape ``(N, 3)`` in metres and use a floating dtype. Triangle indices have shape ``(M, 3)`` and use an unsigned integer dtype. The profile fixes little-endian byte order; ``index_byte_offset`` is therefore the exact vertex byte count.

FieldTypeDefault
vertex_dtypeGeometryDType—
vertex_shapetuple[int, int]—
index_dtypeGeometryDType—
index_shapetuple[int, int]—
vertex_byte_size
MeshResourceSchema.vertex_byte_size(self) -> int
index_byte_offset
MeshResourceSchema.index_byte_offset(self) -> int
index_byte_size
MeshResourceSchema.index_byte_size(self) -> int
decoded_byte_size
MeshResourceSchema.decoded_byte_size(self) -> int
class

SdfResourceSchema

L556
class SdfResourceSchema(object)

Dense SDF array with shape ``(X, Y, Z)`` and Z as the fastest axis.

FieldTypeDefault
dtypeGeometryDType—
shape_xyztuple[int, int, int]—
origin_xyz_mtuple[float, float, float]—
cell_size_xyz_mtuple[float, float, float]—
sign_conventionGeometrySdfSignConventionGeometrySdfSignConvention.NEGATIVE_INSIDE
decoded_byte_size
SdfResourceSchema.decoded_byte_size(self) -> int
class

VoxelResourceSchema

L600
class VoxelResourceSchema(object)

Dense uint8 occupancy grid shaped ``(X, Y, Z)``, Z fastest.

FieldTypeDefault
dtypeGeometryDType—
shape_xyztuple[int, int, int]—
origin_xyz_mtuple[float, float, float]—
cell_size_xyz_mtuple[float, float, float]—
value_semanticsGeometryVoxelValueSemanticsGeometryVoxelValueSemantics.ZERO_FREE_NONZERO_OCCUPIED
decoded_byte_size
VoxelResourceSchema.decoded_byte_size(self) -> int
class

HeightfieldResourceSchema

L644
class HeightfieldResourceSchema(object)

Dense height samples shaped ``(Y, X)`` with X as the fastest axis.

FieldTypeDefault
dtypeGeometryDType—
shape_yxtuple[int, int]—
origin_xy_mtuple[float, float]—
spacing_xy_mtuple[float, float]—
height_scale_mfloat—
height_offset_mfloat0.0
decoded_byte_size
HeightfieldResourceSchema.decoded_byte_size(self) -> int
class

AxisAlignedBoundingBox

L702
class AxisAlignedBoundingBox(object)

A finite AABB expressed in one explicitly named frame.

FieldTypeDefault
frame_idstr—
minimum_xyz_mtuple[float, float, float]—
maximum_xyz_mtuple[float, float, float]—
class

CollisionFilterMetadata

L720
class CollisionFilterMetadata(object)

Portable collision-layer membership and allow-list metadata.

FieldTypeDefault
layerstr—
collides_withtuple[str, ...]—
class

InlineBox

L740
class InlineBox(object)
FieldTypeDefault
size_xyz_mtuple[float, float, float]—
representationGeometryRepresentationGeometryRepresentation.BOX
class

InlineSphere

L761
class InlineSphere(object)
FieldTypeDefault
radius_mfloat—
representationGeometryRepresentationGeometryRepresentation.SPHERE
class

InlineCapsule

L778
class InlineCapsule(object)
FieldTypeDefault
radius_mfloat—
axial_length_mfloat—
axisGeometryAxis—
representationGeometryRepresentationGeometryRepresentation.CAPSULE
class

InlineCylinder

L811
class InlineCylinder(object)
FieldTypeDefault
radius_mfloat—
axial_length_mfloat—
axisGeometryAxis—
representationGeometryRepresentationGeometryRepresentation.CYLINDER
class

InlineHalfspace

L844
class InlineHalfspace(object)

Exact infinite half-space with local boundary ``z=0`` and solid ``z<=0``.

class

GeometryLocalPose

L852
class GeometryLocalPose(object)

A frame-free geometry-local rigid transform. In ``InlineCompoundPart`` this value is exactly ``geometry_T_part``. It is intentionally not a :class:`Pose`: a geometry-local coordinate system is not a public FrameCatalog node and therefore must not masquerade as one.

FieldTypeDefault
xyz_mtuple[float, float, float]—
quat_xyzwtuple[float, float, float, float]—
class

InlineCompoundPart

L886
class InlineCompoundPart(object)

One primitive child in a bounded inline compound collider. ``local_pose`` is exactly ``geometry_T_part``. It has no ``frame_id`` because the geometry-local coordinate system is not a FrameCatalog node.

FieldTypeDefault
part_idstr—
local_poseGeometryLocalPose—
scale_xyztuple[float, float, float]—
primitiveInlinePrimitive—
class

InlineCompound

L912
class InlineCompound(object)
FieldTypeDefault
partstuple[InlineCompoundPart, ...]—
representationGeometryRepresentationGeometryRepresentation.COMPOUND
function

aabb_intersects_halfspace

L943
aabb_intersects_halfspace(aabb: AxisAlignedBoundingBox, parent_frame_T_halfspace: Pose) -> bool

Return exact analytic intersection with an oriented infinite half-space. The AABB and pose must use the same frame. Local ``+Z`` is the outward normal, so a point is occupied exactly when ``normal · (point-origin) <= 0``.

class

GeometryCatalogEntry

L982
class GeometryCatalogEntry(object)

One path-free collision, visual, or planning geometry fact. ``local_pose`` is ``parent_frame_T_geometry``; its ``frame_id`` is the owning entity/link frame selected by the provider. Compound child poses are frame-free ``geometry_T_part`` values.

FieldTypeDefault
geometry_idstr—
entity_idstr—
link_idstr | None—
purposeGeometryPurpose—
representationGeometryRepresentation—
local_posePose—
scale_xyztuple[float, float, float]—
motion_classGeometryMotionClass—
collision_filterCollisionFilterMetadata—
provenance_sha256str—
resource_idstr | NoneNone
sha256str | NoneNone
content_profileGeometryContentProfile | NoneNone
inlineInlineGeometry | NoneNone
resolution_key
GeometryCatalogEntry.resolution_key(self) -> tuple[str, GeometryRepresentation, str] | None

Return the exact immutable resource-cache key, or ``None`` for inline shapes.

class

GeometryQuery

L1099
class GeometryQuery(object)

Bounded deterministic intersection filter shared by geometry reads.

FieldTypeDefault
entity_idstuple[str, ...]()
aabbAxisAlignedBoundingBox | NoneNone
motion_classestuple[GeometryMotionClass, ...]()
collision_layerstuple[str, ...]()
purposestuple[GeometryPurpose, ...]()
representationstuple[GeometryRepresentation, ...]()
class

GeometryCapabilities

L1148
class GeometryCapabilities(object)

Exact service capabilities; callers must fail closed outside this set.

FieldTypeDefault
representationstuple[GeometryRepresentation, ...]—
storage_kindstuple[GeometryStorageKind, ...]—
content_profilestuple[GeometryContentProfile, ...]—
max_catalog_entriesint—
max_subscription_capacityint—
max_resource_bytesint—
max_decoded_resource_bytesint—
supports_structural_deltasbool—
supports_transform_deltasbool—
supports
GeometryCapabilities.supports(self, representation: GeometryRepresentation | str) -> bool

Return exact availability; this method never chooses a fallback representation.

supports_content
GeometryCapabilities.supports_content(self, representation: GeometryRepresentation | str, profile: GeometryContentProfile | str) -> bool

Preflight one exact representation/profile pair without fallback.

class

GeometryCatalogSnapshot

L1274
class GeometryCatalogSnapshot(object)

Path-free deterministic structural geometry for one generation.

FieldTypeDefault
run_idstr—
plan_digeststr—
generationint—
world_revisionint—
catalog_revisionint—
geometry_revisionint—
content_sha256str—
entriestuple[GeometryCatalogEntry, ...]—
class

ScopedResourceLocator

L1328
class ScopedResourceLocator(object)

Opaque provider-scoped locator; never a filesystem path or native handle.

FieldTypeDefault
schemeGeometryLocatorScheme—
opaque_idstr—
class

GeometryResourceLeaseDescriptor

L1349
class GeometryResourceLeaseDescriptor(object)

Portable metadata for one digest-verified read-only resource lease. The v1 resource profiles deliberately support only closed raw little-endian encodings. ``byte_size`` is the encoded byte length and must exactly equal ``schema.decoded_byte_size``. A future compressed encoding must introduce another explicit profile with its own encoded/decoded relationship.

FieldTypeDefault
run_idstr—
plan_digeststr—
generationint—
catalog_revisionint—
geometry_revisionint—
catalog_content_sha256str—
lease_tokenstr—
resource_idstr—
geometry_idstr—
representationGeometryRepresentation—
storage_kindGeometryStorageKind—
locatorScopedResourceLocator—
formatGeometryContentProfile—
unitsstr—
axis_conventionGeometryAxisConvention—
schemaGeometryResourceSchema—
byte_sizeint—
sha256str—
decoded_byte_size
GeometryResourceLeaseDescriptor.decoded_byte_size(self) -> int
vertex_dtype
GeometryResourceLeaseDescriptor.vertex_dtype(self) -> GeometryDType | None
vertex_shape
GeometryResourceLeaseDescriptor.vertex_shape(self) -> tuple[int, int] | None
index_dtype
GeometryResourceLeaseDescriptor.index_dtype(self) -> GeometryDType | None
index_shape
GeometryResourceLeaseDescriptor.index_shape(self) -> tuple[int, int] | None
resolution_key
GeometryResourceLeaseDescriptor.resolution_key(self) -> tuple[str, GeometryRepresentation, str]

The only valid immutable cache identity for this resource.

read_span
GeometryResourceLeaseDescriptor.read_span(self, offset: int=0, length: int | None=None) -> tuple[int, int]

Validate and canonicalize one bounded portable read span. ``offset`` and ``length`` must be exact built-in integers. A ``None`` length means "up to the per-call limit", not "allocate the rest of an arbitrarily large resource". Callers advance the returned span to consume larger resources in bounded chunks.

class

GeometryResourceReadRequest

L1510
class GeometryResourceReadRequest(object)

One ordered, bounded byte-span request within a resolved batch.

FieldTypeDefault
geometry_idstr—
offsetint0
lengthint | NoneNone
class

GeometryResourceReadResult

L1541
class GeometryResourceReadResult(object)

One immutable payload result in the exact order requested by a caller.

FieldTypeDefault
requestGeometryResourceReadRequest—
databytes—
geometry_id
GeometryResourceReadResult.geometry_id(self) -> str
offset
GeometryResourceReadResult.offset(self) -> int
class

ResolvedGeometryResource

L1567
class ResolvedGeometryResource(Protocol)

Live provider-owned lease around an immutable resource descriptor. ``read`` returns an exact immutable ``bytes`` chunk and must enforce :meth:`GeometryResourceLeaseDescriptor.read_span`. It never exposes a filesystem path, shared-memory object, mmap, file object, native handle, or mutable buffer. A provider invalidates every retained lease on service revocation or generation reset. ``descriptor`` and ``read`` after revocation or close must raise ``RESOURCE_LEASE_REVOKED``. ``closed`` and idempotent ``close`` remain available for lifecycle cleanup.

descriptor
ResolvedGeometryResource.descriptor(self) -> GeometryResourceLeaseDescriptor
closed
ResolvedGeometryResource.closed(self) -> bool
read
ResolvedGeometryResource.read(self, offset: int=0, length: int | None=None) -> bytes
close
ResolvedGeometryResource.close(self) -> None
class

ResolvedGeometryResourceBatch

L1591
class ResolvedGeometryResourceBatch(Protocol)

Generation-scoped lease over ordered immutable geometry resources. ``descriptors`` is shared by lightweight aliases of the same compiled batch. ``read`` addresses one member by geometry ID without exposing a native handle or requiring one Python lease object per resource. ``read_many`` validates the complete request before one provider batch operation. Results preserve request order; exact duplicate spans retain duplicate logical results while providers may read their native bytes once. Logical result bytes, including duplicates, must fit ``max_total_bytes``; callers split larger worlds into bounded batches. High-rate callers should compile and retain one immutable request tuple per static catalog revision; providers may reuse its validated spans and immutable results by identity. Rebuilding an equivalent tuple is a new public-boundary request and may require O(N) validation again.

descriptors
ResolvedGeometryResourceBatch.descriptors(self) -> tuple[GeometryResourceLeaseDescriptor, ...]
closed
ResolvedGeometryResourceBatch.closed(self) -> bool
read
ResolvedGeometryResourceBatch.read(self, geometry_id: str, offset: int=0, length: int | None=None) -> bytes
read_many
ResolvedGeometryResourceBatch.read_many(self, requests: tuple[GeometryResourceReadRequest, ...], *, max_total_bytes: int=GEOMETRY_RESOURCE_BATCH_READ_LIMIT_BYTES) -> tuple[GeometryResourceReadResult, ...]
close
ResolvedGeometryResourceBatch.close(self) -> None
class

GeometryTransform

L1632
class GeometryTransform(object)

One geometry pose expressed in its enclosing snapshot's world frame.

FieldTypeDefault
geometry_idstr—
world_posePose—
class

GeometryAttachmentRecord

L1645
class GeometryAttachmentRecord(object)

Compact attachment relation for planner collision-world mirrors.

FieldTypeDefault
attachment_idstr—
parent_entity_idstr—
child_entity_idstr—
parent_frame_idstr—
child_frame_idstr—
parent_T_childPose—
geometry_idstuple[str, ...]—
parent_link_idstr | NoneNone
child_link_idstr | NoneNone
class

GeometryTransformSnapshot

L1722
class GeometryTransformSnapshot(object)

One committed transform/attachment view without geometry buffers.

FieldTypeDefault
run_idstr—
generationint—
sim_tickint—
sim_time_sfloat—
sequenceint—
captured_monotonic_nsint—
world_revisionint—
catalog_revisionint—
geometry_revisionint—
catalog_content_sha256str—
transform_revisionint—
attachment_revisionint—
world_frame_idstr—
transformstuple[GeometryTransform, ...]—
attachmentstuple[GeometryAttachmentRecord, ...]—
class

GeometryDeltaKind

L1795
class GeometryDeltaKind(StrEnum)
class

GeometryDelta

L1802
class GeometryDelta(object)

Exactly one structural update, transform update, or terminal resync.

FieldTypeDefault
run_idstr—
generationint—
sim_tickint—
sim_time_sfloat—
sequenceint—
captured_monotonic_nsint—
base_sequenceint—
previous_world_revisionint—
world_revisionint—
previous_catalog_revisionint—
catalog_revisionint—
previous_catalog_content_sha256str | None—
catalog_content_sha256str | None—
previous_geometry_revisionint—
geometry_revisionint—
previous_transform_revisionint—
transform_revisionint—
previous_attachment_revisionint—
attachment_revisionint—
world_frame_idstr—
kindGeometryDeltaKind—
upserted_entriestuple[GeometryCatalogEntry, ...]()
removed_geometry_idstuple[str, ...]()
transformstuple[GeometryTransform, ...]()
attachmentstuple[GeometryAttachmentRecord, ...]()
removed_attachment_idstuple[str, ...]()
resync_requiredboolFalse
class

SceneGeometryErrorCode

L1995
class SceneGeometryErrorCode(StrEnum)
class

SceneGeometryError

L2009
class SceneGeometryError(RuntimeError)

Typed bounded failure from ``fastsim.scene.geometry@2``.

function

validate_geometry_resource_binding

L2041
validate_geometry_resource_binding(catalog: GeometryCatalogSnapshot, descriptor: GeometryResourceLeaseDescriptor, capabilities: GeometryCapabilities) -> GeometryCatalogEntry

Validate the exact catalog-to-resolved-resource join before publication. Providers call this after digest verification and before returning a live lease. No field is inferred and no representation fallback is permitted.

function

validate_geometry_projection

L2191
validate_geometry_projection(scene_catalog: object, scene_state: object, frame_catalog: object, geometry_catalog: GeometryCatalogSnapshot, transform_snapshot: GeometryTransformSnapshot, *, frame_transforms: tuple[TransformStamped, ...] | None=None) -> None

Validate one numerically coherent scene/frame/geometry projection. ``frame_transforms`` is the complete set of committed world-to-frame lookup results when arbitrary joint or named frames participate. For the compact base/link-only projection, the same values can be derived exactly from the scene state, which preserves the five-argument validation entry point.

function

validate_geometry_delta_against

L2654
validate_geometry_delta_against(catalog: GeometryCatalogSnapshot, attachments: tuple[GeometryAttachmentRecord, ...], delta: GeometryDelta) -> tuple[tuple[GeometryCatalogEntry, ...], tuple[GeometryAttachmentRecord, ...]]

Apply a delta to compact prior facts and validate resulting closure. This helper does not mutate inputs. It is the provider-side publication gate for relationships that cannot be checked from an isolated delta.

class

GeometryDeltaSubscription

L2740
class GeometryDeltaSubscription(Protocol)
dropped
GeometryDeltaSubscription.dropped(self) -> int
closed
GeometryDeltaSubscription.closed(self) -> bool
get_async
async GeometryDeltaSubscription.get_async(self, timeout: float | None=None) -> GeometryDelta
close
GeometryDeltaSubscription.close(self) -> None
class

SceneGeometryService

L2753
class SceneGeometryService(Protocol)

Capability-scoped collision catalog, resources, transforms, and deltas.

service_id
SceneGeometryService.service_id(self) -> str
capabilities
SceneGeometryService.capabilities(self) -> GeometryCapabilities
catalog
SceneGeometryService.catalog(self, query: GeometryQuery | None=None) -> GeometryCatalogSnapshot
resolve
async SceneGeometryService.resolve(self, geometry_id: str, representation: GeometryRepresentation | str | None=None) -> ResolvedGeometryResource
transforms
SceneGeometryService.transforms(self, query: GeometryQuery | None=None) -> GeometryTransformSnapshot
subscribe
SceneGeometryService.subscribe(self, query: GeometryQuery | None=None, capacity: int=16) -> GeometryDeltaSubscription
class

SceneGeometryBatchService

L2776
class SceneGeometryBatchService(SceneGeometryService, Protocol)

Optional additive batch-resource extension for scene geometry.

resolve_many
async SceneGeometryBatchService.resolve_many(self, geometry_ids: tuple[str, ...] | None=None) -> ResolvedGeometryResourceBatch