Slipstream is a motion-rig platform that combines MCU safety control, real-time telemetry ingestion, desktop dashboard control, and packaging for end users.
- Flutter dashboard is actively used as the main operator UI.
- MCU maintenance/profile calibration commands are implemented (tuning + geometry + persistence).
- Multi-game adapter architecture is in place (AC/F1 built-ins + plugin interface; iRacing plugin reference).
- Firmware manager + desktop packaging pipelines are implemented.
- Hardware-in-loop calibration repeatability runner exists at
hotpath/tools/hil_calibration_repeatability.py. - Self-hosted workflow execution is intentionally blocked on public repositories for security.
Software-code/App/: Flutter desktop app (Live Dashboard, System Status, Data & Sharing).hotpath/services/dashboard/: gRPC dashboard backend + MCU bridge.hotpath/services/heartbeat/: USB CDC framing/heartbeat sender.hotpath/services/physics/: telemetry-to-motion engine + adapter registry/plugin loader.firmware/mcu/: STM32 firmware + host-native unit tests.packaging/andscripts/package/: Windows/macOS installer assets and build scripts.docs/: architecture, API, engineering, and release documentation.
Run the backend and app in separate terminals.
Prerequisite: dashboard server build requires gRPC + protobuf toolchain available.
macOS/Linux:
export SLIPSTREAM_MCU_BRIDGE=1
export SLIPSTREAM_MCU_PORT=/dev/ttyACM0 # adjust for your rig
export SLIPSTREAM_MCU_BAUD=115200
cmake -S hotpath/services/dashboard -B hotpath/services/dashboard/build
cmake --build hotpath/services/dashboard/build
./hotpath/services/dashboard/build/dashboard_server 127.0.0.1:50060Windows (PowerShell):
$env:SLIPSTREAM_MCU_BRIDGE="1"
$env:SLIPSTREAM_MCU_PORT="COM3" # adjust for your rig
$env:SLIPSTREAM_MCU_BAUD="115200"
cmake -S hotpath/services/dashboard -B hotpath/services/dashboard/build
cmake --build hotpath/services/dashboard/build --config Release
.\hotpath\services\dashboard\build\Release\dashboard_server.exe 127.0.0.1:50060cd Software-code/App
flutter pub get
flutter run -d chromeRun this in a third terminal while backend is up:
python -m pip install grpcio grpcio-tools protobuf
python hotpath/tools/hil_calibration_repeatability.py \
--address 127.0.0.1:50060 \
--profile-id hil-repeatability \
--car-type 0 \
--cycles 3 \
--auto-end-sessionReport output:
hotpath/services/dashboard/data/hil/calibration-repeatability-summary.json
Dashboard core tests:
cmake -S hotpath/services/dashboard -B hotpath/services/dashboard/build
cmake --build hotpath/services/dashboard/build
ctest --test-dir hotpath/services/dashboard/build --output-on-failureMCU host-native tests:
cd firmware/mcu
pio test -e nativeStart with docs/README.md for architecture/API/release references.
Because this repository is public, do not attach persistent self-hosted runners directly to it. Use local rig execution for HIL scripts or run self-hosted automation from a private mirror/private repo runner group.
Self-hosted HIL/smoke workflows are configured to fail-fast on public repository context by design.