- Create custom C++ modules — the PyPI wheels do not support linking external C++ modules. Building from source is the only way to integrate your own modules into a Basilisk simulation.
- Enable optional subsystems —
opNav(OpenCV-based visual navigation) andmujocophysics are disabled in the standard wheel and must be toggled on at build time. - Debug or modify Basilisk internals — access to the full source tree, IDE project files, and C/C++ debug symbols.
- Contribute to the repository — all development work requires a local source build.
If none of the above apply to you, install Basilisk with
pip install bsk and skip this section entirely.Prerequisites
All platforms require the following tools before you run the build. The versions listed here are the ranges validated by the Basilisk CI pipeline.| Tool | Version range | Notes |
|---|---|---|
| Python | 3.9 – 3.14 | Python 3.8 is deprecated and will be removed April 2026. Use a 64-bit installer. |
| CMake | 3.26 – 4.0 | Installed automatically via pip from requirements_dev.txt. |
| Conan | 2.0.5 – 2.23.0 | Package manager used to fetch and compile C++ dependencies. Installed via pip. |
| SWIG | 4.2.1 – 4.3.1 | Generates Python bindings for C/C++ modules. Installed via pip. |
| C++ compiler | Platform-dependent | Xcode on macOS, GCC on Linux, Visual Studio 17 2022 on Windows. |
Python runtime dependencies
The following packages are installed automatically when you build Basilisk:How the build works
The entry point for every build isconanfile.py in the Basilisk root directory. Running it:
- Fetches and compiles C++ dependencies with Conan (protobuf, ZeroMQ, OpenCV if requested, etc.).
- Generates an IDE project or makefile for your platform inside the
dist3/folder. - Compiles the project unless you pass
--buildProject False.
Platform guides
macOS
Xcode, Homebrew, and Apple Silicon instructions.
Linux
Debian/Ubuntu and Fedora setup.
Windows
Visual Studio 2022 and PowerShell setup.
Other topics
Custom modules
Build external C++ modules alongside Basilisk.
Containers
Pull and run the official Docker image.