Skip to main content

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

Project description

Logo

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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py123d-0.1.0.tar.gz (23.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py123d-0.1.0-py3-none-any.whl (23.4 MB view details)

Uploaded Python 3

File details

Details for the file py123d-0.1.0.tar.gz.

File metadata

  • Download URL: py123d-0.1.0.tar.gz
  • Upload date:
  • Size: 23.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for py123d-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ee1f11b9fc987a859c326cd82e6abd33b443a966646db45ac08a1c8856331ea9
MD5 b5c0e5968cb417f49fac27338f01a227
BLAKE2b-256 333069abe6dc84e44ccda093365c26e88223763839f0a4d650145e08fbebb04d

See more details on using hashes here.

Provenance

The following attestation bundles were made for py123d-0.1.0.tar.gz:

Publisher: pypi.yaml on autonomousvision/py123d

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py123d-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: py123d-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for py123d-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ce8f043cfe943bf9764cdda7af37c814263e1b897628fb41bc2b2f4508c8ca9
MD5 f689b949ac11d9b96fdbb564534d0328
BLAKE2b-256 0d0d3fbf459084ef8ff2525ae9566f6c92d6faafa50bd71334121b3260f46755

See more details on using hashes here.

Provenance

The following attestation bundles were made for py123d-0.1.0-py3-none-any.whl:

Publisher: pypi.yaml on autonomousvision/py123d

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page