Skip to main content

Foxglove 2.43.0

πŸ—“οΈ Introducing Event Types​

Event Types extend Events with structured schemas for timeline annotations. Instead of free-form key/value metadata, you can define custom properties that standardize how your team captures information during playback.

Define your schema in Settings: Create Event Types with custom properties (text, number, boolean, etc.) and mark properties as required to ensure critical fields are always filled in. You can also see which types and properties are actively in use across your recordings.

Event Types settings page

Improved visualization experience: Events on the playback bar are now colored by their Event Type, and filtering dims non-matching events, so you always know what exists. Edit events in a dedicated sidebar with inline validation, or drag to resize directly on the timeline. Events can have zero duration (instant markers) or span a time range.

Events on the playback bar colored by type

API support: A full REST API is available for managing Event Types and querying typed events. Query events by metadata, typed properties, or both, and create or update typed events programmatically with property validation.

curl -X POST https://api.foxglove.dev/v1/event-types \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FOXGLOVE_API_KEY" \
-d '{ "name": "Hardware Fault", "colorName": "red" }'

πŸ“ Plane Projection for Camera Topics​

You can now project camera images onto a reference plane in the 3D panel. This is especially useful for ground-plane projection, giving you a top-down view of camera data overlaid on your 3D scene. Select a projection frame from available transforms to map the camera output onto that plane.

New & Improved
  • You can now add panels without first creating a layoutβ€”Foxglove will automatically create a default layout for you
  • Linked selection highlights now extend to distorted image panels, showing cube outlines projected through the camera model
  • Property chips in the event table now display human-readable labels, and URL values are clickable links
  • Added a confirmation dialog when deleting user scripts to prevent accidental loss
  • The Diagnostics panel now allows setting a custom title
  • Errors during extension initialization are now displayed in the Problems sidebar
  • Videos in the Image panel now fetch the previous keyframe and show content when paused
Performance
  • Improved depth map point cloud rendering performance
Fixes
  • Fixed ROS 2 bag (db3) playback returning incorrect data when seeking and causing out-of-memory errors
  • Fixed Plot panel autoscaling behavior
  • Fixed State Transitions panel jitter when time window mode is set to Sliding
  • Improved error reporting for unsupported audio codecs in the Audio panel
  • Fixed point clouds losing color information when depth values were invalid (NaN)
  • Fixed the fixed frame selector not showing the root frame when its name is an empty string
  • Fixed desktop app launching twice when clicking "Open in Desktop"
  • Fixed URDF material colors not being applied to OBJ meshes without embedded materials
  • Fixed Plot panel failing to display all data when resetting zoom on some scatter plots
  • Fixed Kannala-Brandt and Fisheye62 distortion models when all distortion coefficients are zero
  • Fixed disabled topics still showing points in the Map panel
  • Fixed Raw Messages panel crash when diffing messages containing BigInt values
  • Fixed Shift+Scroll shortcut in the State Transitions panel to scroll vertically
  • Fixed annotation offset when hardware video decode is disabled
  • Fixed synchronized image annotations appearing in the next frame instead of the current one
  • Improved handling of incomplete deep links in the desktop app

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: Universal | Mac: Universal

Agent v1.4.6

Agent​

This release contains minor improvements.

Changed
  • Improved reconciliation after loss of local database
  • Added detection for multiple agents competing over the same device

Docs: About, Install | Debian Packages: amd64, arm64 | Binary Files: amd64, arm64

Foxglove 2.42.0

🧱 Scrolling Stack Panel Layouts​

The new Stack panel lets you combine multiple panels into a single scrolling vertical layout, making it easier to build focused dashboards without sacrificing screen space. You can stack panels that share similar data or workflows and still keep each panel’s controls and configuration.

This is especially useful when you want to compare many related visualizations in vertical alignment.

🧊 Linked Voxel Selection Across 3D Panels​

Voxel selections in the 3D panel are now synchronized across multiple 3D panels that show the same voxel grids. When you click on a voxel in one panel using the object inspector, the corresponding voxel is highlighted in other linked 3D views.

This makes it easier to inspect the same region of space from multiple viewpoints or with different visualization settings.

Shareable links now support opening multiple remote .bag or .mcap files at once. Simply include multiple ds.url parameters in your link to load several files into a single session.

This makes it easier to share links that combine related recordings without requiring users to open each file separately.

New & Improved
  • Added support for optional scalar fields in Flatbuffer messages so more schemas render correctly by default
  • Added support for required custom properties in the app UI to help enforce important metadata on events and devices
  • Admins can now view failed imports alongside pending imports in settings
  • Improved 3D arrow picking by using stable object IDs for child arrow selection
  • Updated event tooltips to show properties in a clearer, more useful format
  • Added playback controls and current time display for live players
  • Allowed empty annotations while in sync mode, so you can create notes before filling in details
  • Switched many panel topic selectors to autocomplete inputs for quicker topic discovery
Performance
  • Improved Map panel performance with large point overlays
  • Improved scrubbing behavior to keep playback smooth, even over long recordings
API
  • Primary Sites now support custom bucket notifications via direct POST requests with device and project IDs, useful when your storage provider doesn't support push notifications or you want to trigger ingestion from a separate process
Fixes
  • Styled destructive delete menu items with an error color for clearer confirmation before removal
  • Fixed data loaders not being available on all plans
  • Fixed protobuf time values not displaying correctly in the Raw Messages panel
  • Fixed seeking behavior in the Image panel when using topics generated by user scripts
  • Fixed voxel grid positioning issues in the 3D panel
  • Fixed a bug where opening a link in the desktop app would result in an error loading a recording
  • Fixed MessagePathInput incorrectly displaying @norm modifier as invalid in valid cases
  • Displayed clear errors for unsupported depth map image encodings
  • Fixed material library loading for OBJ meshes in the 3D panel
  • Fixed backfill behavior when adding new panels that subscribe to the same topics as existing panels
  • Fixed point cloud projection math for depth-to-point-cloud renderings

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: Universal | Mac: Universal

Foxglove 2.41.1

This release fixes a bug where the Foxglove app would fail to visualize data hosted on Foxglove Data Platform with this error:

Failed to initialize source
both "connectorUrl" and "manifestUrl" are required

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: Universal | Mac: Universal

Foxglove 2.41.0

🎯 Configurable Fixed Frame for 3D Panels​

You can now choose a fixed frame for 3D panels instead of always using the TF root. The fixed frame dropdown controls the coordinate system used for rendering and accumulation, giving you more control over how your 3D data is visualized.

This is particularly useful when working with complex TF trees where you want to use a specific frame as your world reference.

πŸ“Š Depth Images as Point Clouds​

The 3D panel now supports rendering uncompressed depth images as point clouds. This enables visualization of depth camera data directly in 3D space, with configurable depth scale and point size settings.

Depth scale defaults to 0.001 for 8-bit and 16-bit images, and 1.0 for 32-bit images. You can customize this value to match your camera system's depth scale configuration.

πŸ“ @norm Math Modifier for Vector Fields​

A new @norm math modifier lets you plot the norm (magnitude) of 2D or 3D vectors directly using message path syntax. For example, you can use /imu.linear_acceleration.@norm to plot the magnitude of a linear acceleration vector over time.

This eliminates the need to create a user script just to compute vector magnitudes, making it easier to visualize overall vector behavior in your plots.

Share links can now include the ds.eventId parameter when using the foxglove-stream data source. This allows you to create shareable URLs that directly stream data for a specific event without needing to manually specify device ID and time range.

New & Improved
  • 3D panel now shows voxel details in the object inspector when clicking on VoxelGrid objects
  • Image panel now displays RGB values in the tooltip for RGB and BGR images
  • Image panel now includes an option to display raw (distorted) images even when camera calibration is available, useful for wide field of view cameras such as fisheye
  • Improved styling and selection behavior in the event sidebar, including scroll-into-view on selection
  • Shared query field for searching both typed properties and untyped metadata in device events
  • Added event ID filter to device events page for searching specific events by ID
  • Added action buttons to copy and plot vector norm values from the Raw Messages panel
  • Topic message converters can now access and watch global variables from your layout
  • Embed API now supports organization extensions in hosted embed instances
  • Image panel shows a visual indicator when video decoding falls behind playback
  • Table panel now preserves the selected page index during playback
  • Simplified loading states across device, event, and settings tables with unified spinner
Fixes
  • Fixed jerkiness in label size slider by removing precision constraint
  • Restored refresh hotkey functionality on desktop
  • Fixed issue with state charts and user scripts on live data sources
  • Fixed handling of flatbuffer messages in AudioPanel waveform renderer
  • GeoJSON tooltips in the Map panel now follow the mouse cursor for better visibility
  • Fixed support for empty string frame IDs in the 3D panel

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: Universal | Mac: Universal