Rewire
Custom Mappings

Examples

Example custom mapping configurations.

Motor telemetry

Log motor status as scalar time series and text logs:

[
  {
    type: "my_robot/MotorStatus",
    entity: "motor",
    fields: {
      temperature: { archetype: "Scalars" },
      rpm: { archetype: "Scalars" },
      current: { archetype: "Scalars" },
      status_text: { archetype: "TextLog" },
    }
  },
]

3D detections from a custom message

Expand an array of detections into Rerun Points3D:

[
  {
    type: "my_robot/Detections",
    fields: {
      detections: {
        archetype: "Points3D",
        each: ".",
        x: "position.x",
        y: "position.y",
        z: "position.z",
        label: "class",
      },
    }
  },
]

Nested sensor data

Recurse into nested sub-messages and log individual fields:

[
  {
    type: "my_robot/SensorPack",
    entity: "sensors",
    fields: {
      imu: {
        fields: {
          accel_x: { archetype: "Scalars" },
          accel_y: { archetype: "Scalars" },
          accel_z: { archetype: "Scalars" },
          gyro_x: { archetype: "Scalars" },
          gyro_y: { archetype: "Scalars" },
          gyro_z: { archetype: "Scalars" },
        }
      },
      gps: {
        archetype: "GeoPoints",
        lat: "latitude",
        lon: "longitude",
        alt: "altitude",
      },
    }
  },
]

Bounding boxes from a vision pipeline

Map 2D detection results to Boxes2D:

[
  {
    type: "my_robot/BoundingBoxes",
    fields: {
      boxes: {
        archetype: "Boxes2D",
        each: ".",
        x: "center_x",
        y: "center_y",
        w: "width",
        h: "height",
        label: "class_name",
      },
    }
  },
]

Combining with built-in types

Custom mappings are additive — they work alongside the 74 built-in type mappings. If a topic's type has both a built-in converter and a custom mapping, the custom mapping takes precedence.

On this page

Last updated on August 26, 2026

© 2026 Rewire