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:
Position3DRecommended & 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