Skip to main content

210 posts tagged with "Foxglove"

Release notes for the Foxglove web and desktop app.

View All Tags

Foxglove 2.39.1

This release contains minor bug fixes.

Fixes
  • Fix issue with series in index-based plots which contain all undefined values
  • Fix @derivative and @delta math modifiers for filtered message paths

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

Foxglove 2.39.0

🐍 Python Notebook Integration

You can now visualize data in any Jupyter-like notebook environment using the new notebook integration. Install the package with pip install "foxglove-sdk[notebook]", then use foxglove.init_notebook_buffer() to create a buffer for collecting and displaying data in an interactive Foxglove viewer within your notebook.

The integration supports:

  • Streaming data visualization in Jupyter Notebook, JupyterLab, Google Colab, and VS Code
  • Real-time updates using refresh() to update viewer data
  • Local layout management for customized visualizations

Learn more in the Jupyter notebook documentation.

🔎 Recording Metadata Search API

The optional metadataQuery parameter is now available in the Recordings List API. You can filter recordings by metadata using key-value search syntax:

  • temperature:high — find recordings with sensor metadata where temperature is high
  • status:* location:lab — find recordings with any status AND location lab
  • *:error — find any key with "error" value
  • warehouseName:"leaping llama" — use quotes for values with spaces

🔗 Iframe Embedding

Embed Foxglove in your application or website using our TypeScript or React SDKs. The embedding capability enables multi-modal data visualization and debugging within your application.

The embedding SDK supports:

  • Multiple data sources: load from local files, recordings, and live connections
  • Local layout persistence: embed layouts now persist in IndexedDB, allowing users to make layout changes that are saved automatically
  • Programmatic control: switch between layouts, revert changes, export layouts, and manage multiple layouts with the selectLayout API
  • Extension support: install custom extensions programmatically (Enterprise only)

Learn more in the embedding documentation.

📜 Custom User Script Utilities

Extension authors can now register custom utilities that user scripts can import and use. Create reusable functions in your extensions to share complex data processing logic across multiple user scripts.

info

User script utilities are currently in beta. The API may change based on testing and feedback.

This feature lets you:

  • Register TypeScript utilities in extensions using registerUserScriptUtility
  • Import and use utilities in user scripts like standard modules
  • Keep utilities self-contained with their own source code and types
  • View utility source code in the User Script panel's "Utilities" tab

Utilities are great for implementing domain-specific algorithms, helper functions, and reusable transformations that users might need across different scripts.

Learn more in the user script utility documentation.

New & Improved
  • Added visual indicators for deprecated message fields in the Raw Messages panel with warning icons and tooltips
Performance
  • General performance improvements
Fixes
  • Fixed OMG IDL @default annotation handling during deserialization
  • Fixed missing data in message path-based XY plots after reset view
  • Fixed pan and zoom performance issues for plots with locked 1:1 scales
  • Fixed User Script autosave when viewing utility or generated files

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

Foxglove 2.38.0

🔎 Search Over Recording Metadata

You can now query the metadata on your recordings stored in Foxglove to filter and find the right data. All MCAP metadata records attached to files uploaded to Foxglove are automatically indexed and made available for search.

⌨️ Keyboard Shortcuts for Recording Navigation

We've added keyboard shortcuts to jump to the start and end of your recording, along with shortcuts for various seeking intervals:

ShortcutDescription
SpaceToggle playback
Seek backward 100ms
Seek forward 100ms
Shift + Seek backward 10ms
Shift + Seek forward 10ms
Alt + (Windows and Linux)
Option + (macOS)
Seek backward 500ms
Alt + (Windows and Linux)
Option + (macOS)
Seek forward 500ms
Home (Windows and Linux)
Fn + (macOS)
Seek to start
End (Windows and Linux)
Fn + (macOS)
Seek to end

📊 Event Overlays on Time Series

Hovering over events in the playback bar or events sidebar now displays overlays in your Plot and State Transitions panels, making it easier to correlate events with your time series data.

🏷️ Multi-Select Custom Properties

Custom properties now support multi-enum values, allowing you to select multiple options from a dropdown. Perfect for tagging devices with multiple attributes.

New & Improved
  • Improved tab panel usability with scrollable tabs and the "new tab" button positioned on the left, similar to Chrome
  • Added confirmation dialog when closing tabs containing layouts to prevent accidental data loss
  • Improved settings panel readability by limiting label width and allowing 2-line labels before truncation
  • Improved user experience of seeking in the Image panel using a progressively expanding time window to find keyframes
Performance
  • General performance improvements
  • Stabilized iterable player URL state to reduce component re-renders
  • General stability improvements
API
  • The /v1/data/topics endpoint now streams responses for improved performance with large datasets
Fixes
  • Fixed dropdown menu actions when viewing recordings by recording key
  • Fixed rare error when reading ROS2 db3 bag files with invalid channels
  • Fixed blank video frames when seeking to already-played keyframes
  • Location fixes now correctly use the selected coloring method and show override notifications
  • Fixed Plot and State Transitions panel messages not being cached properly
  • Simplified embed validation to rely on the embedded viewer's validation
  • TF tree scale now correctly matches world units (1 = 1 meter), consistent with pose topic scaling

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

Foxglove 2.37.0

🎯 Follow Specific Location Fixes

When using LocationFixes with multiple location fixes in a single topic, you can now select which specific fix to follow in the Map panel. When following is enabled, panning is disabled and zooming is centered on the followed coordinate for a better tracking experience.

🔄 Gauge Panel Reverse Direction

Control the gauge display direction with the new reverse direction button, allowing for more flexible data visualization. The existing "Reverse" setting has been renamed to "Reverse Colors" for clarity.

New & Improved
  • Added new "Multi-line text" type for device custom properties
  • Added reset view button to the Map panel toolbar
  • Added site name and edge site columns to the recordings table for better organization
  • Added multi-line text input fields in panel settings with optional line limit for custom panels
  • Added Map panel setting to control point size (now in pixels instead of relative scale)
  • Variable Slider panel now shows the variable name in the toolbar by default
Performance
  • General performance improvements
Fixes
  • Fixed an issue with OMG IDL struct members being read out of order when explicit @id annotations were used
  • Fixed latched topics occasionally not appearing when switching tabs or layouts
  • Fixed Table panel column sorting to sort all items instead of only the current page
  • Prevented ROS bag downloads when topic encoding doesn't match, disabling the format option when incompatible
  • Fixed panning in orthographic mode having reduced effect when the perspective camera looks towards the horizon
  • Fixed a rare bug causing a blank screen
  • Fixed tab dragging keyboard interactions so holding Alt or Meta during drag results in copy instead of move
  • Fixed browser autocomplete appearing in the layout menu search
  • Fixed latched messages not being shown when switching between tabs
  • Fixed Map panel memory leak when toggling between point styles for location fixes

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

Foxglove 2.36.0

📊 VoxelGrid Visualization

Visualize volumetric data with the new support for Foxglove.VoxelGrid schema, enabling powerful and flexible 3D grid visualizations. This adapts the existing VoxelGrid visualization to work with a more generic approach compared to the ROS-based implementation, which uses specific bit encoding for 4 state depth values into float32 across 16 elevations.

The new schema works more like 2D grids for settings and provides much greater flexibility for managing both color and depth values through customizable fields. With support for arbitrary PackedElementField definitions, you can define custom data fields including optional RGBA color channels, making it suitable for a wide variety of volumetric visualization use cases beyond the traditional fixed-format approaches.

📍 Multiple Location Fixes on Maps

Display multiple location fixes in a single message with the new Foxglove.LocationFixes schema support in the Map panel, perfect for visualizing multiple GPS trails and location history along with covariance data.

New & Improved
  • Device properties now configured in dedicated 'Devices' settings page
  • Updated syntax highlighter for better language support
Performance
  • Minor improvements to web app page load speed with better cache handling
Fixes
  • Fixed color picker values changing when adjusting transparency at high frequencies
  • Fixed Google sign-in error on signup page
  • Fixed URDF error reporting issues
  • Fixed race condition when selecting layouts with global variables and topic aliases
  • Upload manager card no longer obscures playback bar
  • 3D panel HUD items without click handlers are now unclickable
  • Improved error message when unable to create events in visualization

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

Foxglove 2.35.0

🧮 New Math Modifiers for Plot Panel

Transform your plot data on the fly with new math modifiers! In addition to the existing Plot panel math modifiers, we've added .@add(number), .@sub(number), .@mul(number), .@div(number), and .@delta. Append these operators to your series' message path to add, subtract, multiply, divide, and get the delta between successive values. Use these operators for unit conversions, scaling, and shifting data without custom scripts.

⏩ Improved Video Seeking in Image Panel

Experience smoother playback when seeking through compressed video sources. The Image panel now intelligently buffers keyframes for more responsive navigation through your video data.

New & Improved
  • Improved error message when attempting to open directories that end with recognized file extensions
  • New math modifiers in Plot panel: add, subtract, multiply, and divide message path values for easy unit conversions
  • Improved seeking behavior in the Image panel for compressed video sources with configurable keyframe buffering
  • Support for duplicating tabs in Tab panel via context menu or Option+drag
  • Added setting to explicitly set the ENU (East-North-Up) orientation of your map in the 3D panel using a frame other than the root/fixed frame
  • Projects feature now generally available for all enterprise organizations
Fixes
  • Fixed topic converters with same outputSchemaName overwriting other schemas - these converters are now disabled with an error message
  • Fixed scrollbar overlap with menu buttons in layout selector on macOS
  • Non-square GridMaps now display correctly when using nearest neighbor interpolation
  • Fixed OMGIDL XCDR message deserialization for out-of-order fields on mutable structs and optional non-mutable fields
  • Fixed message emission on invalid MCAP channels
  • Image annotations from different namespaces no longer override each other

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

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