Test any vehicle logic before HIL

Virtual vehicle integration testing

Teams and individual developers are using RemotiveTopology to test everything from individual nodes to entire vehicle systems, and their interactions early, without hardware, and without having to wait for other teams to mature the dependencies. 

Installation guide
Schedule a demo
Copy
1# Subscribe to the CAN bus
2sub = await broker_client.subscribe(("FLCM-BodyCan0", 
3        [
4          "TurnLightControl.LeftTurnLightRequest", 
5          "TurnLightControl.RightTurnLightRequest"
6        ]
7      ))
8)
9# Check that the turn light request arrive within two seconds
10await await_at_most(seconds=2).until(
11    partial(take_values, sub),
12    equal_to({
13        "TurnLightControl.LeftTurnLightRequest": 1,
14        "TurnLightControl.RightTurnLightRequest": 0
15    }),
16)
17
Happy developer performing integration tests in a software environment.

Verify integrations in central pipelines across ECUs, apps and features. It works for remote work setups and is more consistent and easier to reproduce than end-to-end tests requiring hardware rigs - run as often as you need before thinking of HIL.

Test any vehicle logic early - without waiting for hardware

Whether you're working on body control, infotainment, personalization, or diagnostics, RemotiveLabs brings the ability to test any vehicle logic early - essentially bringing the car onto your desktop, allowing you to iterate quickly, stay in sync with your team, and reduce testing costs. Use real signal data, networks, and open tooling - all from your laptop. Shift integration left. Save time later by validating platforms from a functional perspective first.

Describe and run your topology

With RemotiveTopology, you can describe your topology in a way that is instantly executable (learn more: Integration testing from day 1). Freely mix no-code mocks, behavioural models, Simulink models and vECUs like Synopsys Silver. Simulate the part of the vehicle network needed for your use case and run tests locally on a Linux laptop or directly in CI pipelines to collaborate on team level. (Learn more: Integrate with CI pipeline).

Once available, it is also possible to replace nodes with actual hardware. 

RemotiveTopology supports production communication, i.e. all bus communication is the same as in the production vehicle topology, including how network packets are encoded, IP/ MAC addresses, VLANS etc. This allows the use standard tools such as Wireshark or candump to inspect the network.

Flowshart 1) Platform definition 2) Topology configuration and 3) Executable topology

Start building directly with full control over dependencies.

Easily add behavior using Python

With RemotiveTopology you can create Python-based behavioral models to incorporate specific logic and dynamic behaviors. Easily implement the behavior you need to test your code or prototype and share more complex models across topologies and teams.

Copy
1class BCM:
2    body_can_0: CanNamespace
3
4    async def on_hazard_light(self, frame: Frame) -> None:
5    hazard_signal = frame.signals["HazardLightButton.HazardLightButton"]
6
7    await self.body_can_0.restbus.update_signals(
8        RestbusSignalConfig.set("TurnLightControl.RightTurnLightRequest", value=hazard_signal),
9        RestbusSignalConfig.set("TurnLightControl.LeftTurnLightRequest", value=hazard_signal),
10    )

When a test case requires specific behavior from a topology participant, but no model, simulation, or hardware is available, Python-based logic can replace the mock to enable accurate testing.

Notice that the Python models will participate in the network using production communication exactly as if it was running in a vehicle.

Your Python model can be used by other teams dependent on your nodes.

Once a high-fidelity model, production code, etc. is available, it can also run in your topology, replacing the simple Python model.

Infrastructure as code

With RemotiveTopology, code is used to describe how to instantiate your platform and execute your tests. Code that can be tracked with version control. This allows other teams to reuse your topology and tests, and of course, automate tests in CI pipelines. If there is a bug, it can be reproduced by anyone.

Copy
1# ECUs to instantiate
2ecus:
3  # a mock for SCCM
4  SCCM:
5    mock: {}
6  # a python model for BCM
7  BCM:
8    models:
9      bcm:
10        type: container
11        container:
12          build:
13            dockerfile: ../Dockerfile
14          volumes:
15            - ../ecus/bcm:/app/bcm
16          working_dir: /app
17          command: python -m bcm
18  # no behavior needed for FLCM
19  FLCM:
20    channels:
21      BodyCan0:
22

With RemotiveTopology, code is used to describe how to instantiate your platform and execute your tests. Code that can be tracked with version control. This allows other teams to reuse your topology and tests, and of course, automate tests in CI pipelines. If there is a bug, it can be reproduced by anyone.

One framework to test components, services, HMI etc.

RemotiveTopology enables individuals and teams to instantiate the parts of a platform that is tailored for their task and device under test. This removes the dependencies on other teams’ deliveries; if parts are missing for integration you can easily mock them and control their behaviour.

Single component integration testing

RemotiveTopology enables you to create a component test framework with the surrounding nodes, directly from the platform description. No more waiting for other teams; engineers can start integration testing from day 1.

Central computer with many dependencies

Run advanced scenarios where large parts of the mechatronic rim and zone controllers need to be simulated. With RemotiveTopology the complexity doesn’t grow for more complex topologies. Large topologies are still infrastructure as code and are created and controlled in the same way as for small topologies.

Services that span several components (central computer, zone controller, mechatronic rim ECUs)

Traditionally, testing services that span several nodes in a platform (e.g., comfort, personalization, body control, etc.) happens late in platform projects, as mature nodes for testing are not available early on. RemotiveTopology enables engineering organisations to take ownership of the nodes that they need, starting day 1 with mocks and behavioral models, and then incrementally increasing the fidelity to virtual ECUs and onto hardware as they become available.

Infotainment testing with e.g. Cuttlefish

To make it easy to test infotainment systems and functionality, RemotiveTopology supports both closed-loop and open-loop simulation. You can mock and control the behavior of nodes of your choosing (closed loop) in combination with replaying recorded drive cycles with GPS coordinates, speed etc, including video feeds (open loop) to test authentic scenarios.

Get started

Visit our product overview or schedule a demo to learn more about product capabilities, pricing and how it fits into your development workflow.

Installation guide
Examples

Jump straight into action

Head over to the installation guide to set up RemotiveTopology in minutes. For practical examples and usage patterns, check out our GitHub repository.

Free evaluation

for 30 days

Mocking a vehicle on a Linux laptop to test the VCU 

Volvo Cars uses RemotiveTopology to simulate entire vehicle topologies on a developer’s laptop. By virtualizing ECUs and orchestrating signals with Docker, teams can test usage modes like “driving in reverse” early—without waiting for HIL rigs. This setup runs over 400 integration tests a week, scales easily to 20+ ECUs per laptop, and integrates smoothly into CI pipelines for fast, hardware-free development.

In this example the device-under-test is the Vehicle Control Unit (VCU) and RemotiveTopology is used to simulate the mechatronic rim.

The VCU, running in AWS Graviton is fed with data from mocks and behavioal models running inside RemotiveTopology, controlled through test suites in pyTest.

Early integration testing of core computer functionality in a virtual environment reduces the reliance on scarce/unavailable and costly HIL rigs.

Mocking a vehicle on a Linux laptop
RemotiveTopology Volvo Cars mocking a vehicle for user mode testing
Integrate with Synopsys Silver

Integrate high-fidelity software simulations for increased testing accuracy – vECUs replicates real-world execution for deterministic results.

Validate and integrate individual software components while ensuring seamless operation across the full vehicle network.

Combination allows automotive OEMs to simulate all domains of a modern vehicle network in one place.

Synopsys running with RemotiveTopology: Combining early and advanced software testing.

More about integrating Synopsys
Run Synopsys Silver for increased fidelity together with your RemotiveTopology.
Run integration & functional tests in CI

Volvo Cars: Graviton-powered virtual ECUs enable cloud-based validation of core compute logic with high realism. RemotiveTopology setup with Zuul CI pipeline enables a sense of everyone sitting in the same room, with the same repo, talking to each other.

Test complex software flows across ECUs, apps, and services—without waiting for hardware or full system maturity.

Combining CI pipelines with RemotiveTopology brings stable, scalable simulation into everyday development.

Overview of planned test cases for Software In the Loop (SIL) in coming architectures. A large portion of the tests will be using RemotiveTopology to simulate peripherals, resulting in a fully functional system during tests.

Integrate with CI pipeline
Volvo Cars CI testing overview of central computers and zone controller tests enabled by RemotiveTopology.
Related articles

Blog posts related to virtual integration testing

Blog