GitHub - kesai-labs/py123d: 123D: A Unified Library for Multi-Modal Autonomous Driving Data (original) (raw)

123D: Unifying Multi-Modal Autonomous Driving Data at Scale

Paper | Video | Documentation

PyPI Version Python Versions License

One library for autonomous driving datasets. 123D converts raw data from Argoverse 2, nuScenes, nuPlan, KITTI-360, PandaSet, and Waymo into a unified Apache Arrow format, and then gives you a single API to read cameras, lidar, HD maps, and labels across all of them.

πŸ“° News

✨ Features

πŸ“¦ Installation

Per-dataset extras (e.g. py123d[av2], py123d[nuscenes], py123d[waymo]) install the parser dependencies for each dataset on demand. See the Demo below for an example.

πŸš€ Demo

Demo using the Argoverse 2 Sensor dataset, which is publicly readable from S3 and requires no cloud authentication.

The av2-sensor-stream config downloads the requested logs/maps into a managed temp directory, converts them into our self-contained Arrow format, and cleans up the source files afterwards. PY123D_DATA_ROOT controls where the converted logs/maps are written. The script below installs the Av2 extra, converts the first 3 validation logs (~250 MB each), and launches the Viser viewer:

1. Install

pip install py123d[av2]

export PY123D_DATA_ROOT=/path/to/py123d_data

2. Download + Convert

py123d-conversion dataset=av2-sensor-stream
dataset.parser.splits='[av2-sensor_val]'
dataset.parser.downloader.num_logs=3

3. Launch Viewer

py123d-viser scene_filter=av2-sensor

Open http://localhost:8080 to browse the converted scenes interactively.

πŸ–ΌοΈ Viewer

Viser 3D Viewer

πŸ“Š Supported Datasets

Scale Sensors [#/Hz] Annotations [βœ“/Hz]
Dataset Year Dur. [h] Dist. [km] Logs [#] Cam. LiDAR 3D Box Tls. Map
Manual nuScenes 2020 5.6 100.9 1,000 6 / 12 1 / 20 βœ“ / 2 βœ— βœ“
WOD-Perc. 2020 6.4 154.0 1,150 5 / 10 5 / 10 βœ“ / 10 βœ— βœ“
AV2-Sens. 2021 4.4 87.5 1,000 9 / 20 2 / 10 βœ“ / 10 βœ— βœ“
PandaSet 2021 0.2 8.3 103 6 / 10 2 / 10 βœ“ / 10 βœ— βœ—
KITTI-360 2022 2.7 73.7 9 4 / 10 1 / 10 βœ“ / 10 βœ— βœ“
Auto-labeled WOD-Mot. 2021 574.1 10,323.5* 103,354 βœ— βœ— βœ“ / 10 βœ“ / 10 βœ“
nuPlan 2024 1,174.3 17,808.6 15,910 8 / 10† 5 / 20† βœ“ / 20 βœ“ / 20 βœ“
– nuPlan-mini 2024 7.2 103.0 64 8 / 10† 5 / 20† βœ“ / 20 βœ“ / 20 βœ“
PAI-AV 2025 1,707.0 69,265.7 307,332 7 / 30 1 / 10 βœ“ / 10 βœ— βœ—
– NCore 2026 6.3 167.6 1,147 7 / 30 1 / 10 βœ“ / 10 βœ— βœ—
Synth. CARLA 2017 var. var. var. var. var. βœ“ βœ“ βœ“
– L3AD 2026 7.3 138.7 789 6 / 10 2 / 10 βœ“ / 10 βœ“ / 10 βœ“

* Computed only from the non-overlapping 20 s training files. † Released for a 120 h subset; full coverage on mini.

πŸ“ Changelog

v0.5.0 (2026-05-28)

Breaking changes: OccupancyMap2D.contains_vectorized renamed to contains_points_2d (now shape-preserving); dataset_paths moved from py123d.common to py123d.common.runtime.

v0.4.0 (2026-05-19)

No breaking changes to the public API, Arrow schema, or CLI entry points.

v0.3.0 (2026-04-28)

Includes all fixes from v0.2.1 and v0.2.2. No breaking changes to the public API, Arrow schema, or CLI entry points.

v0.2.0 (2026-04-14)

No breaking changes to the public API, Arrow schema, or CLI entry points.

v0.1.0 (2026-03-22)

πŸ“š Citation

@article{Dauner2026ARXIV, title={123D: Unifying Multi-Modal Autonomous Driving Data at Scale}, author={Dauner, Daniel and Charraut, Valentin and Berle, Bastian and Li, Tianyu and Nguyen, Long and Wang, Jiabao and Jing, Changhui and Igl, Maximilian and Caesar, Holger and Ivanovic, Boris and Geiger, Andreas and Chitta, Kashyap}, journal={arXiv preprint arXiv:2605.08084}, year={2026} }

βš–οΈ License

123D is released under the Apache License 2.0.