Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

One Points3D Log, Fully Traced

Execution traceSDK to pixelsRevision 1b998fc
  1. The caller constructs Points3D::new(positions).with_colors(colors) and passes a shared reference to RecordingStream::log.
  2. Generated archetype code exposes SerializedComponentBatch values through AsComponents. Positions and colors are already Arrow arrays with semantic component descriptors.
  3. The stream creates a time-bearing RowId, snapshots thread-local timeline state, builds a PendingRow, and pushes it into a cloneable ChunkBatcher.
  4. A batching thread linearizes commands, groups compatible rows, and emits Arrow-backed Chunk values when time or size thresholds fire. Input and output queues share a configured byte-in-flight budget.
  5. A forwarding thread converts chunks to log messages and hands them to a file, memory, stdout, gRPC, or other dyn LogSink. Transport moves Arrow record batches rather than reconstructing every point.
  6. The receiver validates the chunk and EntityDb inserts it into ChunkStore, updating temporal/component indexes, query caches, entity metadata, and subscribers from the resulting events.
  7. On a viewer frame, the spatial view asks Points3DVisualizer which components it requires. A range/latest-at query returns position chunks and optional colors, radii, labels, and annotations for the selected time.
  8. The visualizer memoizes CPU interpretation, fills point/line builders, and hands draw data to re_renderer, which uploads or reuses GPU resources and records wgpu commands.

The convenient call does not hide a second semantic model. The same component descriptors remain recognizable throughout the pipeline.