Skip to main content
Substrate integrates simulation into your development workflow. Launch Software-In-The-Loop (SITL) environments, monitor system readiness, and iterate on your code without leaving the editor.

Launching a Simulation

Open the SITL Launcher panel from the left sidebar. Select a simulation stack, robot model, and world, then click Launch. Substrate pulls the container image, allocates ports, and starts the environment automatically.

Simulation Stacks

Pre-configured environments that bundle a physics engine, controller software, and the Substrate bridge into a single Docker image.

World Selection

Built-in worlds (empty, warehouse, outdoor terrain), custom SDF files, or Gazebo Fuel worlds referenced by name.

Docker Isolation

Each simulation runs in its own container. Substrate manages image pulls, port allocation, and container lifecycle.

Multi-Vehicle

Spawn multiple instances in a shared world. Ports are allocated automatically to avoid conflicts.

Readiness Monitoring

The readiness panel tracks each subsystem as it comes online. Indicators transition from red to green so you know exactly what is ready and what is still initializing. The checks are evaluated against the running system, not hardcoded to a single platform:
CheckWhat It MonitorsApplies To
HeartbeatController communication link and system statusMAVLink vehicles
State EstimationEstimator convergence and innovation flagsVehicles with inertial navigation
LocalizationGPS fix, satellite count, or alternative position sourceVehicles requiring global position
System StatusOverall controller healthAll connected systems
Readiness checks run continuously. If state estimation diverges or a sensor feed drops during operation, the indicator reverts to a warning state.

Robot Categories

Substrate organizes simulations into categories based on the type of system you are building. Each category maps to one or more simulation stacks.
Quadcopters, fixed-wing aircraft, and VTOL hybrids.Aerial vehicles use MAVLink for communication and are supported by the PX4 and ArduPilot stacks. Available PX4 models include x500 (quadrotor), rc_cessna (fixed-wing), and standard_vtol (hybrid).
StackControllerModels
PX4 + GazeboPX4 v1.16.1x500, x500_depth, rc_cessna, standard_vtol
ArduPilot + GazeboArduPilot SITLCopter, Plane, QuadPlane
Multi-vehicle: Spawn up to 10 vehicles in a shared world. Each instance runs a separate autopilot with Y-axis offset spacing and independent MAVLink ports.Flight commands: Arm, takeoff, land, go-to waypoint, return to launch, and mode switching are available through the AI assistant and the command palette. See Flight Modes & Commands.
For PX4 stacks, use spawn mode (PX4_MODEL=x500). Do not set PX4_GZ_MODEL_NAME — it enables attach mode, which skips sensor spawning and prevents the state estimator from converging.

Docker Requirements

Simulations require Docker to be installed and running on your machine. Substrate will display a clear error if Docker is not available. See the Docker Image Reference for container details.