- name: foxglove-studio
- description: Integrated visualization and diagnosis tool for robotics. Foxglove helps robotics teams explore, collaborate on, and make sense of their robots’ data. It provides 3D visualization, plots, image panels, and diagnostic tools for ROS 1, ROS 2, and custom robotics data formats.
- snapcraft: (electron-builder)
- upstream: (closed source)
- upstream-relation: upstream maintainer (Foxglove Technologies Inc)
- supported-category: IDEs / debug tools
- reasoning:
We have been publishing foxglove-studio on the Snap Store with strict confinement since 2021 and have iteratively attempted to resolve hardware acceleration and access issues through proper interfaces. Despite these efforts, performance remains significantly degraded compared to our .deb package, leading us to consider deprecating the snap entirely. Classic confinement would allow us to provide a comparable experience to our other Linux distribution methods.
Hardware Acceleration & GPU Driver Access
Foxglove is a GPU-intensive / WebGL 3D visualization application. We have implemented the recommended strict-confinement GPU workarounds:
- Added GPU stage packages:
libglu1-mesa,libvulkan1,libtinfo5(following https://snapcraft.io/docs/gpu-support) - Included
defaultplug which provides OpenGL access
Despite these measures and a fix released in v2.5.0 (May 2024), we continue to experience performance issues with the snap package compared to our .deb distribution. The sandboxing overhead and indirect GPU driver access in strict confinement appears to cause degraded rendering performance for our WebGL-based 3D panels.
Robotics Hardware Access
Foxglove connects to robotics hardware for teleoperation and visualization:
- Joysticks/gamepads: We added the
joystickplug andhardware-observeinterface for gamepad support - Cameras: We added the
cameraplug for webcam access in extension panels
While these plugs enable basic functionality, the strict confinement model requires users to manually connect interfaces, which creates friction compared to the .deb package experience.
Precedent
Similar developer/visualization tools have been granted classic confinement:
- VS Code - IDE
- Blender - 3D visualization
Foxglove serves an equivalent role for robotics developers as these tools serve for software developers and 3D artists.
- I understand that strict confinement is generally preferred over classic.
- I’ve tried the existing interfaces to make the snap work under strict confinement.