What it is
PufferDrive is a high-performance driving simulator built for ADAS research — the layer of advanced driver-assistance behaviors that sits between manual driving and full autonomy: AEB, ACC, lane-keep, cut-in handling, vulnerable-road-user response. It pairs a hand-written C simulator with Python bindings and an optional CUDA path, so ADAS features can be exercised against hundreds of thousands of real-world driving scenes from the Waymo Open Motion Dataset (WOMD) at speeds an off-the-shelf simulator can't touch.
The goal is simple: make ADAS validation feel like a tight inner loop. Stand up a simulator. Replay real human traffic. Drop your assistance feature in as the ego. Measure what changed.
Why it matters
ADAS validation has historically been bottlenecked by simulation. Existing tools are either fast and unrealistic (great for unit tests, useless for real-world fidelity), or realistic and too slow (good for marketing videos, impossible to iterate against). PufferDrive is a deliberate attempt to avoid that trade-off:
- C/CUDA core for raw stepping speed — sweep across thousands of safety-critical scenarios in minutes
- Headless rendering via Raylib for cluster validation runs, with
xvfb+ffmpegexporting failure-case videos - WOMD-native data pipeline — JSON scenes converted to a binary map format, ready for the simulator
The result is a validation environment where the simulator gets out of the way, and the only thing you wait on is your ADAS stack.
Pipeline
The ADAS validation pipeline is intentionally minimal:
- Scene preparation — convert WOMD scenarios from the HuggingFace mirror into the simulator's binary map format. Each scene is a real-world traffic situation logged from a Waymo vehicle.
- Vectorized stepping — thousands of scenes in flight at once, with logged human agents replayed alongside the ADAS-controlled ego
- Validation loop — PufferLib's distributed harness across CPU workers + GPU learners, so behavior sweeps scale across the full dataset
- Evaluation — run the Waymo Open Sim Agents Challenge (WOSAC) to measure how closely the ADAS-controlled ego matches plausible human behavior in the same situation
The same simulator binary serves both validation and the browser demo, because it's compiled to WebAssembly via Emscripten — so the regression set runs in CI and in a webpage with the same code path.
Three dataset tiers
The repo ships three curated tiers so the on-ramp is easy:
- Mini — 1,300 scenes for laptops and CI smoke tests
- Medium — 10,000 scenes for single-node validation sweeps
- Large — 100,000 scenes for full distributed regression runs
You can be running a real ADAS regression on logged human traffic within minutes of cloning.
Evaluation that actually means something
Most ADAS benchmarks measure surface metrics — false-positive AEB, lane-departure rate, time-to-collision distributions. PufferDrive plugs into WOSAC, which compares the distribution of behaviors produced by the ego to the distribution produced by humans in logged scenarios. That difference matters: a driver-assistance feature can score perfectly on collisions and still behave nothing like a person — which is its own kind of safety failure.
In validation mode, the ADAS feature controls the ego while every other agent replays its logged trajectory, isolating the assistance system's contribution to the scene.
What I worked on
I'm contributing as a researcher across the pipeline:
- Scene conversion and dataset hygiene for the WOMD ingestion path
- Performance work on the simulator core so larger regression sets fit in the same wall-clock budget
- Evaluation tooling around the WOSAC metric suite, scoped toward ADAS behavior fidelity
- Browser demo polish (the Emscripten build is its own small adventure)
Where it's going
PufferDrive v2 shipped in late 2025. The horizon from here:
- Tighter integration with PufferLib's distributed validation stack
- Larger-scale regression runs across the full WOMD test split, scoped to ADAS scenario coverage
- A reproducible benchmark suite for community-contributed ADAS scenarios
If you build ADAS features — or just want a beautifully fast simulation playground for driver-assistance behaviors — clone the repo and run it. It's a small, deliberate piece of validation infrastructure, and it's only getting faster.