Custom Mappings
Archetypes
Available Rerun archetypes for custom message mappings.
Leaf archetypes
Simple one-to-one field mappings:
| Archetype | Description | Field type |
|---|---|---|
Scalars | Numeric time series | Any numeric field |
TextLog | Log entry with severity | String field |
TextDocument | Rich text display | String field |
{
temperature: { archetype: "Scalars" },
message: { archetype: "TextLog" },
description: { archetype: "TextDocument" },
}Composite archetypes
Map multiple sub-fields to a single Rerun archetype:
| Archetype | Required fields | Optional fields |
|---|---|---|
Points2D | x, y | label, color |
Points3D | x, y, z | label, color |
Boxes2D | x, y, w, h | label |
Boxes3D | x, y, z, w, h, d | label |
InstancePoses3D | x, y, z | qx, qy, qz, qw |
Arrows3D | ox, oy, oz, dx, dy, dz | — |
GeoPoints | lat, lon | alt |
Transform3D | x, y, z | qx, qy, qz, qw |
LineStrips3D | points | — |
{
position: {
archetype: "Points3D",
x: "x", y: "y", z: "z",
label: "name",
},
}Array expansion
Use each to iterate over arrays and log each element:
{
detections: {
archetype: "Points3D",
each: ".",
x: "position.x", y: "position.y", z: "position.z",
label: "class",
},
}The each field specifies the path to the array. Use "." when the field itself is the array.
Each element is logged individually.
Nested fields
Recurse into sub-messages:
{
position: {
fields: {
x: { archetype: "Scalars" },
y: { archetype: "Scalars" },
z: { archetype: "Scalars" },
}
},
}Entity keys
Use dot notation to access nested fields:
{
target: {
archetype: "Points3D",
x: "pose.position.x",
y: "pose.position.y",
z: "pose.position.z",
},
}