Skip to main content

204 posts tagged with "Foxglove"

Release notes for the Foxglove web and desktop app.

View All Tags

Foxglove 2.22.0

⏲️ Efficient loading of time-range data

In order to improve app stability and memory efficiency, we’ve completely overhauled how data is handled for panels that request all messages for a topic across the entire time range (for example, Plots, State transitions, and Maps showing location history).

Instead of indefinitely caching all deserialized messages, Foxglove now loads data in small chunks and caches only a sub-set of serialized data. This greatly reduces heap memory usage while still allowing fast re-reads. As a result, panels can display larger datasets without exhausting memory resources.

No user action is required—just enjoy smoother performance when working with range-loaded data. Learn more about range loading in the extension API docs.

🔓 Custom OIDC configurations

Whether you use Okta, Microsoft Entra, Rippling, or another Open ID Connect (OIDC) compliant solution, you can now federate with Foxglove and centrally manage user access—right from your existing identity management system.

Read our docs to learn more about federating with your OIDC provider. This feature requires an Enterprise plan.

🧊 3D Panel enhancements

We've made multiple improvements to the 3D panel to make it easier to navigate and inspect objects in your scene. The full list of 3D panel shortcuts is available in the 3D panel docs.

Recenter 3D panel

The 3D panel now has a button to reset the camera position to the origin of the display frame. This can also be accessed using the 1 keyboard shortcut.

Recenter 3D panel

3D panel crosshairs

The 3D panel now shows crosshairs while moving the camera to indicate the center of rotation/zoom. The crosshairs display when the camera is moving and disappear when the camera is still.

3D panel crosshairs

Vertical panning

You can now pan the 3D panel in the camera plane by holding option/alt and dragging the mouse. By default, panning moves the camera parallel to the z=0 plane.

Object inspector short-cut

Quickly enable and disable a 3D panel's object inspector using the a keyboard shortcut: i.

Check out the recording of our recent live demo to learn how the object inspector can be used with global variables to create plots and user scripts that react and update based on your interactions.

Object Inspector

📈 Plot panel enhancements

In addition to the 3D panel, we're also busy making the Plot panel more intuitive and powerful.

Independent x-axis values for plot series

You can now set the x-axis values independently for each series in path-based (XY) plots. This means you can plot multiple series on the same plot, for example [x1, y1] and [x2, y2] where each of x1, y1, x2, and y2 are separate message fields.

XY Paths

Axis labels for Plots and State Transitions

You can now set custom axis labels for Plots and State Transitions panels to make your State Transitions and Plots easier to understand.

Axis Labels

New & Improved
  • Added more informative error messages when a User Script attempts to return an array
  • Added the ability to show/hide all layers on the Map panel
  • The axis and cursor for vertically stacked state transition and plot panels now always line up
  • Adjusted the position of State Transitions panel and Plot panel tooltips to minimize obscuring data
  • The State Transitions panel tooltip now displays the color of the state transition
  • Occupancy grids can now be drawn behind all other scene entities
  • URDF error messages now point to the specific link/joint causing the issue
  • The Image panel now supports schema type selection when multiple schemas are available via message converters for the selected image topic
Performance
  • Performance improvements for populating new data into a layout
  • Improved the performance of the /data/topics endpoint when querying by deviceId or deviceName
  • Minor performance improvements for local files or cloud data sources
Fixes
  • Fixed an issue causing the Recordings page to lag when filtering by recording name
  • Fixed an issue where Plot panel values were not shown in the legend during playback
  • Fixed an issue with a tooltip blocking the playback speed controls during visualization
  • Fixed an issue where the enum labels were not populated in the Raw Messages panel when they were the only fields in a message path
  • Fixed an issue where undefined or 0: undefined instead of the correct empty state in a Raw Messages panel
  • Fixed an issue where searching for topics in the download dialog would clear the selection
  • Fixed an issue where clicking retry on a quarantined pending import would fail with a 409 error
  • Fixed an issue where disconnecting from a network while preloading data would cause an app error
  • Fixed rendering artifacts in Plot panel lines at certain zoom levels
  • Fixed an issue where changing the sort order for the "time" column on the events page would only sort the visible events rather than using the API to fetch the sorted events
  • Fixed an issue where the raw message panel would show the message path as red when you select the topic from the dropdown
  • Fixed an issue where video playback could get stuck if the decoding encountered delays
  • Fixed an issue where annotations were being rendered before images causing ghosting in quick moving video
  • Fixed an issue where no error message was shown when URDF assets (meshes) failed to load
  • Fixed occasional postMessage errors for video topics

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

Foxglove 2.21.0

🔬 Inspect Message Converter transforms

You can now use the Raw Messages panel to view the message converters for a topic's schema and inspect how the messages are transformed. Select the schema name dropdown and choose a target schema to view the output.

🎯 Filter by parameter name

The Parameters panel now supports filtering by parameter name.

New & Improved
  • Added the ability to double click to rename a tab in the tab panel
  • Clicking "View in timeline" from a visualized data set now filters the timeline to only show the device associated with that data set
  • The app now supports JSON Schemas that use nullable types of the form ["null", "string"]
Performance
  • Preloaded data now loads faster when switching between tabs or duplicating plots
  • General performance improvements
API
  • The /v1/events and /v1/events/{id} APIs now always provide the device ID and device object in the response
Fixes
  • Fixed an issue preventing the Raw Messages panel from displaying enums for single values
  • Fixed an issue causing nanosecond precision loss in certain cases
  • Fixed an issue where message path fields would lose focus after using autocomplete
  • Fixed deserialization errors caused by conflicting schemas for the same topic
  • Fixed the Plot panel's x-axis handling for purely negative values
  • Fixed an issue where markers would not expire in the Image panel
  • Fixed an issue where message converters were not running for the Map panel's "all" history mode

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

Foxglove 2.20.0

↔️ Expand or trim the visualized time-range

You can now expand or trim the range of data visualized in Foxglove. Click the "adjust playback range" button in the lower left of the screen when replaying a recording or time-range of data.

Adjust range button

With these updates you can:

  • Drag the handles on the playback bar for quick adjustments
  • Enter specific times into the dialog for precise adjustments
  • Copy a link to share the updated time-range selection with your team

🔎 Improved topic search and exploration

When searching through the topics sidebar, you can now use search to narrow down to a topic and then expand it to view the fields that exist in that topic's message schema.

🚅 Better, faster Log panel

The Log panel has been rewritten for improved performance. The new panel shows indicators in the scrollbar to make it easier to find warning & error messages.

You can now copy links to recordings directly from the recording details page. This lets you easily copy links from the desktop app to share notable recordings with colleagues.

Recording details page

New & Improved
  • Extension panels will now display an alert when memory use limit is met for preloaded messages
  • The Image panel now uses a "frame lock" which ensures the image coordinate frame uses the image timestamp rather than the current time
  • Hide URDF link frames by default for better usability
  • Improved handling of topics that contain multiple conflicting schema definitions
  • Added an alert when the timestamps of the X and Y values in an XY (path based) plot do not match
Performance
  • Performance improvements for loading extensions
  • Improved the performance of scrubbing through a recording
  • Improved performance of the app while the settings sidebar is open
  • Performance improvements to the rotate() User Script utility function
Fixes
  • User Scripts output topics now have a Publish time, if available from the input topic
  • User Script's rotate() utility function now follows standard quaternion conventions
  • Fixed an issue where topic markers would flicker when on top of each other
  • Fixed an issue where scrolling in the Log panel would cause the selected lines to change
  • Fixed an issue where plots would not load correctly when switching layout tabs
  • Fixed an issue with the range calculation when plotting live data in index mode
  • Fixed an issue with rendering of enums/constant labels when the data is from an array of values
  • Fixed an issue with the formatting of auto-generated request messages in the Service Call panel
  • Fixed an issue with selecting image annotations
  • Fixed an issue where User Scripts hover overlays would not stay open when mousing over them
  • Fixed an issue with default array values when calling ROS 2 services
  • Fixed an issue preventing the User Scripts' problems list from scrolling
  • Fixed an issue where Events would continue to display in the playback bar after switching from cloud data to a local file
  • Fixed an issue when importing JSON Schema definitions with null properties
  • Fixed an issue that could crash the 3D and Image panels when visualizing corrupted text data
  • Fixed an issue where the 3D panel grid would occasionally flicker
  • Fixed an issue preventing of unindexed MCAPs with empty chunks from loading
  • Fixed an issue causing the Raw Message panel to display stale and data when using a path with global variables and changing the value of the global variable in the path
  • Fixed a performance regression with the State Transitions panel
  • Fixed an issue where the desktop app would not allow you to right-click and download an image from the Image panel
  • Fixed an issue where the 3D panel's grid color could shift at a distance
  • Fixed an issue where recordings with timestamps prior to Jan 1 2000 didn't appear in the Timeline view
  • Fixed an issue where the 3D panel's camera would rotate when switching from follow to other modes
  • Fixed an issue causing URDFs to be shown despite visibility being set to false

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

Foxglove 2.19.0

🎬 Support for H265, AV1, and VP9 video codecs

Foxglove now supports H.265, AV1, and VP9 video codecs in the Image and 3D panels. This is in addition to the existing support for H.264.

See the CompressedVideo schema documentation for details on how to encode video messages in MCAP and codec specific information. An example utility for writing MP4 video files to MCAP is available here.

warning

Compressed video support is subject to hardware limitations and patent licensing, so not all encodings are supported on all platforms. See more about H.265 support, VP9 support, and AV1 support.

≥ New comparison operators supported in message paths

We've added support for !=, <, <=, >, and >= operators when using filters in message paths. This is in addition to the existing == operator. This means you can now execute more advanced filters on your data such as:

/markers/annotations.markers[:]{id<5000}{id>1000}.id

This would return annotation markers with ids between 1000 and 5000, exclusive.

🖥️ Quick access fullscreen

We've made it easy to quickly enter a panel's fullscreen mode with one click. Select the ⛶ icon in the top right corner of a panel to enter fullscreen mode.

New & Improved
  • Clicking left of the start in the Plot or State Transitions panel now sets playback to the start of the timerange
  • Read-only number inputs in settings no longer show increment and decrement buttons
  • The default flat color for points in Point Cloud and Laser Scan visualizations is now visible in both light and dark mode
  • The desktop app now uses native window controls in Linux to better match the system theme
  • Improved error reporting and recovery when receiving malformed data from WebSocket server implementations
  • Updated app settings to use the term "log time" instead of "receive time"—in line with MCAP terminology
  • Improved usability of the 3D panel's click-to-publish tool and settings
  • It's now possible to hide individual URDF links in the 3D panel
  • The display of joint information in the 3D panel has been simplified
  • It's now easier to set manual joint states for a URDF when no transforms are provided by the data source
  • URDF frame axis can now be toggled and scaled independently of the transform settings
  • Foxglove now surfaces an error if the data source does not provide all transforms for a URDF
  • Added support for floating-point numbers in message path filters with various common formats such as 0.5, -4.28e-5, .3333, +22.
Performance
  • Improved the performance of plot series loading
  • Improved pending imports table performance
  • Improved the performance of the Timezone selector UI
  • Various performance improvements
Fixes
  • Fixed a bug with the transparency of occupancy grids which occasionally caused rendering irregularities
  • Fixed a bug where dragging images outside the panel would highlight text
  • Fixed a bug causing values in the Plot panel tooltip to shift while panning
  • Fixed a bug causing flickering of the 'current time' bar in the Plot panel during live playback
  • Fixed a bug where ROS 2 messages containing only constants were not correctly serialized/deserialized
  • Fixed a bug where LaserScan visualization defaults appeared incorrectly in the settings panel
  • Fixed a bug preventing drag & dropped files from appearing in recents
  • Fixed a bug causing indexed-based plots to flicker
  • "Plot this value..." from the Raw Message panel will now check for a Plot panel with a compatible configuration
  • Fixed a bug allowing an invalid option "distance (auto)" to be selected in LaserScan color settings
  • Fixed a bug where map layer attribution would cover the map scale
  • Fixed a bug where switching between layouts would occasionally cause URDFs to load incorrectly
  • Fixed a bug where adding a URDF in one panel could affect the displayed transforms in another panel
  • Minor UI fixes

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

Foxglove 2.18.0

⏯️ Require approval for new users

Enterprise organization admins can now require approval for new users. When enabled, users with an email from your domain can request to join your Foxglove organization. As an admin, you will receive an email notification and can approve or deny the request. Requesting users will not have access or be billed unless approved. Configure approval flows under Organization Settings > General.

Approval flow settings

New & Improved
  • Numeric inputs in panel settings now provide feedback when a value is out of range or will be rounded
  • The Problems sidebar now shows the full error title when expanding an error
  • Entries in the State Transitions panel now render beyond the min and max axis ticks for clarity
Performance
  • Improved the display behavior of items under "Recently Viewed" for slower connections
  • Improved the stability of high-throughput WebSocket connections
Fixes
  • The layout menu now closes after creating a new layout
  • The export recording dialog now closes after downloading a file
  • Fixed a bug causing User Scripts to generate duplicate messages when pausing and resuming playback on a message's exact timestamp
  • Fixed a bug where menu item text would sometimes be highlighted when clicking on the item
  • Double-clicking the State Transitions button in the Raw Messages panel now only creates a single entry
  • Fixed a bug where messages with multiple instances in PX4 Ulog files would be merged into a single topic
  • Fixed a bug causing the x-axis indicator to drift while zooming or playing back in the Plot and State Transitions panels
  • Fixed a bug causing the player to unpause if using the arrow keys to seek forward then immediately backward
  • Double clicking an .mcap or .bag file will once again open it in a new window rather than a previous window

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

Foxglove 2.17.0

🛍️ Multi-file playback

We've added support for playback of multiple local files at once. With this update, you can select Open local file(s) from Foxglove, select multiple items from your file system, and immediately view the combined data.

The playback experience is the same as uploading multiple files to Foxglove data management or merging them locally using the mcap merge CLI command. For consecutive recording files (recorded one after another), you can now play from start to end through both files. For overlapping files, you'll see topics from all files and play through the messages in log_time order. Transforms must all belong to the same transform tree and all messages on the same topic must have the same schema.

📂 Organize layouts with folders

You can now create folders to organize your personal and shared layouts. Organize your team's layouts and keep them tidy by clicking the ⋮ menu next to any layout to add it to a folder.

📈 Plot & State Transitions using Publish Time

You can now create time-series plots and state transitions using message publish_time in addition to the default log_time (occasionally refered to as receive time) and optional header.stamp fields.

🧘 Simplify Plot CSV output

We've simplified the CSV output when exporting data from the Plot panel. Right-click the top bar of any plot and select Download plot data as CSV. The output will now contain a single timestamp column, making it easier to work with.

For time-based plots, the value will be the timestamp selected for that series in the panel settings. For index-based and custom x-axis plots, the value will be the log_time of the message.

Plot CSV export

📋 Easily copy logs

We added a button to copy the logs you're currently looking at in the Log panel to the clipboard. We love the little things that make your day-to-day workflow faster and easier.

Copy logs

New & Improved
Performance
  • Improved performance when resizing panels
Fixes
  • Fixed a bug where reloading the desktop app would not retain the current connection information
  • Fixed a bug that would occasionally occur when reconnecting to a WebSocket
  • Fixed a bug preventing the 3D panel's Open in raw message action from handling topic names with spaces
  • Fixed a bug preventing message converters from running on Transform messages
  • Fixed a bug preventing User Script log() output from correctly rendering true Boolean values
  • Fixed a bug that stripped whitespace from layout names
  • Fixed a bug where files with many MCAP attachments may fail to import
  • Added missing support for inputting numeric timezone offsets in the playback time input
  • Fixed a bug causing panels to crash when receiving CompressedVideo messages without timestamps
  • Fixed a bug causing the camera to jump when moving the camera after going from Fixed to Follow pose mode
API

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