Skip to main content
The multi-sensor viewer is part of Avala’s visualization workspace. It provides synchronized playback of MCAP and ROS recordings, automatically detects topics in your recording, assigns the appropriate panel type to each one, and builds an optimized layout — so you can go from file upload to visual inspection without any manual configuration.

How It Works

1

Upload an MCAP file

Upload your MCAP or ROS bag file to a dataset. The platform extracts the topic list and schema metadata from the recording.
2

Topics are detected

Each topic is classified by schema type and keyword matching. For example, a sensor_msgs/PointCloud2 topic is identified as 3D point cloud data, while a topic named /camera/front/compressed is identified as an image stream.
3

Panels are assigned

Every detected topic is mapped to one of eight panel types. The viewer selects the panel that best represents the data — image panels for cameras, 3D panels for LiDAR, plot panels for IMU, and so on.
4

Layout is built

The layout engine arranges panels into a three-column layout optimized for the specific combination of topics in your recording. Image panels are arranged in a smart grid, while plots and other secondary data are placed below.
5

Playback is ready

All panels are synchronized to a shared timeline. Navigate frame-by-frame, seek to any timestamp, or play back the full recording.

Panel Types

The viewer supports eight panel types. Each panel is automatically assigned based on the topic’s schema and name.
PanelColorDescriptionExample Topics
ImageGreenCamera image streams (raw and compressed)/camera/front/image, /cam0/compressed
3D / Point CloudBlueLiDAR scans, radar returns, 3D point data/lidar/points, /velodyne/pointcloud
PlotOrangeNumeric time-series data rendered as line charts/imu/data, /vehicle/speed
Raw MessagesGrayStructured message data displayed as key-value pairsAny unrecognized schema
LogBrownTimestamped log entries/rosout, /diagnostics/log
MapCyanGeographic coordinates plotted on a map/gps/fix, /navsat
GaugePinkSingle-value sensor readings with visual indicatorManual assignment only
StatePurpleDiscrete state transitions over time/vehicle/state, /system/mode

Layout System

The viewer uses a three-column layout that adapts to the topics in your recording.

Column Structure

ColumnWidthContent
Left sidebar18%Topics list — browse and toggle individual topics
Center area64%Dynamic panel arrangement based on detected data
Right sidebar18%File selector and recording metadata

Smart Image Grid

When multiple image topics are present, the center area arranges them in an optimized grid:
Image CountLayout
1Single panel, full width
2Side-by-side, equal width
3Two panels on top, one spanning the bottom
4+2x2 grid

Mixed-Type Splitting

When the recording contains both spatial data (images, point clouds) and time-series data (plots, gauges), the center area splits vertically:
  • Top 70% — Image and 3D / Point Cloud panels
  • Bottom 30% — Plot, Gauge, and other secondary panels
This keeps the primary visual data prominent while still displaying supporting sensor streams.

Auto-Detection

The viewer classifies topics using two methods, applied in order.

Schema-Based Detection

When a topic uses a known schema, the viewer assigns the panel type directly:
SchemaPanel
sensor_msgs/Image, sensor_msgs/CompressedImage, foxglove.CompressedImage, foxglove.RawImageImage
sensor_msgs/PointCloud2, foxglove.PointCloud3D / Point Cloud
sensor_msgs/NavSatFixMap
sensor_msgs/ImuPlot

Keyword-Based Detection

When a topic does not match a known schema by exact name, the viewer checks for keywords in the schema name and topic name:
KeywordsMatched againstPanel
image, cameraTopic nameImage
lidar, pointcloud, velodyne, pointsTopic name3D / Point Cloud
log, rosoutSchema or topic nameLog
poseSchema or topic name3D / Point Cloud
transform, odometrySchema name3D / Point Cloud
odom, tfTopic name3D / Point Cloud
imuSchema or topic namePlot
twist, vector3, float, intSchema namePlot
cmd_vel, battery, temperature, sensorTopic namePlot
navsat, gpsSchema or topic nameMap
fixTopic nameMap
stateSchema or topic nameState
If a topic cannot be classified by schema or keyword, it is assigned the Raw Messages panel, which displays the structured message content as key-value pairs.

Synchronized Playback

All panels in the viewer share a single timeline. Playback controls include:
  • Play / Pause — Stream all panels at the recording’s original rate
  • Frame stepping — Advance or rewind one frame at a time across all panels
  • Timestamp seeking — Jump to any point in the recording; all panels update simultaneously
  • Playback speed — Adjust playback rate for slow-motion or fast-forward review
When you seek to a specific timestamp, every panel displays the message closest to that time, maintaining synchronization across sensors with different publishing rates.

Multi-Camera Support

Recordings with multiple camera topics are fully supported:
  • Grid display — All camera streams are arranged in the smart image grid within the center area
  • Calibration-aware projection — When camera intrinsics and extrinsics are present in the recording, LiDAR points can be projected onto camera images for visual verification
  • Independent zoom — Each camera panel can be zoomed and panned independently while maintaining timeline synchronization
Multi-camera projection is one of the most effective ways to verify 3D annotation quality. The camera overlay reveals depth and heading errors that are difficult to spot in the top-down point cloud view alone.

Next Steps