Write tests in Python. Run against simulation before hardware exists. Deploy to real hardware with zero test changes. Let AI tell you what broke.
Built to replace expensive legacy dSPACE/NI toolchains for teams that move fast.
Write tests you actually understand. No proprietary scripting languages. Full IDE support, type hints, and familiar async/await patterns.
async def test_engine_startup(rig: Rig)The exact same test file runs against a virtual simulation or real hardware. Switch from virtual.toml to orin.toml. Test unchanged.
JUnit XML output works with every CI pipeline out of the box. GitHub Actions, GitLab CI, Jenkins — headless, no display required.
crucihil run --output results.xml11 MCP tools connect your AI client directly to test results, signal traces, and rig state. Ask what broke and why — get an answer in seconds.
describe_failure(run_id) → root causeThree steps. No MATLAB. No proprietary scripting. No $50K licenses.
Use the Rig fixture injected by the framework. Send CAN frames, assert signal values, inject faults — all in plain Python.
The virtual rig runs in-process — no hardware, no CAN adapters, no network. Full test in milliseconds. Catches logic bugs before day one.
Swap the TOML. The test is unchanged. CAN backend switches from virtual to SocketCAN or PEAK. Same assertions, same signals, real hardware.
CAN dropout, assertion after recovery — 20 lines of Python, works on virtual and real hardware.
Test code only ever touches Layer 2. Hardware details live in TOML config, never in test code.
Open source core. Cloud-managed professional tier. Enterprise on your terms.
Self-hosted. Full feature set. Up to 2 rigs. Perfect for prototyping and small teams.
Cloud-managed. Unlimited rigs. We handle the infra so your team focuses on tests.
On-premise control plane. SSO. Audit logs. Kubernetes. For teams with existing dSPACE or NI investment.