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+Rightsnap 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/OccupancyGridUpdatefor 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
LocationFixtopics (arrowhead style, velocity vectors, per-topic toggles) - Message path functions:
.@normon 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
.foxeextensions - 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
Primary Site v0.0.98
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
seekPlaybackto seek recorded data sources to a timestamp - Resolved conflicts between
@foxglove/extensionandcreate-foxglove-extensionfor 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
eventTypeIdandpropertieson responses - Sessions API:
projectIdon 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
nullbody 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
Primary Site v0.0.97
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.
π AI-Powered Docs Searchβ
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
.foxefiles - 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/streamnow accepts aprojectIdparameter 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
recordingKeyURL 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
Primary Site v0.0.95
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/ulogdependency to fixBlobReaderin 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
rto 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
$refreferences 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 /eventsnow supports optionalprojectIdfor event creation- Webhook events for
event.updatedanddevice.updated - Embedded viewer:
autoplayproperty on file, device, remote-file, and recording data sources - LLM-optimized API docs at
/api/llms.txtand/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
@absand@addnot being applied when using streamed data sources
Deprecated
- Removed the experimental
PanelOverlayExtensionAPI - Removed the Velodyne data source from "Open connection"
Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel
Foxlet v1.4.7
Primary Site v0.0.94
Added
- Added the
MULTIPART_COPY_PART_SIZEenvironment variable to the inbox listener to configure copy part size when transcoding completes. - Added the
total_bytes_read_from_object_storagePrometheus metric to the query service
Fixed
- Fixed etag handling when files in the lake bucket had been overwritten
- Fixed etag mismatch logging error, now logs warning
- Fixed index in place streaming by range being exclusive instead of inclusive