Rewire
Custom Mappings

Archetypes

Available Rerun archetypes for custom message mappings.

Leaf archetypes

Simple one-to-one field mappings:

ArchetypeDescriptionField type
ScalarsNumeric time seriesAny numeric field
TextLogLog entry with severityString field
TextDocumentRich text displayString field
{
  temperature: { archetype: "Scalars" },
  message: { archetype: "TextLog" },
  description: { archetype: "TextDocument" },
}

Composite archetypes

Map multiple sub-fields to a single Rerun archetype:

ArchetypeRequired fieldsOptional fields
Points2Dx, ylabel, color
Points3Dx, y, zlabel, color
Boxes2Dx, y, w, hlabel
Boxes3Dx, y, z, w, h, dlabel
InstancePoses3Dx, y, zqx, qy, qz, qw
Arrows3Dox, oy, oz, dx, dy, dz—
GeoPointslat, lonalt
Transform3Dx, y, zqx, qy, qz, qw
LineStrips3Dpoints—
{
  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",
  },
}

On this page

Last updated on August 26, 2026

© 2026 Rewire