Skip to main content

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.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

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

SDK v0.8.0

Foxglove SDK

This release provides additional functionality for WebSocket services and examples for usage.

Python

Adds Message.get_schema() and various channel getters

Rust

Adds a foxglove::Encode derive macro to automatically serialize structs and enums.

Log timestamps may now be specified as u64, Timestamp, SystemTime, or DateTime.

C++

The C++ library now supports logging Foxglove-defined schemas.

It also provides more functionality for live visualization, including services, assets, websocket parameters, and parameter subscriptions.

Changed

Python

  • Add simple example of writing RawAudio messages to an MCAP
  • Add Message.get_schema() and various channel getters

Rust

  • Add shutdown handle for WebSocket server
  • Add foxglove::Encode derive macro
  • Add features for derive, lz4, schemars, zstd
  • Accept u64, Timestamp, SystemTime, and DateTime as log timestamps

C++

  • Catch callback exceptions
  • Provide an interface to set the level of SDK stderr logging
  • Add support for services, assets, websocket parameters, and parameter subscriptions
  • Add support for broadcasting time
  • Add WebSocket clear session and publish status
  • Add foxglove schemas with example

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

Foxglove 2.28.0

🧮 Write your own source-controlled scripts for manipulating data

We've added a new type of Foxglove extension that allows you to manipulate data and create new topics on the fly for visualization.

Semantically, these new topic message converters are similar to user scripts, but they are available across layouts and can be used to deploy "user-scripts" organization-wide. Like other extensions, they support code reuse, development in your own IDE, and use of third-party modules.

What used to be called a message converter is now called a schema message converter (schema converter for short). This new type of extension is called a topic message converter (topic converter).

How are the new Topic Message Converters different?

Topic converters are more flexible than schema converters. Where schema converters assume a 1:1 relationship between proprietary schemas and well-known schemas, topic converters do not have this restriction. They can produce new topics from one or more input topics. These new topics can output custom types or other well-known schemas.

Topic converters support:

  • One or more input topics
  • Maintaining state (you can aggregate signal data from previous input messages to produce new output—allowing you to make filters or perform arbitrary math on signal data)
  • Extract individual fields from a message to separate top-level topics
  • View output of new topics in plots and State Transition panels (or any panels that use range subscriptions)

When should Schema Message Converters be used?

We recommend using these when there is a 1:1 relationship between some internal schema and a well-known schema. Common examples:

  • Converting proprietary GPS messages to foxglove.LocationFix for display in the Map panel
  • Converting internal Log messages to foxglove.Log for the Log panel
  • Converting business logic to foxglove.SceneUpdate for display in the 3D panel

📒 Multi-file upload

You can now select multiple files and upload them simultaneously from the app.

New & Improved
  • Updated GridMap icon to match OccupancyGrid and FoxgloveGrid topics
  • When visualizing a ULog data source, the last message on a topic is now displayed after seeking
  • Visualization now shows an error when a 3D panel entity is rendered with a likely incorrect pose due to mismatched timestamps
  • Added the ability to quickly hide or show all series in the plot panel
  • Added the ability to hide or show all transforms, while preserving individual frame visibility, in the 3D panel
  • Tooltips for message path plots are now hidden for undefined series
  • Proximity in both x and y dimensions is now used to select points for tooltips in plots
  • Removed the vertical bar when hovering over non-time-series plots
  • Improved Map panel auto-centering
  • Moved the plot legend visibility toggle to the panel toolbar
  • Drag area is now only rendered in charts where sync is enabled
  • Added the ability to delete unimported device recordings
Performance
  • Improved memory performance of path-based XY plots to support larger datasets
  • Improved memory usage for 3D scenes with many transparent arrows
  • General performance improvements
Fixes
  • Fixed Quick Look previews not appearing on macOS
  • Resolved occasional 3D panel crashes with older versions of the ROS GridMap message type
  • Fixed GridMaps indexing and displaying data incorrectly when the size changes
  • GridMaps orientation now matches RViz
  • Fixed unsupported color settings appearing for Grid layers
  • Fixed timestamp truncation in filenames when downloading images from the image panel
  • Fixed retry getting into an unrecoverable state from network errors while seeking
  • Fixed playback head racing forward past cached regions after a network interruption
  • Fixed plot tooltip showing after panning, even if the mouse is not over a point
  • Fixed an issue with dropping H.265 video topics into the image panel

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

Agent v1.4.2

Agent

This release contains a fix for the filesystem watcher, and adds a new configuration flag for toggling filesystem notifications.

Added
  • Added WATCH_USE_NOTIFY, which can be used to toggle filesystem notifications.
Fixed
  • Fixed a bug introduced in v1.3.0, where the agent filesystem watcher may deadlock and fail to pick up new recordings.

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

Agent v1.4.1

Agent

This release contains a fix for upload timeouts.

Fixed
  • Fixed a bug introduced in v1.3.3, where the agent would time out data uploads to foxglove-hosted storage.

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