Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 2.87 KB

custom-data.md

File metadata and controls

62 lines (50 loc) · 2.87 KB
title order description
By logging custom data
100
How to use Rerun with custom data

Rerun comes with many pre-built Types that you can use out of the box. As long as your own data can be decomposed into Rerun components or can be serialized with Apache Arrow, you can log it directly without needing to recompile Rerun.

For Python we have a helper for this, called AnyValues, allowing you to easily attach custom values to any entity instance:

rr.log(
    "my_entity", rr.AnyValues(
        confidence=[1.2, 3.4, 5.6],
        description="Bla bla bla…",
    ),
)

You can also create your own component by implementing the AsComponents Python protocol or Rust trait, which means implementing the function, as_component_batches().

Remapping to a Rerun archetype

Let's start with a simple example where you have your own point cloud class that is perfectly representable as a Rerun archetype.

@dataclass
class LabeledPoints:
    points: np.ndarray
    labels: List[str])

If you implement as_component_batches() on LabeledPoints, you can pass it directly to rr.log. The simplest possible way is to use the matching Rerun archetype’s as_component_batches method.

import rerun as rr  # pip install rerun-sdk

@dataclass
class LabeledPoints:
    points: np.ndarray
    labels: List[str])

    def as_component_batches(self) -> Iterable[rr.ComponentBatch]:
        return rr.Points3D(positions=self.points,
                           labels=self.labels).as_component_batches()
…
# Somewhere deep in your code
classified = my_points_classifier(…)  # type: LabeledPoints
rr.log("points/classified", classified)

Custom archetypes and components

You can also define and log your own custom archetypes and components completely from user code, without rebuilding Rerun.

In this example we extend the Rerun Points3D archetype with custom confidence and indicator components.

snippet: tutorials/custom_data