Skip to content

Low-level logging APIs cannot splat #4742

@teh-cmc

Description

@teh-cmc

The following will not do what you'd expect, since it doesn't know that the main component has multiple instances:

import rerun as rr

rr.init("rerun_example_points3d_simple", spawn=True)

rr.set_time_sequence("frame", 1)
rr.log("points", rr.Points3D([[0, 0, 0], [1, 1, 1]]))

# This will only color `point[0]`.
rr.set_time_sequence("frame", 2)
rr.log_components("points", [rr.components.ColorBatch([0xFF0000FF])])

Worse, there's no public way to explicitly indicate that we want it to splat.

The only way is to go through multiple layers of private APIs:

rr.log_components("points", [rr.components.ColorBatch([0xFF0000FF]), rr._log._splat()])

and even then, the above does not work, you need to recast it some more for some reason:

rr.log_components("points", [rr.components.ColorBatch([0xFF0000FF]), rr.components.InstanceKeyBatch(rr._log._splat())])

that works.

This would be solved by the "clamp-to-last" data model that we've talked about in Stockholm (for which I still need to write an issue at some point...).

Metadata

Metadata

Assignees

Labels

🪳 bugSomething isn't working🪵 Log & send APIsAffects the user-facing API for all languages

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions