Skip to main content
The 3D Viewer renders robotics scenes using the GPU via wgpu (Vulkan, Metal, DX12). It works with three data sources:
  • Live simulation — models, joint states, and sensor data streamed from a running Gazebo environment
  • MCAP recordings — play back previously recorded sessions with synchronized scrubbing across all panels
  • ULog flight logs — PX4 flight data rendered as interpolated 3D pose with attitude and position channels

Camera Controls

Orbit

Left-click and drag to orbit around the focal point.

Zoom

Right-click and drag (or scroll wheel) to zoom in and out.

Pan

Middle-click and drag to pan the camera laterally.
Camera presets are available from the viewer toolbar:
  • Front / Side / Top — axis-aligned orthographic views
  • Isometric — 45-degree perspective for general inspection

Key Capabilities

The viewer loads URDF and SDF models directly from the simulation or from local files. Meshes, materials, and collision geometries are rendered with correct transforms from the scene graph.
Joint states from live simulations or recorded files are applied to the model. Watch articulated robots move as the controller runs, or scrub through MCAP recordings to inspect motion frame by frame.
Lidar and depth sensor data can be displayed as point clouds with configurable color modes (intensity, height, range). Useful for verifying sensor coverage and obstacle detection.
Toggle coordinate frame axes to visualize the TF tree. Each frame is drawn at its resolved position and orientation, making it straightforward to debug transform chains between sensors, joints, and the world frame.

ULog Pose Rendering

When you open a ULog file, the 3D viewer reconstructs the vehicle’s pose from position and attitude channels using binary search and linear interpolation. As you scrub the timeline, the vehicle moves through 3D space in sync with the telemetry plots, GPS map, and log view. This works without a model file — Substrate renders the pose using the default vehicle mesh.

Entity Selection

Click any entity in the scene to select it. The selection is highlighted with an outline, and the Entity Inspector panel opens automatically to show the selected object’s properties, pose, and metadata.

Split Views

Open multiple 3D Viewer instances in split panes to observe the same scene from different angles simultaneously. Each viewer maintains independent camera state.
Use the Top camera preset in a secondary viewer while keeping your main viewer in free orbit. This gives you a map-like overview alongside a detailed perspective.
Rendering performance depends on your GPU. Integrated graphics will work for simple scenes, but dedicated GPUs are recommended for complex environments with multiple robots and dense point clouds.