One library for autonomous driving datasets. 123D converts raw data from Argoverse 2, nuScenes, nuPlan, KITTI-360, PandaSet, and Waymo into a fast, unified Apache Arrow format, and then gives you a single API to read cameras, lidar, HD maps, and labels across all of them.
- Unified API: Read cameras, lidar, maps, and labels through a single interface, regardless of the source dataset.
- Apache Arrow storage: columnar, memory-mapped, zero-copy reads. Fast and memory efficient.
- Multiple sensor codecs: MP4/JPEG/PNG for cameras; LAZ/Draco/Arrow IPC for lidar.
- Built-in visualization: interactive 3D viewer (Viser), and matplotlib plotting.
- No sensor data duplication: By default, converted logs reference original camera and lidar files via relative paths. No need to store sensor data twice.
- Hydra-based conversion CLI: YAML configs to manage your data pipelines.
| Dataset | Cameras | LiDARs | Map | 3D Boxes | Traffic Lights |
|---|---|---|---|---|---|
| Argoverse 2 - Sensor | 9 | 2 | ✓ | ✓ | ✗ |
| nuScenes | 6 | 1 | ✓ | ✓ | ✗ |
| nuPlan | 8 | 5 | ✓ | ✓ | ✓ |
| KITTI-360 | 4 | 1 | ✓ | ✓ | ✗ |
| PandaSet | 6 | 2 | ✗ | ✓ | ✗ |
| Waymo Open - Perception | 5 | 5 | ✓ | ✓ | ✗ |
| Waymo Open - Motion | ✗ | ✗ | ✓ | ✓ | ✓ |
| CARLA / LEAD | config. | config. | ✓ | ✓ | ✓ |
| NVIDIA Physical AI AV (experimental) | 7 | 1 | ✗ | ✓ | ✗ |
v0.1.0 (2026-03-22)
- Asynchronous (native-rate) data storage: modalities are now written at their original capture rate, not just at the a frame-wise rate.
- New parser architecture with
BaseLogParser.iter_modalities_asyncfor native-rate iteration alongside the existing synchronized path. - Added NVIDIA Physical AI AV dataset support (experimental).
- Added standalone OpenDRIVE / CARLA map parser.
- Refactored
conversion/module intoparser/with consistent naming across all dataset parsers. - Refactored Viser 3D viewer. Adds more control and dark mode.
- Added
LaneType,IntersectionType,StopZoneTypeto map data structure. - Replaced Waymo heavy dependencies with lightweight protobufs.
- Various fixes to camera-to-global transforms across all datasets.
v0.0.9 (2026-02-09)
- Added Waymo Open Motion Dataset support.
- Replaced gpkg map implementation with Arrow-based format for improved performance.
- Added sensor names and timestamps to camera and Lidar data across all datasets.
- Added ego-to-camera transforms in static metadata.
- Implemented geometry builders for PoseSE2/PoseSE3 from arbitrary rotation/translation representations.
- Added support for loading merged point clouds in API.
- Improved map querying speed and OpenDrive lane connectivity handling.
- Added recommended conversion options to dataset YAML configuration files.
- Fixed PandaSet static extrinsics and KITTI-360 timestamp handling.
- Fixed memory issues when converting large datasets (e.g., nuPlan).
v0.0.8 (2025-11-21)
- Release of package and documentation.
- Demo data for tutorials.
@software{Contributors123D,
title = {123D: A Unified Library for Multi-Modal Autonomous Driving Data},
author = {123D Contributors},
year = {2026},
url = {https://github.com/autonomousvision/py123d},
license = {Apache-2.0}
}123D is released under the Apache License 2.0.
