Skip to main content

SDK v0.12.0

Foxglove SDK​

This release supports logging LocationFixes as a single message. LocationFix messages now contain a color field to identify each fix within a group.

What's Changed​

Added
  • Add a new LocationFixes schema
Changed
  • The LocationFix schema now supports an optional Color field

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

Foxglove 2.34.0

🚜 Introducing data loader extensions​

Data loaders are Foxglove extensions that let you write a Rust or C++ translator to load your own file formats in Foxglove.

Using a data loader extension, you can enable Foxglove to open anything from a .csv file to your own proprietary file format.

info

Data loaders are currently in beta. The API may change based on testing and feedback. Contact [email protected] if you have questions.

🌲 New Transform Tree panel​

The new Transform Tree panel allows you to visualize and explore the relationships and hierarchy of your transform tree.

πŸ—ΊοΈ Measure distance in the Map panel​

Measure distances directly on your map visualizations with the new distance measuring tool. Click through multiple points to get a total distance, with measurements automatically displayed in human-readable units (mm, cm, m, or km) based on scale.

New & Improved
  • Added distance measuring tool for Map panel with support for multiple points and human-readable units
  • Panel expansion now keeps sidebars visible and intelligently handles playback control space
  • Improved number formatting in plot tooltips with comma separators and cleaner XY labels
  • Removed scientific notation from plot axes based on user feedback
  • Disabled browser autocomplete by default for text fields
  • The Raw Messages panel now more clearly distinguishes missing messages from message paths that select zero results, and more accurately displays arrays with one item
  • The visualization sidebars are still accessible when in full-screen mode
Performance
  • General performance and stability improvements
  • Improved websocket subscription handling to prevent false positive error messages
Fixes
  • Fixed 3D panel crash when GridMap messages have no dimensions
  • Fixed Map panel crash when given an invalid covariance matrix
  • Fixed Map panel to properly center on GeoJSON points when loading
  • Fixed stale topic frequency estimates when reconnecting to live data sources
  • Fixed inconsistent array handling in Raw Message panel for empty arrays and single values
  • Fixed decay time setting for Velodyne point clouds not persisting data correctly
  • Fixed user script topics incorrectly keeping messages when seeking
  • Fixed an OMG IDL parsing issue preventing enums from being accessed via their parent module namespace

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

Foxglove 2.33.0

πŸ“½οΈ Introducing Foxglove Projects​

Foxglove Projects allow Enterprise organizations to organize data and resources in Foxglove and control who has access to them. Projects are managed by organization admins and act as a container for data, devices, and events. Organization members can only access resources in Project(s) they are assigned to.

Frequently asked questions​

What resources are scoped to a Project vs. an organization?

Every device, event, and recording belongs to a single Project. Data in one Project cannot be accessed from another Project.

Resources at the organization level work across all Projects.

ResourceProjectOrganization
Devicesβœ“
Eventsβœ“
Recordingsβœ“
API Keysβœ“
Custom Propertiesβœ“
Extensionsβœ“
Layoutsβœ“
Sitesβœ“
Webhooksβœ“

What happens to my existing data and devices?

Every organization starts with a single Project. When you create a new project, all existing data will remain available under the existing default Project(s). All members will retain their current access.

We are self-hosted, what Primary Site version do I need?

The minimum Primary Site version required for Foxglove Projects on self-hosted deployments is 0.0.69. If you are on an older version, everything will continue to work, but you will not have access to Projects.

What changes do I need to make to start using Projects?

Before you start using Projects, make sure to update any code that interacts with devices, recordings, or events via the Foxglove API. Endpoints that interact with Project scoped resources accept a projectId to specify the Project.

tip

Device name and id are required to be unique within your organization. If a device is provided, then projectId is optional, but we recommend always including it.

How do I create a project?

Admins can create and manage Projects from the Projects page under organization settings.

How do I manage Project membership?

When creating a new Project, you will be prompted to give it a name (you can change this later) and add members to the Project. You can manage the membership of an existing project from the Projects page. You can also manage which Projects an individual member has access to from the Members page.

πŸ• Layout Version History​

Track and manage changes to your layouts with the new Layout History panel in the right sidebar. Available for Team plans and above, you can now see who changed layouts when, preview previous versions, and restore older versions when needed. Never lose important layout configurations again.

πŸ—ΊοΈ Maps in 3D​

Add map tiles to the 3D panel to visualize your robot's position and data with street, satellite, or custom maps layers. This enables geographical context for outdoor navigation, field testing, and autonomy development by allowing you to layer 2D and 3D information like point clouds and object detections directly onto a map.

By default, street and satellite map layers are available from OpenStreetMap and Esri. Team and Enterprise organizations can also load data from custom map layers by pointing to any map server that follows the Tile Map Service specification.

πŸ“ Markdown Panel​

Display formatted text and documentation directly within your Foxglove layouts using the new Markdown panel. Create interactive documentation, embed links, and provide contextual information alongside your data visualizations.

New & Improved
  • Customize states in the State Transitions panel with custom colors, labels, and range-based indicators for continuously-varying values
  • Added opacity controls for GridMap messages to match Foxglove.Grid functionality
  • Timeline UI now shows an indicator when device coverage has pending updates
  • Preserve left sidebar state when navigating between pages
  • User Scripts and Topic Converters without input topics in the current data source are not shown in the sidebar and in panels
Performance
  • Improved app stability
  • Display a warning banner when hardware acceleration is disabled
Fixes
  • Fixed desktop app launching twice when opening recordings from web
  • Fixed select all panels shortcut (Cmd+A) triggering with additional modifier keys
  • Fixed a bug where cmd + shift + a shortcut would be captured by the app
  • Fixed webhook delivery errors when processing large numbers of events
  • Fixed playback halting when playing at speeds less than 1x in certain situations
  • Fixed inconsistency in extension panel type names
  • Fixed rendering of some fisheye camera sources in Image and 3d panels
  • Fixed seeking forward at end of play range breaking play and seek-forward button
  • Fixed uninstalling local extensions not removing all versions properly
  • Fixed elevation rendering for Foxglove.Grid when color mode is set to flat
  • Extension README and changelog files are now properly displayed for installed extensions
  • Voxel Grids now properly support transparent coloring
  • Fixed transparency for Foxglove.Grid when elevation is applied

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

Foxglove 2.32.0

πŸ”Š Sound on: Audio support​

You'll want to turn sound on. We've added audio support to Foxglove with a brand new Audio panel and RawAudio message schema. Use the Audio panel to zoom in and pan across your audio waveform. Click to jump to areas of interest.

Read the RawAudio schema docs and check out this Foxglove SDK example to get started.

πŸ“· Improved 2D follow-mode camera​

The 2D camera is now positioned relative to the fixed frame instead of the display frame when in follow position mode, providing more intuitive camera behavior.

Before​

Previously, the top-down 2D view would roll and pitch with the frame of the object being followed when in follow mode.

After​

The fixed frame z-plane grid in the 2D panel now stays flat rather than rolling and pitching with the frame of the device it is following.

πŸ“‘ Control render order of Grid messages​

The 3D panel now has a Draw behind setting for Foxglove.Grid messages.

Turn on Draw behind to render the grid with all other "draw behind" topics before the rest of the scene, ignoring depth for the grid. With the setting off, the grid will render normally with depth testing enabled.

New & Improved
  • Added Draw Behind setting for all grid message types in the 3D panel
  • Primary and edge sites now display if they are on a previous release and can be updated
  • GridMap messages now have color and elevation settings that match other grid-based topics like Foxglove.Grid and PointCloud
  • Improved error reporting when panels crash due to message converter issuesβ€”now with more detailed error information
Performance
  • General app stability improvements
  • Improved scrubbing performance
  • Improved stability of automatic x-value ranges in index-based plots with multiple series
Fixes
  • Fixed playback problems when opening multiple mcap files at once
  • Fixed an issue where the layout management page did not allow selecting layouts when searching for a layout name
  • Fixed an issue causing freshly split Indicator panels to fail to initialize to the right state until new messages are received
  • Fixed certain preloaded messages not being visualized when there are multiple publishers on the same topic
  • Fixed potential crashes when exporting plots with lots of points to CSV
  • Fixed a duration formatting error in the Timeline page
  • Fixed relative URDF/mesh includes not being correctly resolved
  • Fixed an issue where Foxglove.Grid nearest neighbor setting would not index data correctly, showing wrong coloring
  • Fixed Foxglove.Grid's Value min and Value max auto setting to correctly determine values from the data
  • Fixed an issue with showing correct time window setting in older layouts
  • Fixed extension panels not working when switching between local and org extensions

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

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