Project Aria Tools

raw JSON →
2.1.2 verified Fri May 01 auth: no python

A library from Meta Reality Labs for processing and visualizing data from Project Aria glasses. Supports Aria Gen1 and Gen2 VRS data, on-device machine perception (MPS), and provides C++ and Python APIs. Current version 2.1.2, requires Python >=3.8, released under MIT license.

pip install projectaria-tools
error ModuleNotFoundError: No module named 'projectaria_tools'
cause Library not installed or installed in wrong environment.
fix
Run: pip install projectaria-tools
error ImportError: cannot import name 'VrsDataProvider' from 'projectaria_tools'
cause Importing from the top-level package instead of submodule.
fix
Use: from projectaria_tools.core.data_provider import VrsDataProvider
error RuntimeError: VRS file not found or invalid: <path>
cause The provided file path does not exist or is not a valid .vrs file.
fix
Check file path and ensure it is a Project Aria VRS recording.
breaking v2.0.0 introduced breaking changes in API for Gen1 data. Some functions were moved or renamed. Users of v1.x must update import paths.
fix Update imports to use projectaria_tools.core.* submodules instead of old top-level imports.
deprecated The legacy poseplayer module was removed in v1.5.8. Use MpsDataProvider for SLAM/pose data instead.
fix Replace poseplayer usage with projectaria_tools.core.mps.MpsDataProvider.
gotcha Stream IDs are strings like '211-1' for RGB camera. Using integers or different format leads to ValueError.
fix Always pass stream IDs as strings, e.g., '211-1', '1201-1', etc.

Basic usage to open a VRS file, list streams, and read first image data.

from projectaria_tools.core.data_provider import VrsDataProvider
from projectaria_tools.core.calibration import device_calibration_from_json_str
import os

# Provide path to a .vrs file (replace with your own)
vrs_filepath = os.environ.get('VRS_FILE', '')
if not vrs_filepath:
    raise ValueError('Set VRS_FILE environment variable')

dp = VrsDataProvider(vrs_filepath)
print('Stream IDs:', dp.get_all_stream_ids())
# Read the first time series from stream 211-1 (RGB camera)
stream_id = '211-1'
dp.set_stream_player(stream_id)
dp.play()
first_timestamp, first_data = dp.read_next()
print('First timestamp (ns):', first_timestamp)