Repository navigation
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
- Python:
pip install -U rerun-sdk - Rust:
cargo add rerunandcargo install rerun-cli --locked - C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.40.0/rerun_cpp_sdk.zip
- Online demo: https://rerun.io/viewer
✨ Overview & highlights
-
Viewer design refresh: a new home screen, a command palette in the top bar, and consistent typography and colors
-
Agents can inspect transform graphs via MCP with
rerun_get_transform_graph -
Catalog API improvements:
SegmentandLayerhandles,DatasetEntry.schema(), andDatasetEntry.info() -
The selection panel shows which layers a component comes from
-
Edit asset coverage in the Viewer (video)
-
Asset3Dassets without normals are shaded
🧪 Experimental and unstable
These may change in future releases, and unstable types may not stay backwards compatible.
- Table filters and sorting in the table blueprint, and much faster filters
- LeRobot dataset metadata with
LeRobotReader.metadata()
📖 Release notes: https://rerun.io/docs/changelog/changeset-0-40#highlights
⚠️ Breaking changes
- Python 3.11 is the minimum supported version
DatasetViewrenamed toDatasetSelection- Rust: catalog methods moved from
re_redap_clienttore_catalog_client
🧳 Migration guide: https://rerun.io/docs/changelog/changeset-0-40#breaking-changes
🔎 Details
🪵 Log API
- Add LeRobot dataset metadata utilities c9be0f6
- Bound gRPC connection retries during shutdown f786516
🐍 Python API
- Drop Python 3.10 support 2fbbe04
- Introduce
Segmenthandle in Python Catalog client 0d03800 - Add
Layerhandle to Python Catalog SDK 8c384a2 - Add
dataset.info()and related structures 826db1e - Add
.schema()on dataset and segment objects in Python e1f1658 - Table blueprint filter API cb454f9
- Answer
open_urlonce its initial load is done 6c2c3be
🪳 Bug fixes
- Reject TLS certificates from the compromised eMudhra intermediate CAs (RUSTSEC-2026-0381, RUSTSEC-2026-0382, RUSTSEC-2026-0383) 4b14970
- Fix anamorphic pinhole projection for 3D in 2D projections 55b565d (thanks @mikamikasuki!)
- Don't react to clicks on popups covering the timeline 925dbad
- Stop masking connection errors when credentials are present 0be32f6
- Fix uneditable components showing edit ui 1760c3c
- Disable blueprint UI editing of text-log bodies 2c87e2e
- Make audio work in previews f7f8d6d
- Fix stale Python docs search results bcdd257
- Bump zip to 9 for RUSTSEC-2026-0367/0368/0369 513de14
- Fix flaky internal_catalog_load snapshots: refetch the catalog listing for an unknown entry 500fc27
- Fix flaky
test_filter_planning_errors: send a table query's schema together with its first batch e6ffe84
🌁 Viewer improvements
- Show what layers a component is from b00ca6d
- Asset coverage edit UI 1405a80
- Compute
Asset3Dnormals when they are missing 7df8021 - Table blueprint undo & redo a8f579e
- Add MCP interface for inspecting transform graphs 9184397
- Answer viewer-control operations once their commands have run cc15755
- Emit LeRobot v2 videos as
VideoStream, like v3 d0afc97
🚀 Performance improvements
- Remove custom filter UDFs and only use SQL 54c35bd
- Drastically speed up text log view for huge amount of text logs 3af1922
- Keep fetched dataloader columns chunked instead of copying them 6910b32
- Further simplifications to manifest validation 62a6d0f
🖼 UI improvements
- Viewer design refresh ffd18ae
🗣 Refactors
- Add new
re_catalog_clientcrate 5aa3d4e
📦 Dependencies
- Bump the "rerun-example-droid-semantic-search" group with 1 update across multiple ecosystems 3277139
🤷 Other
- Save table filters in table blueprint b0563bd
- Add sorting by column in table blueprint da5ce19
- Rename
DatasetViewtoDatasetSelection0439052