Skip to main content

SDK v0.10.0

Foxglove SDK

This release contains fixes and general improvements. It also contains potentially breaking changes:

  • If you implement a Parameter server, any "numeric" ParameterValues should be updated to float64s or integers, to improve integration with the Foxglove app
  • In C++, if you use subscription callbacks, an additional argument with client metadata is added to the interface
  • In C++, the Timestamp and Duration schemas moved from the foxglove namespace to foxglove::schemas

What's Changed

Fixed
  • Fixed a race where the subscription callback is called before channel is registered with a context

C++

  • Fixed a template type issue with GCC
  • expected.hpp uses the original tl namespace
Changed
  • Deleted/non-existent parameters are no longer sent to clients
  • The numeric Parameter type was replaced by float and integer types

C++

  • Moved Timestamp and Duration to the foxglove::schemas namespace
Added

Python

  • Add session_id option to start_server

C++

  • Client information is now included in the subscribe/unsubscribe callbacks for WebSocket servers

Docs: Introduction | Reference: Rust, Python, C++ | Source: github | C++ Artifacts: github

Foxglove 2.31.2

This release contains minor bug fixes.

Fixes
  • Fixed an issue where some preloaded messages were not visualized when multiple publishers used the same topic
  • Fixed an issue that caused the app to reload every few minutes under certain conditions

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

Foxglove 2.31.1

🛗 Elevation support for Foxglove Grid messages

It's now possible to visualize 2.5D data using Foxglove.Grid messages by setting the Elevation field in the 3D panel.

🎨 RGBA support for Grid Maps

Similar to Foxglove.Grid messages, GridMap layers now support multiple color channels for colorization. When you select a layer, it will iterate through the color channels and display them accordingly in the texture.

oldnew
RGRG
Grid Map red green channels in back and whiteGrid Map red green channels
RGBRGB
Grid Map red green blue channels in back and whiteGrid Map red green blue channels
RGBARGBA
Grid Map red green blue alpha channels in back and whiteGrid Map red green blue alpha channels

🧊 Voxel visualization

You can now use the 3D panel to display voxels as a 3D volumetric grid via costmap_2d/VoxelGrid messages. Voxels can represent occupancy, cost, semantic information, and many other types of data.

🎢 Improved extension developer experience

When developing local extensions that overlap with organization extensions, you can now view and select which one you want to be active from your User Extensions settings.

New & Improved
  • Added tool tips to layout names in the layout menu
  • Ensured rotation shortcuts are consistent between web and desktop
  • Renamed the Team settings page to Members
  • Improved color support in the Map panel for GeoJSON styles
Performance
  • Reduced memory usage of the Plot panel when in timeseries mode
  • General app stability improvements
Fixes
  • Fixed a bug where clicking a tab in a tab panel would prevent shortcuts from working
  • Fixed interpolation mode selection for Foxglove Grids when using elevation
  • Fixed an issue that caused a small number of recordings to be absent from the timeline view
  • Fixed a bug where useful error messages were not displayed during sign in

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

Agent v1.4.3

Agent

This release contains several improvements and bugfixes.

New and Improved
  • Switched to WAL journal mode for sqlite database, which should improve performance.
  • Gracefully cancel pending uploads in response to shutdown signals.
Fixed
  • Fixed a bug where the agent would report "database locked" errors due to disk contention.
  • Fixed a bug where the agent would not respond to shutdown signals in a timely fashion.
  • Fixed a bug where the agent would not retry failed uploads for recordings selected by the WATCH_AUTO_IMPORT_PATTERN configuration.

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

SDK v0.9.1

Foxglove SDK

This release contains minor fixes.

Fixed
  • Channel un-advertisements are only sent if the original advertisement succeeded

C++

  • Support GCC
  • Include missing <vector>
Added

Python

  • Expose metadata in channel constructors

Docs: Introduction | Reference: Rust, Python, C++ | Source: github | C++ Artifacts: github

Foxglove 2.30.0

🧮 Topic Converters can now output arrays of messages

Topic Converters can now output an array of messages. This allows a topic converter to accept a single message as input and turn it into an array of messages on an output topic.

Example use case: Imagine you have lightweight sensor messages that are published at 1 kHz. Depending on system requirements, you may choose to aggregate and publish batches of messages at, say, 10 Hz on a /batch topic, which contains an array of messages: [WheelSpeedA, WheelSpeedB, WheelSpeedA, WheelSpeedA].

What if you want to write a converter that accepts /batch as input and outputs to a /wheel_a/speed topic, allowing you to plot your data as if each value was collected individually? This update allows your converter to accept one message from /batch and output N messages to /wheel_a/speed.

Learn more in the Extension API reference documentation.

New & Improved
  • Added Cmd/Ctrl+o and Cmd/Ctrl+Shift+o keyboard shortcuts to open files or connections from anywhere in the app
  • Improved user experience of scrubbing through a video in the Image panel
  • Added scientific notation for very large numbers in the Plot and State Transitions panels
  • Improved representation of chart boundaries in the Plot and State Transitions panels
  • Added support for persisting open local files across refresh (Cmd/Ctrl+r)
Performance
  • General performance improvements
  • Minor performance and stability improvement when editing layouts
  • Improved stability and performance of Plot and State Transitions panels
API
  • Added outputSchemaName and outputSchemaDescription fields to the topic converter extension API, replacing schemaName and schemaDescription. The previous fields are now deprecated.
Fixes
  • Arrays from the topics list can now be dragged into the plot panel and viewed without needing to manually add the [:] suffix to the path
  • Fixed displaying Grid Map messages with small color values
  • Addressed a bug in the 3D panel where identical points would sometimes disappear in line mode
  • Grid Map elevation no longer incorrectly scales by resolution
  • Fixed Grid Map data start indices to correctly index the data
  • Ensured consistent tick behaviors between x- and y-axes in the Plot panel
  • Resolved missing or flickering y-axis ticks in the Plot panel
  • Improved tick rendering in the Plot and State Transitions panels at extreme zoom levels

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

SDK v0.9.0

Foxglove SDK

This release contains documentation improvements, including support for the Kannala-Brandt distortion model in CameraCalibration, and some additional C++ functionality.

Fixed

Python

  • Add the missing stub interface for Timestamp.now()
Changed

C++

  • Support channel metadata
  • Support explicitly closing a channel
  • Implement additional channel getters

Docs: Introduction | Reference: Rust, Python, C++ | Source: github | C++ Artifacts: github

Foxglove 2.29.0

🐟 Fisheye camera support

We've added support for fisheye camera images using the Kannala–Brandt image distortion model. The Kannala–Brandt model is popular for modeling fisheye distortion from wide-angle lenses and is used by several popular computer vision tools including OpenCV.

To use the Kannala–Brandt model, generate a CameraCalibration message and set the distortion_model parameter to kannala_brandt. Our implementation closely matches OpenCV's.

📈 Centered plot playback

You can now adjust the playback bar position for a sliding time window in plots. Previously, the playback bar was always on the right edge—now you can center it for a more flexible view.

👀 View recordings in Timeline

Use the Timeline to see a recording in context with other data for a particular device. You can now click the three-dot menu at the end of any recording in the recordings table and select "View in Timeline" to see it in the Timeline.

▶️ Toggle sections of the layout menu

You can now toggle sections of the layout menu closed to focus on your workflow.

New & Improved
  • Improved the import recordings flow in the UI
  • Added a new setting to explicitly choose between 'automatic', 'sliding', and 'fixed' time window modes in plots
Performance
  • Improved the Service Call panel to better handle large service responses
  • General stability improvements
API
  • You can now create, configure, and delete self-managed Primary Sites through the API
  • Improved robustness of streaming data from Foxglove-hosted or self-hosted primary sites
Fixes
  • Fixed topic converter schemaDescription handling for nested objects so they appear correctly in the topic sidebar
  • Copying a data source link from the header now includes your active layout ID
  • The app name is now displayed instead of the description for the process name on Windows
  • Fixed a bug where the same local and org extension would not be marked as overridden on the desktop app
  • Hovering over items in the Map panel no longer changes the stacking order, making it easier to access tooltips for overlapping features
  • Fixed an issue where opening a recording (local or remote) could cause the playhead to stay at the start instead of playing forward to load topic data
  • The selected object data in the 3D panel's object inspector is now updated during playback
  • Fixed an issue where the Plot panel's zoom tool would incorrectly default to the y-axis in some cases
  • Fixed a bug with zooming in the Plot panel using a mouse wheel
  • Fixed an issue where the Plot panel y-axis would jump to [0, 1] when zoomed very far in
  • Maked the upload status list scrollable when many uploads are in progress via UI
  • Fixed and issue where pinch zoom in the Plot panel would zoom the whole app on MacOs
  • Fixed an issue when launching the app in a Linux environment with both Gtk3 and Gtk4 installed

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

SDK v0.8.1

Foxglove SDK

This release includes a fix for C++ handling of zero-length vectors.

Fixed

C++

  • Fix assertion crash copying zero-length vectors via the arena
Changed
  • Throttle messages about dropped WebSocket messages

Docs: Introduction | Reference: Rust, Python, C++ | Source: github | C++ Artifacts: github