# 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 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 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. ## 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.