Skip to main content

229 posts tagged with "Foxglove"

Release notes for the Foxglove web and desktop app.

View All Tags

Foxglove 2.55.0

πŸ“Š Plot panel: secondary y-axis​

Plot panels can now show two y-axes. Assign each series to the primary or secondary axis from panel settings, then compare signals with different units or ranges without splitting them into separate panels.

πŸ”Ž Data search improvements​

Recent and saved searches are available to everyone on the Search page. Reopen queries you ran recently, save searches for yourself or your organization, and reuse them from the Search toolbar. Searches now also show query progress and size estimates while results load, and Topic fields can match recordings where a topic exists using file-level metadata.

πŸ” Layout management in the public API​

The public REST API now supports managing shared layouts with an API key, including list, retrieve, create, update, delete, and restore operations. See the API reference for the full surface.

curl -X POST https://api.foxglove.dev/v1/layouts \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FOXGLOVE_API_KEY" \
-d '{
"name": "Fleet Diagnostics",
"permission": "ORG_WRITE",
"data": { ... }
}'
note

The layout data format is not considered stable and may change over time.

New & Improved
  • Plot and State Transitions panels: dynamic sub-series now support separate Label field and Value field settings
  • Plot panel: timestamp-plot hover tooltips show each series' most recent value at or before the cursor when no sample exists exactly at the cursor
  • State Transitions panel: tooltips for zoomed-out merged state bars show a single shortened value with a "Zoom for more" hint instead of a long multi-value label
  • Playback bar: the focused Plot, State Transitions, or extension panel's zoomed range is indicated on the timeline
  • Map panel: custom map tile URLs support Bing {quadkey} and {subdomain} formats
  • Map panel: layers and topics can be reordered in settings
  • 3D panel: topic settings include a Render as selector for topics that can render through more than one schema
  • 3D panel: side-view panning automatically switches to screen-space panning near sharp camera angles
  • Search: the default query granularity is now 10 seconds
  • Layouts: the layouts list supports fuzzy search with highlighted matches, and folder names are included in name sorting
  • Metadata sidebar: HTTP and HTTPS URL values are clickable
  • Problems: Failed to fetch errors link to the network troubleshooting guide
  • Embedded viewer SDK: startPlayback(), pausePlayback(), and playUntil() methods control playback programmatically
  • Embedded viewers: set startTime on file, remote-file, device, and recording sources to seek when the data source loads
  • The Linux desktop app supports hardware-accelerated H.265 (HEVC) video decoding on Intel integrated GPUs; HEVC hardware decode on dedicated or discrete GPUs is not currently supported
  • Timeline and Recordings pages: pending imports are grouped in a collapsed section by default
  • Panel actions: split panel actions are hidden while a panel is expanded
Performance
  • Search results load recording labels only for visible rows, improving large result sets
  • The app bar connection spinner uses less CPU while a data source is reconnecting
  • Remote MCAP playback avoids seek stalls on high-latency file hosts
API
  • Grafana plugin query tokens can retrieve matching indexed files
  • GCS Bring Your Own Storage (BYOS) recordings refresh indexed metadata when object metadata changes
  • Hosted data uploads with unsupported filename characters return a client error instead of an internal server error
  • Searches can match backslashes (\) in recordings, property values, and other searchable fields
Fixes
  • State Transitions panel: filtered diagnostic paths render as continuous bars instead of disconnected blocks
  • Custom date range filters: the end date picker respects a newly selected earlier start date
  • Extensions: disabled extensions no longer silently re-enable after navigating back during a slow load
  • Plot panel: wheel zooming avoids unwanted zoom changes from inertial scroll tails
  • Raw Messages panel: hover buttons no longer overlap the scrollbar
  • Shared view links with a timestamp open playback at the linked time instead of the start of the range
  • Newly indexed recordings no longer occasionally fail on ingestion
  • Plot panel: message path XY tooltips show values from all series at the hovered x-position
  • Generated layouts open RawAudio topics in Audio panels instead of Raw Messages
  • Embedded standalone mode no longer fails with a "No QueryClient set" error
  • Paginated settings tables no longer advance past the last page when the next-page button is clicked rapidly
  • Remote file connections have clearer tab titles
  • macOS Ctrl+K text editing works in Foxglove text fields while Cmd+K continues to open the command palette

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel

Foxglove 2.54.0

πŸ“ˆ Plot panel: dynamic { label, value } series​

The Plot panel now renders one independent sub-series per distinct label when a series message path resolves to an array of { label, value } objects β€” the same dynamic-series pattern introduced for State Transitions in 2.53.0. Read more about Dynamic series.

πŸ”€ State Transitions: drag-and-drop reordering​

You can now reorder State Transitions series and custom states in panel settings using drag-and-drop, matching Plot series and other settings lists.

New & Improved
  • Search: ?query= URLs are now self-describing. Predicate, time range, and granularity round-trip through a single URL param. One-time regression: older bookmarked ?query= links (search, viz overlays, and "Back to search") load with the query dropped; rebuild saved queries once. Deeplinks that only set /search?start=…&end=… are no longer applied.
  • Search: the results status alert is collapsible and no longer shows a green checkmark on successful runs
  • Log panel: a Visibility section in settings toggles level, time, date, timezone, source location, and node name per rendered message
  • State Transitions: tooltips cap their row count when many rows are visible
  • 3D panel: Academic and Pro plans can now configure a custom map tile server β€” already available on Enterprise
  • Message paths: .@length now returns the size of array and typed-array values. Breaking: update paths that used .length to .@length; .byteLength and .buffer are no longer available on arrays
  • Org settings: organization admins can set a default time zone in Settings β†’ General; members who have not chosen their own timezone follow the org default and can switch back to their browser zone at any time
  • Audit logs: layout deletion events now include the deleted layout's name and folder
  • BYOS site settings: the site bucket notification tokens card is available with BYOS-specific copy and a token-only confirmation dialog
  • Project picker: the search input is focused automatically when opening Select a project
  • Extensions: per-device enable/disable toggles on the Installed Extensions list and detail page β€” turn an extension off without uninstalling
  • Viz sidebar: aligned empty-state position and typography across Problems, Metadata, Attachments, and Source info tabs
  • Desktop (macOS): Quick Look previews of MCAP files now list attachment filenames
Fixes
  • State Transitions: series using ROS header stamp or Custom field timestamps no longer show empty data when times fall outside the playback window
  • State Transitions: empty string values no longer show "zoom for details"
  • Map panel: malformed GeoJSON coordinates or geometries no longer crash the panel. Errors surface on topic settings instead
  • Raw Messages: Collapse all now collapses every node
  • 3D panel: arrows no longer linger after their scene entity is removed
  • Audio panel: zoom and trackpad gestures work in newly configured panels
  • MCAP playback: fixed false schema-mismatch warnings for ROS 2 CDR messages that end with padding bytes
  • Search: Message-field autocomplete dropdown width no longer shifts while typing
  • Recordings: device-agent uploads now associate with the session specified in MCAP metadata
  • Settings: the Organization settings heading no longer wraps onto two rows in the sidebar
  • Desktop: refocusing the window no longer sends zoom shortcuts to the tab bar instead of the active view

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel

Foxglove 2.53.1

This release contains a bug fix for video export.

Fixes
  • Video export is now available for all non-live data sources, including remote files, instead of being restricted to local files only

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel

Foxglove 2.53.0

πŸ“‘ Remote Access for live robot data​

Pro and Enterprise plans can now stream live camera, lidar, and telemetry data from robots in the field, with the same multimodal views you use today for recorded logs. A single cloud connection per robot supports multiple concurrent viewers, with a bidirectional channel for sending teleoperation commands back to the robot. Remote Access is in public beta. Read more about Remote Access.

🎬 MP4 video export for layouts​

Enterprise plans can now export the current layout and data source to an MP4 video at a configurable frame rate and playback speed. Each frame waits for every panel to finish rendering before capture, so the output reflects the full panel state without buffering artifacts. Video export is available in the desktop app.

πŸ“Š Dynamic series in the State Transitions panel​

The State Transitions panel can now show multiple state rows from a single message path. Point a path at an array of state entries β€” like /metrics.metrics[:] β€” and each entry's label becomes a row name, with the value driving the row's colored bands. Filter rows by label using the standard message-path filter syntax, such as /metrics.metrics[:]{label=="speed"}. Read more about Dynamic series.

πŸ”€ Drag-and-drop reordering for Plot series and other panel settings​

You can now reorder settings rows using drag-and-drop or the row action menu. The Plot panel's series list supports this, along with the Indicator panel's range rules and the Image panel's overlay topics. The order persists with the layout.

New & Improved
  • 3D panel: tiled map layers now include built-in shaded relief, OpenSeaMap sea marks, and OpenSeaMap isobath overlays alongside the existing street, satellite, and custom tile sources
  • 3D panel: depth-map render mode supports Flat, Gradient, and Color map color modes alongside the existing sibling RGB colorization
  • Plot panel: tooltips now include the x-axis value at the cursor, following the panel's relative or absolute timestamp setting (and showing the nearest array index for index-based plots)
  • Plot panel: tooltips now cap their row count so they don't grow unbounded, showing a + N more footer when additional rows are hidden
  • State Transitions panel: tooltips now include the x-axis value at the cursor, following the panel's relative or absolute timestamp setting
  • MCAP support: JSON Schema channels with nested arrays or heterogeneous-tuple prefixItems now load (up to 10 levels of array nesting); tuple positions surface as item0, item1, and so on
  • MCAP playback: the Problems sidebar now surfaces a warning when a channel's embedded ROS schema does not match the message bytes (trailing-byte mismatch on ros1msg / ros2msg / ros2idl channels)
  • Search: a Granularity dropdown lets users choose the bin width for message search results (down to sub-second)
  • Search: the selected Granularity is preserved in the URL, so copying or reloading a search URL restores the granularity alongside the query and time range
  • Search: the Granularity control now matches the height, borders, and focus states of the Time range and other inline query-builder selects
  • Search: the query builder has softer rounded outer corners, steadier hover and focus borders, and the inline clear control only appears while editing a row
  • Org settings: Enterprise admins can review organization activity from the Audit logs page
  • Members: the Invite member dialog now shows a project picker when the org contains invite-only projects, so admins can grant project access at the time of invite
  • Billing: paid org admins can manage their billing address and card on file from Settings β†’ Billing
  • Extension API: panels can now read MCAP metadata and the attachment index from RenderState, and load attachment bytes with context.fetchAttachment(id) (experimental)
  • Translations: added more Chinese and Japanese translations throughout the app. To help us improve translation quality, visit foxglove.dev/translate
Performance
  • Improved loading time on the Recordings page
API
  • API ingestion endpoints now return a 400 for invalid RFC3339 timestamps β€” including out-of-range months, days, hours, minutes, seconds, and offsets β€” instead of accepting them or returning a 500
Fixes
  • Plot panel: series no longer silently fail to render when a topic converter lists one or more inputTopics that are not present in the active data source
  • Plot panel: zooming out or panning right with absolute x-axis labels no longer freezes for recordings whose start time is set to the Unix epoch
  • 3D panel: fixed video rendering stalls and blank frames when seeking or loading into compressed video streams on some H.264 streams
  • 3D panel: fixed a temporary freeze when starting playback for some H.264 video streams
  • Layouts: long layout names no longer overflow the delete confirmation dialog
  • Settings: slowly scrubbing a numeric setting with limited precision now updates smoothly instead of requiring fast drags
  • Data sources: files opened via a custom data loader extension are now reopened after refreshing the tab
  • Search: the date picker now allows manual editing of start/end dates
  • Search: the Event type condition autocompletes event type names while filtering by the matching event type IDs
  • Search: the elapsed time displayed for failed queries and partial site-error searches now reflects the actual client-observed duration
  • Devices timeline: dragging a selection on the timeline no longer accidentally selects device name text in surrounding rows
  • Devices timeline: fixed an unnecessary scrollbar and duplicate bottom border on the timeline list
  • Event types: fixed interaction issues while rearranging event type properties (text selection during drag and noisy tooltips)
  • Recordings: agent-uploaded recordings no longer remain in importing state forever when indexing fails
  • Recordings: fixed a bug where recordings could not be imported if they had previously been imported to a site that was deleted
  • Recordings: fixed a bug where BYOS imports could remain stuck behind older imports from deleted sites

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel

Foxglove 2.52.0

πŸ“ 3D measurement tool: snap to scene objects​

The 3D panel's measurement tool can now snap endpoints to scene objects so you can measure between exact features instead of approximating with the cursor. Hold Alt / Option to enable snapping for that endpoint. Combine snapped and free-space endpoints in a single measurement, and read out per-axis projections alongside the total distance.

πŸ•°οΈ Absolute timestamps in Plot and State Transitions​

Plot and State Transitions panels can now display absolute timestamps on the x-axis instead of seconds elapsed since the start of playback. Pick Absolute under the new Timestamp display setting and ticks render using the global time format and timezone.

πŸ•’ Per-topic timestamp sync in 3D and Image panels​

The 3D and Image panels' "Sync timestamps" (formerly Strict time sync) toggle is no longer all-or-nothing. Each topic now has its own Sync opt-in in the Topics section. Mix high-frequency and low-frequency topics in the same view and choose which ones must line up before rendering, instead of a single slow topic blocking everything. In the Image panel, the primary image and its visible ImageAnnotations always sync together; in 3D, layouts with sync enabled now need to opt topics in.

New & Improved
  • Gauge panel: configurable value ticks in both dial and bar modes (enable Show ticks in panel settings and set a Tick interval); the panel also follows the app's light/dark theme
  • Search: the time range is now a built-in filter at the top of the query builder (and surfaces in the collapsed query summary), so it's obvious as a search constraint instead of a separate header control
  • Search: the query builder auto-collapses to its summary after running a query so results aren't pushed off-screen β€” the Running… indicator and Cancel button stay visible while a search is in progress
  • Search: results show recording filenames (with the full path on hover) and dot-style colored event-type labels in place of raw IDs; the raw recording ID is preserved as an optional column
  • Search: list view shows a clear empty state when a query returns zero results, suggesting users adjust the time range or query conditions
  • Search: the active date range is preserved when returning from the visualizer via "Back to search", so prior queries no longer appear empty after the round-trip
  • Search: Recording key is now available as a first-class field for filtering and display in recording results
  • Search: the query builder infers the data type of message field paths from the topic schema and restricts operator choices to ones valid for the field's type (number, string, boolean)
  • Search: the "incompatible sites" warning now shows actionable upgrade instructions with a copyable helm upgrade command and a link to the upgrade guide, replacing the old "Manage sites" dead-end
  • Panel settings: section expansion state and scroll position now persist locally across page reloads, per panel
  • Plot panel: scalar message-path functions (such as delta, derivative, and degrees) are now suggested in autocomplete for fields on schemaless topics
  • Audio panel: a volume slider in the panel toolbar lets users adjust volume and mute without opening panel settings
  • Audio panel: shows a clear "No topic selected" empty state when no topic is configured, instead of a blank waveform
  • Source info sidebar: shows the Primary site and (when enabled) Edge site for the loaded recording, matching the recording detail page
  • Source info sidebar: Attachments rows now have dividers like the rest of the sidebar lists
  • Recording detail: metadata records on the Metadata tab are visually nested under each Name: header with a divider line between groups, so multi-record recordings read at a glance
  • Device properties: each property row has a View History action on hover that opens the property history tab pre-filtered to that key
  • Device property history: saving a record automatically expands the active time range to include the saved interval, and the default range is widened to 30 days
  • Org settings: admins on Pro and Enterprise plans can pick a Default seat type for new members from the General settings page
  • Sign-in flows: a language selector on the welcome / sign-in / sign-up pages lets users change app language before signing in (desktop only)
  • Recordings page: removed the rarely-used "Poll for new imports / Poll for recording updates" toggle; pending imports still refresh on completion and the recordings list refreshes on load and navigation
Performance
  • Improved Search page load speed
  • Improved playback performance for remote MCAP files
API
  • Note: accessing Recording key in Data Search requires self-managed primary sites on version 0.0.101 or later. Foxglove-hosted sites are unaffected.
Fixes
  • Data Search: the Cancel button now reliably stops long-running queries once results have started streaming in (the spinner cleared and the button replaced with Run)
  • 3D panel: compressed video rendered as image planes (with cameraInfo projection) no longer lags several frames behind the rest of the synchronized scene at slow playback speeds
  • Plot panel: deleting a series no longer changes the displayed color of other series that did not have an explicit color stored
  • MCAP support: fixed loading of MCAP files whose JSON Schema channels use string-valued oneOf enums (including schemars-generated schemas)
  • MCAP / IDL: fixed broken deserialization of messages whose union discriminator does not match a case in the IDL spec
  • Recordings, Sessions, Events, and Devices pages: filter inputs use the same compact sizing as inputs in visualization panels (matching the smaller height used by panel settings)
  • Desktop: fixed a Windows packaging issue that could leave shipped app executables unsigned

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel

Foxglove 2.51.0

πŸ” Data Search: query recordings, events, and messages​

Build visual queries across messages, events, devices, recordings, and sessions with the new Search page, and stream results into a sortable tableβ€”no query syntax required. Search works across data hosted in Foxglove Cloud or on your self-managed primary site, with no separate data warehouse to set up or duplicate data to keep in sync. Read more about Data Search.

πŸ’° New self-service pricing and unlimited Basic Seats​

The Team plan is now Pro and starts at $20/month for 1 TB of storage and 3 Developer Seats (down from $126/month for 3 seats, over $100/month in savings), and meters now have volume-based discounts as usage grows. Data Search is included on Free, Pro, Academic, and Enterprise plans; Pro and Enterprise also include unlimited Basic Seats at no extra cost. Customers migrated from Team to Pro will see updated prices on their next full billing cycle. Read more about our new self-service pricing, and try the cost calculator.

πŸͺ‘ Basic Seats: free seats on Pro and Enterprise plans​

Pro and Enterprise plans now include unlimited Basic Seats at no extra cost: a new seat type for teammates who visualize Foxglove-hosted data with existing layouts, without authoring their own layouts or loading local files. Pair them with Developer Seats for full authoring access to bring ops, leadership, field teams, and contractors into your workspace without per-seat costs. Read more about Basic Seats.

Basic Seat members must use Foxglove 2.51 or later on desktop to sign in.

πŸ—„οΈ Bring Your Own Storage: keep raw data in your own cloud​

Enterprise plans can now connect Foxglove to an existing AWS S3, Google Cloud Storage, or Azure Blob Storage bucket. Foxglove manages indexing, query, and visualization while your MCAP recordings stay at rest in storage you control. Pair it with Data Search to index and query petabytes of data without duplicating it into Foxglove. Usage-based pricing means you only pay for indexing, query, and bandwidth, with no charge for storage you already own. Read more about Bring Your Own Storage, or contact sales to enable it.

New & Improved
  • Event visualization: opening an event now pads the player with 5 seconds of context before and after the event time range so point events and short ranges are usable; URL start / end parameters still override the padded range when you adjust the timeline and share the link
  • Raw Messages panel: when multiple messages share the newest receiveTime, inline controls step through that group in stream order before falling back to the previous timestamp
  • Problems sidebar and Raw Messages panel show source-mapped stack traces for schema converter errors
  • Image panel: Show all and Hide all annotation topics in one click from the annotations settings
  • 3D panel: GridMap topics support a Flat elevation option that renders the grid as a flat plane without elevation displacement
  • Events: pick a custom hex color for an event type from the color picker's More colors option, in addition to the built-in palette
  • Billing: a new Usage tab embeds your live usage portal alongside the existing Plan tab
  • Storage, bandwidth, and usage figures throughout the app and billing reports now use SI units (MB, GB, TB) instead of mebibytes/gibibytes
  • Desktop: tab bar aligns with the navigation sidebar and removes the extra border under the active tab
  • Command palette: Improve translations (non-English locales), matching the existing user menu entry
  • User scripts: added eulerToQuaternion() to the built-in quaternion helpers (inverse of quaternionToEuler())
Performance
  • Improved playback performance for remote file data sources
API
  • Device property history is documented and publicly available in the API (internal gating removed)
  • Device tokens and device agent capabilities are now available on every plan in Settings, API key scopes, and the device token API
  • Self-managed primary sites must be on 0.0.100 or later to be considered searchable by Data Search; older sites show as incompatible. Foxglove-hosted sites are unaffected.
Fixes
  • Fixed arrow-key handling so panels that use their own keyboard navigation no longer also trigger global playback seek (capture-phase shortcut regression)
  • Tab panel: the entire tab header is wired to the panel drag handle again, so dragging a Tab panel by its header repositions it within the layout
  • Recordings page: selecting a row no longer shifts the table downwardβ€”the bulk-actions bar now overlays the header instead of pushing rows out of the way
  • Plot panel: supported message path functions in X-value path and the default X-axis path are no longer flagged as invalid in settings
  • Plot panel: floating legend no longer overlaps Y-axis tick labels (legend shifts horizontally based on the gutter width)
  • 3D panel: textures referenced from OBJ material libraries load correctly for package:// and file:// assets
  • 3D panel: image rendering no longer leaks GPU memory when an image topic switches between compressed video frames and raw image data
  • 3D panel: GridMap settings preserve the configured elevation layer while topic layers load, eliminating a brief "Layer does not exist" validation flicker
  • Color picker: incomplete hex values (e.g. #ab) no longer commit on each keystrokeβ€”values commit on blur, Enter, or wheel; the popover's Enter key now closes the picker as expected
  • Search: running a new query resets the timeline zoom so results render against the full time range (clears any prior visibleStart / visibleEnd)
  • Query builder: string-typed fields only offer string-relevant operators (no meaningless numeric comparisons on strings)
  • Query builder: changing the selected field preserves the value when types stay compatible; incompatible values show validation instead of silently clearing
  • Query builder: Message field paths with unknown types show the full operator list again (fixes over-restriction after string operator narrowing)
  • Search results: Manage columns stays right-aligned and the Event type column no longer stretches the header layout
  • Search query builder: removed a stray line under the active Execution details tab
  • Search results: header divider runs continuously across the scrollbar filler cell
Deprecated
  • The legacy Starter plan is no longer available to new customers. Existing Starter customers can stay on their current plan or upgrade to Pro for unlimited Basic Seats, Data Search, and the new volume discount tiers β€” see the pricing blog for details.

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel

Foxglove 2.50.0

πŸ–ΌοΈ Image Panel: Overlay Image Topics​

The Image panel now supports overlay image topics, letting you layer segmentation masks, depth maps, or other image data directly on top of the base camera feed.

πŸ”· Draco-Compressed Point Clouds​

The 3D panel now renders Draco-compressed foxglove.CompressedPointCloud topics, so you can visualize large point clouds with smaller on-wire payloads. Read more about CompressedPointCloud.

πŸ“ˆ Plot Panel: Seek and Preview From the Chart​

When the Plot panel X-axis type is Message path, hovering a point updates preview time for the player and panels, and clicking a point seeks playback to that time.

πŸ“Ž MCAP Metadata & Attachments​

The left sidebar adds Metadata and Attachments tabs for MCAP files and cloud recordings, so you can inspect key–value metadata and file attachments without leaving the view.

New & Improved
  • Context sidebar tab and data source menu entry show session, event, and recording details without leaving the visualization view
  • Keyboard shortcuts Shift+Alt+Left / Shift+Alt+Right snap event start/end time to the current playback position when editing events
  • Command palette: Add Session
  • Command palette: Go to sessions
  • Performance tab in the workspace right sidebar is always available (no debug flag required)
  • Recordings, Sessions, Events, Devices, and Timeline pages use a tighter layout with actions inline in the page heading
  • Sidebar tabs that do not fit show in an overflow dropdown instead of being clipped without access
  • Desktop Welcome page includes an Activate license link for offline license activation
  • 3D panel: transform readouts can be shown relative to parent, fixed frame, or display frame
  • 3D panel: incremental map_msgs/OccupancyGridUpdate for faster costmap-style maps
  • 3D panel depth map mode: Distance type (Z axis vs Euclidean distance along the ray)
  • Teleop panel: optional center stop control and optional stop on releasing direction buttons
  • Map panel: optional Show heading and Show velocity for LocationFix topics (arrowhead style, velocity vectors, per-topic toggles)
  • Message path functions: .@norm on arrays of scalars (e.g. in Plot and related panels)
  • Open in Raw Message panel in the 3D panel object inspector is hidden for basic seat users who cannot author layouts
  • Problems sidebar shows source-mapped stack traces for topic alias and topic converter errors
Performance
  • Lower memory use for WebGPU raw image decoding
  • Less GPU memory churn when decoding raw images
Fixes
  • Fixed event creation and display for zero-length device-based recordings
  • Fixed a crash when MCAP recordings begin at timestamp 0
  • Trimming or expanding streaming playback range keeps the current playback position
  • Fixed Plot panel settings so numeric reference-line values no longer appear invalid in the Y-value field
  • Sites no longer stay stuck showing as offline when they are online
  • Fixed extension panel directory picker closing when selecting a restricted path on desktop
  • Fixed a bug where some intervals were merged together when zooming in on the timeline
  • Diagnostics panels handle invalid topic names more reliably
  • Desktop: README and changelog render for locally installed .foxe extensions
  • Clearer flow when deleting a recording from its detail page
  • Download and coverage dialogs respect the account timezone setting
  • Fixed Windows Defender false positive when downloading or running the Foxglove Windows installer
  • Fixed publishing of protobuf bytes fields as base64 strings when publishing as JSON
Deprecated
  • User script editor moved to the right sidebar; the dedicated user script panel is deprecated

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel

Foxglove 2.49.0

πŸ“… Interactive Timeline​

The Timeline now shows device coverage on a continuous time axisβ€”one row per deviceβ€”so you can pan and zoom within the range you care about. Hover along a row to see device and time, drag to select a range that stays visible until you dismiss it, and share links that open with your selection already in view.

πŸ“ˆ Plot Panel: Current and Preview Point Indicators​

When the Plot panel X-axis value type is set to Message path, a visual indicator now highlights the points at the current playback time. Hovering over the playback timeline shows a preview indicator at the corresponding data points.

πŸ–ΌοΈ GPU-Accelerated Image Decoding​

Raw image decoding in the Image and 3D panels now uses WebGPU for faster performance when available, falling back to software decoding when it isn't. This release also adds NV12 (YUV 4:2:0) support and more accurate colors for common UYVY and YUYV camera formats.

New & Improved
  • Gauge, Indicator, Markdown, and State Transitions panels now reject Plot-only time-series message path functions with clear errors; Plot continues to support them
  • macOS manual update checks show in-app status while checking and downloading, and a top banner with Restart to update when an update is ready to install
  • Added Japanese and Chinese translations for previously untranslated UI strings
  • Added Add event to the command palette when the data source supports events
  • 3D panel falls back to embedded model data when a model URL fails to load
  • Extension activation errors in Problems are collapsed by default; expanding an entry shows a clearer stack trace that points to your extension’s source files
  • Embedded viewer: added seekPlayback to seek recorded data sources to a timestamp
  • Resolved conflicts between @foxglove/extension and create-foxglove-extension for extension setup
  • NaN and Infinity values in point clouds, laser scans, grids, and voxel grids (gradient or colormap modes) render as a visible animated checkerboard pattern
  • Clearer panel focus styling; the , shortcut toggles the focused panel’s settings sidebar open or closed
  • Raw Messages panel handles schema converter errors more reliably
  • Map panel handles schema converter errors more reliably
  • Clearer distinction between transform settings and transform nodes in the 3D panel
  • Change language commands in the command palette
  • Unified purple outline for panel selection across selection states
  • Panel settings API supports captions below inputs for extension authors
  • Added the GrandTour quadruped dataset to the examples page
Performance
  • Improved Raw Messages panel performance on large messages
API
  • API reference for events now documents eventTypeId and properties on responses
  • Sessions API: projectId on GET, PATCH, and DELETE is optional (still recommended)
Fixes
  • Fixed the first video frame at the start of playback not appearing in the Image panel
  • Fixed an embed authentication issue that could block logging in
  • Fixed streaming by recording key for self-hosted deployments that use index-in-place indexing
  • Fixed 3D and Image panel settings changing mid-frame during playback
  • Fixed user script autosave targeting the wrong layout when switching layouts
  • Fixed a crash when a WebSocket server sent a JSON message with a literal null body and no schema
  • Fixed stale index content when a recording was updated in an indexed bucket
  • Fixed errors when importing recordings from devices for non-admin users
  • Fixed extension panels from web-created layouts not loading on desktop
  • Fixed Map panel dropping historical points after switching topic time range modes

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel

Foxglove 2.48.0

πŸ€– URDF Joint State Control​

URDF robot models in the 3D panel can now be driven directly by sensor_msgs/JointState or foxglove.JointStates messages, performing forward kinematics within Foxglove. Previously, URDF visualization required publishing tf transforms, which often meant running complex forward kinematics calculations outside the app. See an interactive version in this playground.

πŸ—‚οΈ Sessions​

Sessions let you group recordings from a single device into logical units β€” a drive, a mission, a field test β€” so you can organize and visualize data by context rather than by file boundaries. Define custom properties (location, stack version, mission type) to filter and search across sessions, and open a session to load all its recordings as one continuous dataset. See docs, currently available on Team and Enterprise.

πŸ”Œ Remote Data Loaders​

Remote Data Loaders connect Foxglove to any queryable data source β€” internal databases, custom storage systems, or proprietary data lakes β€” by building a lightweight backend that produces MCAP on demand. The Remote Data Loader handles caching, seeking, and streaming so your team can visualize data directly from where it already lives, without exporting or re-uploading.

⌨️ Embedded Viewer Keybinding API​

The embedded viewer now supports keyboard shortcut customization. Teams embedding Foxglove into review tools or operator dashboards can override or suppress built-in shortcuts that conflict with the host application, and register custom keybindings that notify the parent β€” enabling keyboard-driven workflows like assigning quality ratings, navigating recording playlists, or controlling playback without leaving the embedded viewer.

The documentation site now features AI-powered search. Ask a question in natural language and get a synthesized answer drawn from the docs, alongside traditional keyword results.

New & Improved
  • Scene entities in the Image panel now synchronize with video frames when "Sync annotations" is enabled, preventing entities from rendering ahead of the displayed image
  • Added "Install local extension…" command to the command palette for quickly installing .foxe files
  • Added a type filter to the "Recently viewed" dashboard list, allowing filtering by files, connections, or recordings
  • Clicking a recent data source on the dashboard now loads the layout that was last used with that data source
  • Removed expand/collapse buttons for table rows that contain only primitive values
  • Clarified websocket frame-buffer overflow messaging so users can tell when drops happened while the tab was inactive
  • Added support for the "equidistant" distortion model as an alias for "kannala_brandt" in ROS camera schemas
  • Display a helpful warning when data imports stall at a self-hosted organization
  • Event time range editing has been standardized across Data pages and Viz. All editors now use consistent "Start time", "End time", and "Duration" fields with linked editing, replacing the previous mix of "Timestamp" and "Duration" vs. "Start time" and "End time".
  • Reordered main sidebar navigation to prioritize Timeline
Performance
  • Improved performance of image topics in 3D and Image panels
  • General performance improvements
API
  • v1/data/stream now accepts a projectId parameter to disambiguate devices with the same name in different projects
Fixes
  • Fixed 'Access blocked' error when loading OpenStreetMap street tiles in the desktop app
  • Fixed Image panel annotation metadata to support per-annotation values, which now correctly take precedence over top-level image annotation metadata
  • Fixed occasional "No coordinate frames found" error when seeking backwards
  • Raw Messages panel now shows an explicit error when a message path uses Plot-only time-series functions such as @delta, @derivative, or @timedelta
  • Fixed the Table panel showing a misleading "Cannot render primitive values" error when the message path points to a nonexistent field
  • Fixed time zone handling on the Timeline page
  • Fixed recordings with forward slashes in the recordingKey URL parameter failing to load
  • Fixed a crash in the Plot panel when data arrived before the chart canvas finished mounting
  • Fixed signing out from an embedded viewer not clearing partitioned cookies, preventing login loops
  • Fixed the forward arrow in the Timeline date picker appearing clickable when the time range cannot advance further
  • Fixed a Plot panel error when switching from "Custom field" timestamp to "Message path" x-axis
  • Fixed download options incorrectly appearing for the Remote Data Loader source
  • Fixed sync annotation error not clearing when turning off annotation visibility in the Image panel
  • Fixed fullscreen panel expansion not filling the workspace when the panel is inside a Tab panel
  • Fixed Plot panel message path function chaining so scalar functions work after @derivative, @delta, and @timedelta
  • Fixed the Gauge and Indicator panels incorrectly showing valid message path function suffixes as invalid
  • Fixed a crash when a topic converter returned an array containing null elements
  • Fixed unattached buffer error on video data from a User Script
  • Fixed copied topic names pasting in incorrect order when more than 9 topics were selected in the sidebar
  • Fixed cursor jumping to the end of message path fields when editing array indices or path segments
  • Fixed the Log panel constantly scrolling when a large number of log messages were present

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel

Foxglove 2.47.0

πŸ”§ Message Path Functions​

Message path syntax has been expanded with several new functions and capabilities. Use .@radians and .@degrees for unit conversion, .@timedelta to calculate time differences between consecutive messages, and .@rpy to convert quaternions to roll/pitch/yaw. Functions can now be chained together (e.g., /[email protected].@degrees), and filter expressions support enum names (e.g., /topic{status==OK}) with autocomplete suggestions. "Math modifiers" have been renamed to "message path functions" to reflect the broader scope.

πŸ—ΊοΈ Depth Map Point Cloud Improvements​

Depth image point clouds in the 3D panel now support colorization using a sibling RGB topic, making it easy to visualize color-mapped depth data from RGB-D cameras like Intel RealSense and Luxonis. This release also adds support for grayscale PNG depth images and custom color modes for 32FC1 and 8UC1 depth images in the Image panel.

πŸ“ Global File Drag and Drop​

Drop supported files anywhere on the view or dashboard pages to open them. Drag .mcap and other data files onto the app to load them in the current session, or drop .foxe extension files to install themβ€”no need to navigate to a specific panel first.

🏷️ Map & Image Panel Tooltip Updates​

The Image panel now supports hover tooltips for annotations. Also, both the Image and Map panel's tooltips can now display custom metadata. LocationFix and ImageAnnotations messages support a new optional metadata field (added in foxglove schemas v1.10.1), and GeoJSON features can include properties.metadata. Use metadata to surface information like object IDs, classification labels, or sensor info directly in your visualizations.

New & Improved
  • Command palette: Add panel, quick search for devices/events/recordings, Save layout, Revert layout changes, and panel settings shortcut (,)
  • Improved Experimental Remote Data Loader login flow with an in-app prompt to prevent browser popup blockers
  • Improved video decoding performance and memory use; avoids delay buildup during playback
  • Renamed "Download layout" to "Export layout" in the command palette
  • Improved Map panel performance with many pin markers; pin markers now support customizable color and size
  • Updated @foxglove/ulog dependency to fix BlobReader in Node.js and parsing of nested structs with padding or array fields
  • Updated the layout overwrite confirmation dialog to mention that changes can be restored using Layout History
  • Added keyboard shortcut r to reset view in Plot and State Transitions panels
  • Added "Copy image" to the Image panel context menu to copy the displayed image to the clipboard
  • Added "Heading (position + yaw)" follow mode to the 3D panel; Position and Fixed modes now use fixed frame orientation (Z-up)
  • Map panel latest-message markers are now more visually distinct from historical markers and render above them
  • Added support for JSON Schema $ref references when using JSON-encoded data in MCAP files and Foxglove WebSocket connections
  • Added keyboard shortcuts (Shift+↑/↓) to increase and decrease playback speed
  • Removed four large action cards from the dashboard; added "Explore example datasets" card when no recent items are available
  • Added copy and plot action buttons for quaternion RPY values in the Raw Messages panel
  • Custom map layers in the 3D panel now default to drawing behind other scene elements
Performance
  • Improved Audio panel waveform rendering performance and added loading feedback while range audio data is fetched
  • Optimized message converters for lower memory and CPU usage
  • Improved scrubbing performance
API
  • POST /events now supports optional projectId for event creation
  • Webhook events for event.updated and device.updated
  • Embedded viewer: autoplay property on file, device, remote-file, and recording data sources
  • LLM-optimized API docs at /api/llms.txt and /api/llms-full.txt
Fixes
  • Fixed Map panel "last N seconds" mode clearing the trail every N seconds during live playback
  • Fixed playback buttons getting stuck in their hover state
  • Fixed extra spacing at the top of the event details sidebar view
  • Fixed event creation overlay in State Transitions and Plot panels to immediately reflect the selected event type color
  • Fixed grid flickering in the 3D panel when using "Position" or "Fixed" mode with "Draw behind" enabled
  • Fixed keyboard shortcut text being invisible in sidebar navigation tooltips
  • Fixed Map panel GPS points clearing when toggling topic visibility
  • Fixed per-topic arrow visibility when using live data connections in the 3D panel
  • Fixed Plot panel clearing when hiding a series that uses topics from User Scripts
  • Fixed layout dropdown menu not closing after selecting "Revert", "Save changes", or "Delete"
  • Fixed Plot panel panning horizontally in XY plots constantly resetting the view
  • Fixed Video panel showing "waiting for keyframe" when seeking during playback
  • Fixed spurious "missing transform" error icons on grid layers during initial load
  • Fixed recordings table column widths resetting when changing page or sort order
  • Fixed Map panel crash during teardown
  • Fixed Map panel covariance ellipses blocking mouse interactions with point markers from other topics
  • Fixed drag-and-drop for topics and panels in the embedded Foxglove viewer
  • Fixed camera-dependent transparency artifacts for SceneEntity cubes in the 3D panel
  • Fixed Image panel crash when hovering over images with invalid camera calibration
  • Fixed "Data went back in time" warnings when seeking
  • Fixed crash when receiving malformed TF messages with non-array transforms data
  • Fixed crash when receiving malformed JSON messages over Rosbridge connections
  • Fixed enum names not displaying in Raw Messages panel when using a filter after a slice
  • Fixed time input handling in download/export dialogs causing unexpected date changes
  • Updated layout overwrite confirmation to open when saving org layouts from Layout History; added clickable text to open Layout History from the modal
  • Fixed Map panel crash when metadata contains undefined values
  • Fixed remote data loader showing HTTP status text instead of error messages from the loader
  • Fixed tooltip flickering when hovering over Map panel points during playback
  • Fixed Image panel annotation tooltips not updating when underlying data changes while the mouse is stationary
  • Fixed SceneEntity metadata not appearing in Image panel hover tooltips; updated Image panel docs to list SceneEntity/SceneUpdate as supported messages
  • Fixed Table panel only showing the first array item when using [:] (slice-all) in the message path
  • Fixed message path function modifiers like @abs and @add not being applied when using streamed data sources
Deprecated
  • Removed the experimental PanelOverlayExtension API
  • Removed the Velodyne data source from "Open connection"

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel