<-Conformance Testing Go to ToC
1 General
The CAV-TEC V2.0 Reference Software is part of the MPAI-AIF V3.0 Reference Software: the subsystems of Connected Autonomous Operation are Composite AIMs of CAV-TEC, run by a Controller of MPAI-AIF V3.0 and driven by its User Agent. The software is written in C# for .NET 10.
The Implementations are reference Implementations: they substantiate the interfaces, the Data Types and the architecture of CAV-TEC, and let its Conformance Testing be exercised. Their algorithms are simple, and are not intended to drive a vehicle on a road.
2 Components
Table 1 – Components of the Reference Software
| Subsystem | Implemented AIMs |
| Human-CAV Interaction | The conversational AIMs of MPAI-MMC V2.5 – speech recognition, dialogue processing, speech synthesis, the avatar – with a road map, through which a person requests a destination and converses with the CAV. |
| Environment Sensing Subsystem | Spatial Attitude Generation, Basic Visual Scene Description and Basic Environment Description, with a feedback of the Basic Environment Descriptors of previous instants. |
| Autonomous Motion Subsystem | Route Selection Planning, Path Selection Planning, Full Environment Description, Motion Selection Planning, Traffic Obstacle Avoidance and AMS Memory. |
| Motion Actuation Subsystem | AMS-MAS Message Interpretation, MAS Spatial Attitude Generation from the motion sensors, MAS Response Analysis and Ice Condition Analysis. |
| Connected Autonomous Operation | The four subsystems as one Module under one Controller, run continuously; the exchange with remote CAVs. |
3 Software architecture
Figure 1 depicts the software architecture of the Reference Software: its components, each with the .NET assembly that holds it and its main classes.

Figure 1 – Software architecture of the CAV-TEC V2.0 Reference Software
The figure has four layers, from the top.
Test environment. The Simulation (Mpai.Cav.Recordings) is the world the CAV drives in. Simulation advances the world in steps of 0.1 s and moves the other road users; Vehicle is the body of the CAV, moved by its motor, brakes and steered wheels and measured by motion sensors with noise and bias; CameraRenderer renders the frames of the camera from where everything is; SyntheticDrive makes a drive, with its ground truth, from a seed. The tests (Mpai.Aif.Tests) contain the User Agent of the CAV, CaoInTheLoop: at every step it writes what the sensors give to the input Ports of the Module, waits for the CAV to decide on the frame, reads the commands at the output Ports and gives them to the vehicle. CaoDemo records a drive, the decisions of the CAV and its motion for review.
MPAI-AIF V3.0. The User Agent reaches the Controller only through the Controller API (Mpai.Aif.Api). The Controller (AIF.Controller) reads the AIM Instance Metadata of the Module, asks the provider of each subsystem for the Implementation of each AIM Instance, connects the Ports of the AIMs with the Channels of the Topology and executes each AIM when its data arrive (ContinuousExecutor). Communication (AIF.Channels) carries the data between AIMs and, through ExternalTransport, the Ego-Remote Messages to and from remote CAVs in range. Storage holds the Shared Storage of the Module. Metadata validates each AIM Instance Metadata against its AIM Metadata and each datum against the schema of its Data Type. Trust admits the CAV and signs and verifies every message exchanged between CAVs.
Connected Autonomous Operation. The CAV is one Module, 1CAV-CAO-V2.0-I01, with four Sub-AIMs, the subsystems of CAV-TEC. Each is a Composite AIM whose AIMs are implemented in its own assembly and given to the Controller by its provider: HciProvider builds Human-CAV Interaction from AIMs of MPAI-MMC V2.5 and of OSD, PAF, CAE and CVE; EssProvider, AmsProvider and MasProvider give the AIMs of CAV-TEC listed in Table 3. Two assemblies are shared by the subsystems: Map (Mpai.Cav.Map), the road network from which the Offline Map and the Routes are made, and Core (Mpai.Core), the Data Types as C# classes and their JSON.
Files read at start. The AIM Metadata of the CAV AIMs (schemas/CAV2/V2.0), the AIM Instance Metadata of their Implementations (AIMs/AMDs), the settings of each AIM – model paths, their SHA-256 and parameters (AIMs/aim-settings.json) – and the models, which are not in the repository.
Table 2 gives each component, the assembly and folder that hold it, its main classes and its role.
Table 2 – Software components of the Reference Software
| Component | Assembly and folder | Main classes | Role |
| Simulation | Mpai.Cav.RecordingsCAV/Recordings |
Simulation, Vehicle, CameraRenderer, SyntheticDrive |
The world the CAV drives in: road users, the vehicle moved by its mechanical subsystems, the sensor data rendered from where everything is, the ground truth |
| User Agent of the CAV | Mpai.Aif.TestsTest/Mpai.Aif.Tests |
CaoInTheLoop, CaoDemo |
Starts the Module through the Controller API, writes what is sensed to its input Ports, returns its commands; records a drive for review |
| Controller API | Mpai.Aif.ApiAIF/ControllerApi |
ControllerApi, IControllerApi |
The API through which a User Agent drives the Controller |
| Controller | AIF.ControllerAIF/Controller |
Controller, ContinuousExecutor, ExchangeOnChannels, CompositeProvider, IAimProvider |
Instantiates the Module and its Sub-AIMs from their AIM Instance Metadata, connects their Ports, executes each AIM when its data arrive |
| Communication | AIF.ChannelsAIF/Communication/Channels |
Channel, RemoteLink, RemoteTransport, ExternalTransport |
The Channels of the Topology; the transport of Ego-Remote Messages to and from remote CAVs |
| Storage | AIF.SharedStorageAIF.GlobalStorage |
ModuleSharedStorage, FileGlobalStorage |
The Shared Storage of the Module; the Global Storage |
| Metadata | AIF.MetadataAIF/Metadata |
AimMetadataSchema, L2Conformance, PublishedSchemas |
Validates each AIM Instance Metadata against its AIM Metadata, and each datum against the schema of its Data Type |
| Trust | AIF.TrustAIF/Trust |
TrustAuthority, VerificationPipeline, TrustDomain |
Admits the CAV; signs and verifies the messages exchanged between CAVs |
| CAV AIMs | Mpai.Cav.Hci, Mpai.Cav.Ess, Mpai.Cav.Ams, Mpai.Cav.MasAIMs/CAV/V2.0 |
HciProvider, EssProvider, AmsProvider, MasProvider |
The Implementations of the AIMs of the four subsystems (Table 3), each given to the Controller by the provider of its subsystem |
| Map | Mpai.Cav.MapAIMs/CAV/V2.0/Map |
RoadMap, WayPoint |
The road network, the Routes and the Offline Map, shared by the AMS and the simulation |
| Data Types | Mpai.CoreAIMs/Core |
– | The Data Types of OSD, MMC, PAF, CAV and the other standards as C# classes, and their JSON |
| Metadata and settings | schemas/CAV2/V2.0AIMs/AMDsAIMs/aim-settings.json |
– | The AIM Metadata of the CAV AIMs; the AIM Instance Metadata of their Implementations; model paths, SHA-256 and parameters of each AIM |
Table 3 gives each AIM of the Reference Software, the identifier of its Implementation, the class that implements it and the technology it uses, where it uses one.
Table 3 – AIMs and their Implementations
| AIM | Implementation | Class | Technology |
| Connected Autonomous Operation | 1CAV-CAO-V2.0-I01 |
Composite, executed by the Controller | |
| Human-CAV Interaction | 1MMC-HCI-V2.5-I01 |
Composite; its Sub-AIMs from HciProvider |
MMC V2.5: ASR (whisper.cpp), NLU, EDP (Ollama, llama3.2:3b), SPE, PMX, SIR, TTS (Piper); OSD: AVA, BAS, BLS, BVS, IDR; PAF: FIR, FPE, GFD, PSD; CAE: AII, ASI, QCV; CVE: VII, VSI |
| Environment Sensing Subsystem | 1CAV-ESS-V2.0-I01 |
Composite; EssProvider |
|
| Spatial Attitude Generation | 1CAV-SAG-V2.0-I01 |
SpatialAttitudeGeneration |
|
| Basic Visual Scene Description | 1OSD-BVS-V1.5-I02 |
BasicVisualSceneDescription |
YOLOX-S (ONNX) |
| Basic Environment Description | 1CAV-BED-V2.0-I01 |
BasicEnvironmentDescription |
|
| Autonomous Motion Subsystem | 1CAV-AMS-V2.0-I01 |
Composite; AmsProvider |
|
| Full Environment Description | 1CAV-FED-V2.0-I01 |
FullEnvironmentDescription |
|
| Route Selection Planning | 1CAV-RSP-V2.0-I01 |
RouteSelectionPlanning |
|
| Trajectory Planning and Decision | 1CAV-TPD-V2.0-I01 |
Composite | |
| Path Selection Planning | 1CAV-PSP-V2.0-I01 |
PathSelectionPlanning |
|
| Motion Selection Planning | 1CAV-MSP-V2.0-I01 |
MotionSelectionPlanning |
|
| Traffic Obstacle Avoidance | 1CAV-TOA-V2.0-I01 |
TrafficObstacleAvoidance |
|
| AMS Memory | 1CAV-AMM-V2.0-I01 |
AmsMemory |
|
| Motion Actuation Subsystem | 1CAV-MAS-V2.0-I01 |
Composite; MasProvider |
|
| AMS-MAS Message Interpretation | 1CAV-AMI-V2.0-I01 |
AmsMasMessageInterpretation |
|
| MAS Spatial Attitude Generation | 1CAV-MSA-V2.0-I01 |
MasSpatialAttitudeGeneration |
|
| Ice Condition Analysis | 1CAV-ICA-V2.0-I01 |
IceConditionAnalysis |
|
| MAS Response Analysis | 1CAV-MRA-V2.0-I01 |
MasResponseAnalysis |
4 Test environment
- Synthetic drives: the sensor data of a drive made from a seed, with the ground truth of its environment, played through the User Agent.
- A simulated vehicle: dynamics, wheels, brakes and motors, and motion sensors with noise and bias, closing the loop of the Motion Actuation Subsystem.
- Remote CAVs: two CAVs, each under its own Controller, exchanging messages.
- A recorder: a drive, the decisions of the CAV and its motion, recorded and rendered for review.
5 Verification
The Reference Software is verified by automated tests: each subsystem stage by stage, from its first AIM to the subsystem end to end; the Motion Actuation Subsystem in open and closed loop; the Environment Sensing Subsystem on synthetic drives against their ground truth; the Autonomous Motion Subsystem from route to Trajectory; Connected Autonomous Operation end to end; and two remote CAVs.
6 Access to the code
Please send an email to the MPAI Secretariat to access the code.