Substrate v0.1.7
Substrate now bridges robotics hardware and simulation with real-time telemetry, multi-stack Docker support, and a redesigned workspace for managing complex projects.
Download Substrate v0.1.7 for macOS, Windows, and Linux
What's New
- 🤖 Five simulation stacks in Docker — PX4 OFFBOARD, ArduPilot, ROS2 Nav2, ROS2 MoveIt2, and bare Gazebo with built-in MCP servers for direct control
- 📊 Live data ingestion pipeline — stream telemetry from Gazebo, MAVLink, ROS2 (ULog), and MCAP files into a unified time-series store with schema discovery
- 🎛️ Adaptive robot dashboards — battery voltage, sensor health, joint state, and drone attitude streamed from hardware or sim with zero-latency HUD rendering
- 🗂️ Workspace tabs — switch between Code editor and per-source Runtime tabs; each source auto-builds its own panel layout (3D viewer, plots, logs, inspector)
- 🎨 3D rendering overhaul — cascaded shadow maps, ambient occlusion, distance fog, anisotropic filtering, and Rerun-aligned transform trees
- 📡 Hardware connectivity — MAVLink heartbeat detection, sensor bitmask parsing, joystick relay for manipulators, and velocity command routing to
/cmd_vel
- 🚀 Docker GPU detection — automatic NVIDIA runtime setup with fallback graceful degradation
- ⏱️ MCAP playback — scrubber-driven seek with ingest budgets, instant indexing, and auto-stop on encoder exit
Improved
- Runtime bar shows per-source topic count, identity chip, and action buttons tailored to sim/robot/log type
- Tab bar with scroll, overflow chevron, and close-on-hover for managing multiple sources
- Panel catalog with click-to-add, per-view entity filters, and preset layouts (Sim, MCAP, Robot defaults)
- Camera follow-entity now resolves transforms reactively without blocking paint loop
- JPEG/PNG image preview decoding in selection inspector
- Keyboard shortcuts for tab switching and transport control
Fixed
- MAVLink CRC accumulator missing mask—all outgoing messages had corrupt checksums (now fixed)
- Offboard drone commands now route to onboard port (14540) instead of GCS port (14550)
- Reentrant mutex deadlock in viewer auto-fit and ECS watcher
- Source-keyed error routing and DRY config methods across multi-source architecture
- StoreView cache invalidation on target frame change and source rebind
- Point cloud and TF state cleanup on source removal
- MCAP auto-seek guards (only on EOF, not initial load) and playback pause-on-load restoration
Wires cross the stars now,
One remote, many machines—
Robots dance as one.