Send partial updates over time

Rerun allows you to log only the data that has changed in-between frames (or whatever atomic unit your timeline is using), i.e. you can think of this as a sort of diffs or delta encodings.

This is a natural consequence of how Rerun ingests, stores and finally queries data: Rerun always operates that way, whether you're aware of it or not. Consider this simple snippet:

snippet: archetypes/points3d_simple

Here, only the positions of the points have been specified but, looking at the complete definition for Points3D, we can see that it has quite a few more components available:

Required: Position3D

Recommended & Optional: Radius, Color, Text, ShowLabels, ClassId, KeypointId

All three languages for which we provide logging SDKs (Python, Rust, C++) expose APIs that allow fine-grained control over which components of an archetypes, when, and how.

The best way to learn about these APIs is to see them in action: check out the examples below.

Examples

Update specific properties of a point cloud over time

snippet: archetypes/points3d_partial_updates

Update specific properties of a transform over time

snippet: archetypes/transform3d_partial_updates

Update specific parts of a 3D mesh over time

snippet: archetypes/mesh3d_partial_updates