Code & Data

Implementations behind my papers, plus an interactive simulator. Everything here is public on GitHub; issues and pull requests are welcome.

Research code

Python · PyMC Bayesian calibration

IDM_Bayesian_Calibration

Probabilistic graphical models for car-following

Implements MA-IDM and Bayesian IDM, the dynamic AR+IDM formulation from the Bayesian dynamic regression paper, and multi-vehicle ring-road simulations. Models are built with PyMC and calibrated on the highD naturalistic driving dataset; preprocessed trajectories ship with the repository.

MA-IDM AR + IDM highD Ring-road simulation
Python Interaction modeling

Gaussian_Velocity_Field

Gaussian velocity fields for lane-change scenarios

Reference implementation of the Gaussian velocity field (GVF), which represents multi-vehicle interaction inside a region of interest around the ego vehicle. Each frame becomes a 13 × 17 × 2 tensor over a meshed ROI, giving a fixed-size description of a scene that varies in the number of surrounding vehicles.

Gaussian processes Lane change highD Visualization
Project site Pattern discovery

Multivehicle-Interaction

Companion site for the interaction-pattern work

Collects results and media for the general framework of learning multi-vehicle interaction patterns from video, and for the Foundations and Trends review on social interactions in autonomous driving.

Multi-vehicle interaction Video Review

Interactive demo

JavaScript Runs in the browser

traffic-sim

Stochastic ring-road traffic simulator

Cars follow the Intelligent Driver Model on a circular track, and you can switch between three driver-noise models drawn from recent work on Bayesian car-following calibration. Small perturbations grow into stop-and-go waves with no bottleneck present, reproducing the Sugiyama experiment. Inspired by Dr. Martin Treiber's work on stochastic car-following.

IDM Driver noise Stop-and-go waves No install

Datasets used above are released by their original owners: the highD dataset is distributed by RWTH Aachen and is not redistributed here beyond the preprocessed caches needed to reproduce the published results.