# Host SITL Host SITL is Kaptan's deterministic closed-loop simulation tier. Gazebo sends simulated IMU and declared noisy local position/velocity observations over a private loopback protocol. The Rust process runs the ESKF, safety supervisor, trajectory, controller, and allocator, then returns four virtual motor fractions to Gazebo. It is a pre-bench software gate, not a physical-flight validation. ## Run the closed loop ```sh cd firmware docker compose -f tools/sitl/compose.yaml up -d --build tools/sitl/kaptan-sim ready tools/sitl/kaptan-sim move 5 3 1 --wait tools/sitl/kaptan-sim land 0 0 --wait docker compose -f tools/sitl/compose.yaml down ``` For the reproducible command-path gate, use: ```sh cd firmware tools/sitl/e2e-smoke.sh ``` The smoke scenario verifies ascent, translation, descent, landing, flat-plane proximity, and zero applied motor fractions after landing. Its reference world contains only a visual landing pad; the pad has no collision geometry and never contributes a controller or truth observation. Open , connect to `ws://localhost:9002`, and leave authorization blank to view the world. ## Quad-X profile SITL starts through the same central `ConfigManager` composition used by the host protocol tests. Create and validate a private host profile file with: ```sh kaptan-sitl config write-default kaptan-sitl.cbor kaptan-sitl config validate kaptan-sitl.cbor kaptan-sitl serve --config kaptan-sitl.cbor ``` The file selects the restart-only profile used to build the estimator, controller, allocator envelope, safety supervisor, and optional log filter at process start. It is not the raw GCS upload blob. `kaptan-sitl serve` retains the central manager for that boot but does not yet open a MAVLink config/log endpoint; see [Configuration](configuration.md) for the exact upload groundwork and safety boundary. ## Limits This model does not validate terrain, vision, flow/range sensing, wind, vibration, battery/ESC behavior, sensor latency/jitter, actuator faults, or physical touchdown sensing. Add those only as a reviewed sensor/contact model, not as a display-only shortcut.