Substrate is built in Rust with a split-process architecture designed for one goal: make everything feel instant, even when your workspace proxy runs on a remote machine or your simulation spans multiple Docker containers.Documentation Index
Fetch the complete documentation index at: https://bedrockdynamics.studio/docs/llms.txt
Use this file to discover all available pages before exploring further.
Why It’s Fast
Traditional editors that run editing logic on the backend suffer from input latency when used remotely — every keystroke must cross the network before the user sees a response. Substrate avoids this entirely by keeping the editing engine in the same process as the UI. The result is that typing, cursor movement, selection, and syntax highlighting are always local operations. They never wait on network I/O, disk access, or simulation state. Everything else — file synchronization, language servers, Docker management, simulation streaming — runs in a separate Proxy process that can be local or remote without affecting editing performance.This is why Substrate feels instant even over SSH — keystrokes never cross the network.
The Split
Substrate’s architecture divides responsibility between two processes: the UI and the Proxy.UI Responsibilities
- Keyboard and mouse handling
- Text buffer (rope-based)
- Cursor, selection, multi-cursor
- Syntax highlighting
- Panel layout and rendering
- Theme and configuration UI
Proxy Responsibilities
- File read/write and watching
- LSP server management
- Git operations (status, diff, blame)
- Terminal multiplexing
- Docker container management
- Simulation data streaming
- Plugin execution (WASI sandbox)
Rendering
Substrate uses wgpu for all rendering, which provides GPU-accelerated output through the platform’s native graphics API:| Platform | Backend |
|---|---|
| macOS | Metal |
| Windows | Vulkan / DirectX 12 |
| Linux | Vulkan |
Simulation Bridge
For robotics simulation features, the Proxy communicates with Gazebo through a dedicated simulation bridge (substrate-sim-bridge). This bridge runs as a sidecar process inside the simulation Docker container and streams data to the Proxy over gRPC.
Scene Graph
The bridge reads the Gazebo scene and streams entity hierarchies, model descriptions, visual meshes, and material properties to the IDE. Changes in the simulation (spawned or deleted models, pose updates) are streamed in real time.
Telemetry
Sensor data, joint states, and physics metrics flow through the bridge as time-stamped topic messages. The Proxy routes these to the UI where they populate plots, the topic browser, and readiness indicators.
Transforms
The TF (transform) tree is streamed continuously, providing the parent-child frame relationships needed to render entities at their correct world-space positions in the 3D viewer.