Added 
Added animation effect when panels enter or exit fullscreen mode 
 
Changed 
Cleaned up extension styling in the app sidebar 
Surfaced an error in the settings sidebar when the Plot panel's "Y min" is greater than its "Y max" 
 
Fixed 
Fixed handling of Protobuf messages containing google.protobuf.Timestamp and google.protobuf.Duration 
Fixed an incorrect error message when an MCAP file contains messages that can't be decoded 
Fixed the 3D panel's pose tool to publish a pose based on the user's first click (start of pose arrow), rather than the second (end of pose arrow) 
 
Downloads 
Changed 
Removed the default folder and file Icons in the settings sidebar 
 
Fixed 
Fixed the issue of redundant toolbars on extension panels 
Fixed y-axis min and max settings for the Plot panel 
Fixed a crash when trying to edit Teleop panel settings 
 
Downloads 
Changed 
Moved the Image panel's topic and marker selection into the settings sidebar 
Refactored panels to have a persistent toolbar with consistent height 
Changed the settings sidebar to display field-level errors 
Renamed the Diagnostics – Summary and Diagnostics – Detail panels to reflect that they are ROS-specific 
Removed the Studio – Internals panel 
 
Fixed 
Hovering over buttons with tooltips properly displays the tooltip, without the button title 
Fixed support for ROS 2 rcl_interfaces/msg/Log messages in the Log panel 
 
Downloads 
Added 
Add Custom map tile layer option to Map panel 
Add new message expansion options in the Raw Messages panel 
 
Changed 
Updated Tab panel tabs to look more like tabs 
Moved ordering messages by header.stamp for playback behind an experimental flag 
 
Fixed 
Fixed panel dragging 
Fixed sample data source creating many duplicate layouts 
 
Downloads 
Added 
Added support for rgba color values in the panel settings sidebar 
Added ability to toggle the visibility of nodes in the panel settings sidebar 
Added a 2-point gradient color picker to the panel settings sidebar 
 
Changed 
Formatted the x-axis tick marks in the Plot panel for consistency, to reduce jitter for live-updating data 
Replaced the inline help buttons on panel settings fields with tooltips 
Adjusted light mode background color hierarchy to be more consistent with dark mode styles 
Moved the Rosbridge connection option to the top of the list in the Data source dialog 
Moved the actions buttons in the panel settings sidebar into an action menu 
Improved the link-sharing experience by always attempting to remotely load a URL’s layoutId from a signed in user’s account 
 
Fixed 
Fixed app from freezing when seeking to the end of a dataset time range 
Fixed panels so that they no longer flash to an empty state when seeking or scrubbing 
Fixed ROS 2 native subscriptions to large message topics 
Fixed a bug where ROS 1 C++ subscribers were unable to connect to topics published by the app 
Fixed a CameraInfo error in the Image panel when the “Transform markers” setting is enabled 
 
Downloads 
Changed 
Converted Plot panel settings to the new settings sidebar 
Converted 3D panel to new settings sidebar 
Printed datatype along with topic in errors for ROS2 connections 
Improved message path autocomplete suggestions 
Showed panel settings for single panel layouts when opening the settings sidebar 
 
Fixed 
Fixed settings toggle interaction 
Fixed Foxglove publishing for ROS1 C++ subscribers 
Fixed the docs link in the open dialog 
Fixed a crash when trying to visualize a ROS2 topic with a missing message definition 
Fixed handling of the layoutId URL query param 
Improved React rendering performance 
 
Downloads 
Added 
Display message counts and frequencies for live data sources' subscribed topics in the Data source sidebar 
Implemented a new settings interface for the Map panel 
Implemented a new settings interface for the Image panel 
Implemented a new settings interface for the Publish panel 
Implemented a new settings interface for the Variable Slider panel 
Implemented a new settings interface for the Diagnostics – Summary panel 
Implemented a new settings interface for the Node Playground panel 
Implemented a new settings interface for the 3D panel’s camera settings 
 
Changed 
Allow users to name their nodes in the Node Playground panel without a /studio_node/ prefix 
Display useful errors for invalid URL formats under the relevant field in the Data source dialog 
Improved bag player to backfill the last message on every topic on seek 
 
Fixed 
Support NaN and Infinity rosparam values when using a native ROS 1 connection 
Keep the user’s cursor in the proper location while editing node names in the Node Playground panel 
Fixed an issue where creating too many layouts caused the web app to run out of storage space 
Fixed an issue where errors while loading Foxglove data could lead to the app repeatedly requesting the same data 
Fixed the missing marker images in the GeoJSON layers on the Map panel 
 
Downloads 
Added 
Added the concept of optional fields to Foxglove datatype definitions 
Allow users to load URDF files using .obj meshes into the URDF panel 
 
Changed 
Respect the URL's layoutId query parameter in the web app, even if no other parameters are specified 
Persist app state across refreshes in the desktop app 
 
Fixed 
Fixed an issue with the spacebar adding unwanted panels 
Fixed an issue with the Plot panel auto-scaling on the y-axis 
Fixed an issue with the Topic Graph panel on startup with a rosbridge connection 
Fixed a bug where the panel settings menu would close when the Log panel received a new message and scrolled to display it 
Fixed an issue with stale messages being shown in the Raw Messages panel 
Fixed a bug where seeking in large files would occasionally crash 
Fixed an issue with content in the Data source dialog overflowing 
Ensure the panel settings menu is always displayed for built-in and extension panels, even when there are currently no settings available 
Fixed URL state encoding for ROS 1 and ROS 2 players in the web app 
 
Downloads 
Added 
Added links for contacting Foxglove and scheduling a demo to the Data source dialog 
Added basic support for foxglove.Grid, foxglove.PointCloud, and foxglove.LaserScan messages to the 3D and Node Playground panels, for users with MCAP files or Foxglove WebSocket data sources 
 
Changed 
Allow users to set ROS_PACKAGE_PATH to the root of their workspace so Foxglove can traverse all subdirectories when resolving package:// urls 
 
Fixed 
Fixed a jumping dropdown menu in the Diagnostic panels 
Fixed publishing to roscpp subscribers 
 
Downloads 
Added 
Added support for best-effort QoS mode for ROS 2 topics (sensor_data mode); added support for VLS-128 LIDAR sensors in the Velodyne data source 
Added support for the /clock topic in ROS 2 data sources; populated MessageEvent.publishTime for ROS 2 and MCAP data sources 
Allow extensions to access MessageEvent.publishTime for ROS 2 and MCAP data sources 
Properly detect COLLADA (.dae) mesh markers in the 3D panel if the Content-Type header or data: URL MIME type is set to "model/vnd.collada+xml" 
 
Changed 
Moved information inside the Data Source Info panel into the Data source sidebar once connection is live 
Display a topic warning when nav_msgs/Path poses have different frame_ids in the 3D panel 
Simplified platform-specific app setup so that users only need one App component via @foxglove/studio-base 
 
Fixed 
Fixed a bug with calibration data for VLS-128 LIDAR sensors in the 3D panel 
Fixed an issue with calculating start and end times in Foxglove player 
Fixed a bug where enum fields in Protobuf schemas were not usable via message path syntax 
Fixed ROS 2 native subscriptions to multiple publishers with different QoS profiles 
 
Downloads