Skip to content

autonomousvision/py123d

Repository files navigation

Logo

123D: A Unified Library for Multi-Modal Autonomous Driving Data

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 fast, unified Apache Arrow format, and then gives you a single API to read cameras, lidar, HD maps, and labels across all of them.

Features

  • 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.

Viewer

Viser 3D Viewer

Supported Datasets

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

Changelog

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_async for 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 into parser/ with consistent naming across all dataset parsers.
  • Refactored Viser 3D viewer. Adds more control and dark mode.
  • Added LaneType, IntersectionType, StopZoneType to 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.

Citation

@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}
}

License

123D is released under the Apache License 2.0.

Packages

 
 
 

Contributors