vibespatial.overlay.types¶
Shared overlay pipeline data structures.
Extracted from overlay_gpu.py so that multiple modules (overlay_gpu, make_valid_gpu) can import lightweight data structures without pulling in the full overlay pipeline and its CUDA kernel strings.
Phase 8 (vibeSpatial-p23.8): All four overlay data structures are device-primary with lazy host materialization. GPU-only consumers never trigger D->H copies.
Classes¶
Split event table with lazy host materialization. |
|
Atomic edge table with lazy host materialization. |
|
Half-edge graph with device-primary storage and lazy host materialization. |
|
Module Contents¶
- class vibespatial.overlay.types.SplitEventDeviceState¶
- source_segment_ids: vibespatial.cuda._runtime.DeviceArray¶
- packed_keys: vibespatial.cuda._runtime.DeviceArray¶
- t: vibespatial.cuda._runtime.DeviceArray¶
- x: vibespatial.cuda._runtime.DeviceArray¶
- y: vibespatial.cuda._runtime.DeviceArray¶
- source_side: vibespatial.cuda._runtime.DeviceArray | None = None¶
- row_indices: vibespatial.cuda._runtime.DeviceArray | None = None¶
- part_indices: vibespatial.cuda._runtime.DeviceArray | None = None¶
- ring_indices: vibespatial.cuda._runtime.DeviceArray | None = None¶
- class vibespatial.overlay.types.SplitEventTable¶
Split event table with lazy host materialization.
When produced by the GPU pipeline, all arrays live in
device_stateand host numpy arrays are lazily copied on first property access. GPU-only consumers that read onlydevice_state,count,left_segment_count,right_segment_count, andruntime_selectionnever trigger device-to-host copies.- left_segment_count: int¶
- right_segment_count: int¶
- runtime_selection: vibespatial.runtime.RuntimeSelection¶
- device_state: SplitEventDeviceState¶
- property source_segment_ids: numpy.ndarray¶
- property source_side: numpy.ndarray¶
- property row_indices: numpy.ndarray¶
- property part_indices: numpy.ndarray¶
- property ring_indices: numpy.ndarray¶
- property t: numpy.ndarray¶
- property x: numpy.ndarray¶
- property y: numpy.ndarray¶
- property count: int¶
- class vibespatial.overlay.types.AtomicEdgeDeviceState¶
- source_segment_ids: vibespatial.cuda._runtime.DeviceArray¶
- direction: vibespatial.cuda._runtime.DeviceArray¶
- src_x: vibespatial.cuda._runtime.DeviceArray¶
- src_y: vibespatial.cuda._runtime.DeviceArray¶
- dst_x: vibespatial.cuda._runtime.DeviceArray¶
- dst_y: vibespatial.cuda._runtime.DeviceArray¶
- row_indices: vibespatial.cuda._runtime.DeviceArray | None = None¶
- part_indices: vibespatial.cuda._runtime.DeviceArray | None = None¶
- ring_indices: vibespatial.cuda._runtime.DeviceArray | None = None¶
- source_side: vibespatial.cuda._runtime.DeviceArray | None = None¶
- class vibespatial.overlay.types.AtomicEdgeTable¶
Atomic edge table with lazy host materialization.
Host numpy arrays are lazily copied from device_state on first access, matching the HalfEdgeGraph lazy pattern. GPU-only consumers that read only
device_state,count,left_segment_count,right_segment_count, andruntime_selectionnever trigger the device-to-host copies.- left_segment_count: int¶
- right_segment_count: int¶
- runtime_selection: vibespatial.runtime.RuntimeSelection¶
- device_state: AtomicEdgeDeviceState¶
- property source_segment_ids: numpy.ndarray¶
- property source_side: numpy.ndarray¶
- property row_indices: numpy.ndarray¶
- property part_indices: numpy.ndarray¶
- property ring_indices: numpy.ndarray¶
- property direction: numpy.ndarray¶
- property src_x: numpy.ndarray¶
- property src_y: numpy.ndarray¶
- property dst_x: numpy.ndarray¶
- property dst_y: numpy.ndarray¶
- property count: int¶
- class vibespatial.overlay.types.HalfEdgeGraphDeviceState¶
- node_x: vibespatial.cuda._runtime.DeviceArray¶
- node_y: vibespatial.cuda._runtime.DeviceArray¶
- src_node_ids: vibespatial.cuda._runtime.DeviceArray¶
- dst_node_ids: vibespatial.cuda._runtime.DeviceArray¶
- angle: vibespatial.cuda._runtime.DeviceArray¶
- sorted_edge_ids: vibespatial.cuda._runtime.DeviceArray¶
- edge_positions: vibespatial.cuda._runtime.DeviceArray¶
- next_edge_ids: vibespatial.cuda._runtime.DeviceArray¶
- src_x: vibespatial.cuda._runtime.DeviceArray¶
- src_y: vibespatial.cuda._runtime.DeviceArray¶
- source_segment_ids: vibespatial.cuda._runtime.DeviceArray | None = None¶
- source_side: vibespatial.cuda._runtime.DeviceArray | None = None¶
- row_indices: vibespatial.cuda._runtime.DeviceArray | None = None¶
- part_indices: vibespatial.cuda._runtime.DeviceArray | None = None¶
- ring_indices: vibespatial.cuda._runtime.DeviceArray | None = None¶
- direction: vibespatial.cuda._runtime.DeviceArray | None = None¶
- class vibespatial.overlay.types.HalfEdgeGraph¶
Half-edge graph with device-primary storage and lazy host materialization.
All arrays (both topology and per-edge metadata) are stored on device via
device_stateand lazily copied to host on first property access. GPU-only consumers that readdevice_state,edge_count,node_count,left_segment_count,right_segment_count, andruntime_selectionnever trigger device-to-host copies.- left_segment_count: int¶
- right_segment_count: int¶
- runtime_selection: vibespatial.runtime.RuntimeSelection¶
- device_state: HalfEdgeGraphDeviceState¶
- property source_segment_ids: numpy.ndarray¶
- property source_side: numpy.ndarray¶
- property row_indices: numpy.ndarray¶
- property part_indices: numpy.ndarray¶
- property ring_indices: numpy.ndarray¶
- property direction: numpy.ndarray¶
- property src_x: numpy.ndarray¶
- property src_y: numpy.ndarray¶
- property dst_x: numpy.ndarray¶
- property dst_y: numpy.ndarray¶
- property node_x: numpy.ndarray¶
- property node_y: numpy.ndarray¶
- property src_node_ids: numpy.ndarray¶
- property dst_node_ids: numpy.ndarray¶
- property angle: numpy.ndarray¶
- property sorted_edge_ids: numpy.ndarray¶
- property edge_positions: numpy.ndarray¶
- property next_edge_ids: numpy.ndarray¶
- property edge_count: int¶
- property node_count: int¶
- class vibespatial.overlay.types.OverlayFaceDeviceState¶
- face_offsets: vibespatial.cuda._runtime.DeviceArray¶
- face_edge_ids: vibespatial.cuda._runtime.DeviceArray¶
- bounded_mask: vibespatial.cuda._runtime.DeviceArray¶
- signed_area: vibespatial.cuda._runtime.DeviceArray¶
- centroid_x: vibespatial.cuda._runtime.DeviceArray¶
- centroid_y: vibespatial.cuda._runtime.DeviceArray¶
- left_covered: vibespatial.cuda._runtime.DeviceArray¶
- right_covered: vibespatial.cuda._runtime.DeviceArray¶
- class vibespatial.overlay.types.OverlayFaceTable¶
- runtime_selection: vibespatial.runtime.RuntimeSelection¶
- device_state: OverlayFaceDeviceState¶
- property face_offsets: numpy.ndarray¶
- property face_edge_ids: numpy.ndarray¶
- property bounded_mask: numpy.ndarray¶
- property signed_area: numpy.ndarray¶
- property centroid_x: numpy.ndarray¶
- property centroid_y: numpy.ndarray¶
- property left_covered: numpy.ndarray¶
- property right_covered: numpy.ndarray¶
- property face_count: int¶