Open source · agent-operable · software-defined vehicles
Experiment
with the vehicle
before it exists.
Software today. Hardware tomorrow. Same manifest.
vxedge is an open testbed where a software-defined vehicle is declared as code, run on one machine and measured. It is built for the engineers deciding what the next vehicle's architecture should be.
Why now
- 01
Vehicles are becoming software. The architecture underneath — zones, networks, compute — is the decision that is hardest to undo.
- 02
Those decisions are made on slides. They are proven years later on hardware rigs, when changing them costs the most.
- 03
The reference results are closed. Industrial slicing trials publish numbers nobody outside can re-run. Engineering needs evidence it can check.
The approach
Three ideas.
-
The vehicle is code.
Zones, devices, links and slices live in one manifest. The same file runs as containers today, as full virtual machines with real guest operating systems, and on hardware when phase 4 lands.
See the loop → -
Agents are teammates, not shortcuts.
An agent gets the same API an engineer does, one tool per call, behind the same typed checks. It proposes experiments; models and manifests are validated before anything runs; changes to the bench will wait for a person.
See how agents operate it → -
Evidence is the product.
Every number ships with the manifest and digests that produced it, and a second campaign re-checks it. When an archive proved the first explanation wrong, that was published too.
Read the evidence →
Proof
Four hypotheses measured. Four reproduced.
- 0.91×
ADAS tail latency under 1.2× infotainment overload, relative to idle. No packets lost.
- −26.0 µs
from one packaging decision. The obvious suspect did nothing; the archive found the real one.
- 51.9 µs
ADAS median during a sustained over-the-air update burst, against 52.2 µs without it.
Where it's going
vxedge is not a digital twin yet. It is the model half of one.
- NowPhases 1–2 · done
Slice isolation, ECU packaging and OTA co-location proven on real kernel networking and real 5G slices.
- NextPhase 3 · in progress
A whole vehicle in software with one command. QNX and Android Automotive zones, Kuksa signals, agents that act.
- LaterPhase 4 · specified
Hardware in the loop: Jetson, DRIVE, BlueField. The physical half joins the model half.
- HorizonNot started
Today every manifest says class: road, subtype: car. Robotaxis, delivery robots and mobile robots come next.
- Robotaxis
- Delivery robots
- Mobile robots
Open problems
Pick a hard one.
These are real, open and unclaimed. Each moves the testbed a rung closer to the real vehicle, and each is scoped so one strong engineer can own it.
- 1
A whole vehicle with one command
Make vxedge vehicle up boot every zone, the gateway and the services end to end. This is the phase-3 gate.
- 2
Time-sensitive networking on the gateway
Add an 802.1Qbv / Qav shaping mode with gPTP and measure it against today's queue-tree slices.
- 3
Kernel-grade timestamps
Replace userspace probing with SO_TIMESTAMPING, then re-run every hypothesis and report what moved.
- 4
QNX and Android Automotive zones
Guest images that boot under the full-VM backend and honour the zone contract.
- 5
Closed-loop autonomy over a slice
CARLA to ROS 2 to Autoware, with sensor streams carried as slice traffic, so control-loop latency becomes a metric.
- 6
Agents that can act safely
The confirmation flow that lets an MCP tool change the bench only after a person approves.
- 7
Signals like the real car
A DBC-driven restbus feeding Eclipse Kuksa, so body ECUs speak COVESA VSS.
- 8
Many vehicles at once
The fleet layer: concurrent vehicles over one API, the groundwork for V2X.
- 9
A first hardware anchor
Put one Jetson AGX in the loop and run the same experiment on both sides, so the parity ledger gets a measured calibration point instead of a label.
Start in three commands
Apache-2.0 code, CC BY 4.0 docs and results. DCO sign-off, no CLA. One workstation is enough for Tier 1.
$ git clone https://github.com/vxedge/vxedge $ cd vxedge && cargo build --workspace $ ./target/debug/vxedge doctor --tier 1